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.
---
src/util/buf.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/util/buf.c b/src/util/buf.c
index 030dc97..e5a6ab7 100644
--- a/src/util/buf.c
+++ b/src/util/buf.c
@@ -458,2 +458,2 @@ virBufferEscapeSexpr(virBufferPtr buf,
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:
* @buf: the buffer to append to
@@ -499,11 +508,7 @@ virBufferEscape(virBufferPtr buf, char escape, const char
*toescape,
cur = str;
out = escaped;
while (*cur != 0) {
- /* strchr work-around for gcc 4.3 & 4.4 bug with -Wlogical-op
- *
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36513
- */
- char needle[2] = { *cur, 0 };
- if (strstr(toescape, needle))
+ if (strchr(toescape, *cur))
*out++ = escape;
*out++ = *cur;
cur++;