mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
build: use strchr now that we can work around broken gcc
Revert the complex workaround of commit 39d91e9, now that we have a nicer framework for shutting up broken gcc. * src/util/buf.c (virBufferEscape): Simplify.
This commit is contained in:
parent
6e148567fd
commit
622ceb34ff
@ -458,6 +458,15 @@ virBufferEscapeSexpr(virBufferPtr buf,
|
|||||||
virBufferEscape(buf, '\\', "\\'", format, str);
|
virBufferEscape(buf, '\\', "\\'", format, str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Work around spurious strchr() diagnostics given by -Wlogical-op *
|
||||||
|
* for gcc < 4.6. Doing it via a local pragma keeps the damage
|
||||||
|
* smaller than disabling it on the package level. Unfortunately, the
|
||||||
|
* affected GCCs don't allow diagnostic push/pop which would have
|
||||||
|
* further reduced the impact. */
|
||||||
|
#if BROKEN_GCC_WLOGICALOP
|
||||||
|
# pragma GCC diagnostic ignored "-Wlogical-op"
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* virBufferEscape:
|
* virBufferEscape:
|
||||||
* @buf: the buffer to append to
|
* @buf: the buffer to append to
|
||||||
@ -499,11 +508,7 @@ virBufferEscape(virBufferPtr buf, char escape, const char *toescape,
|
|||||||
cur = str;
|
cur = str;
|
||||||
out = escaped;
|
out = escaped;
|
||||||
while (*cur != 0) {
|
while (*cur != 0) {
|
||||||
/* strchr work-around for gcc 4.3 & 4.4 bug with -Wlogical-op
|
if (strchr(toescape, *cur))
|
||||||
* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36513
|
|
||||||
*/
|
|
||||||
char needle[2] = { *cur, 0 };
|
|
||||||
if (strstr(toescape, needle))
|
|
||||||
*out++ = escape;
|
*out++ = escape;
|
||||||
*out++ = *cur;
|
*out++ = *cur;
|
||||||
cur++;
|
cur++;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user