[libvirt] Non-zero constant warning on RHEL 6.1 with 0.9.7

Stefan Berger stefanb at linux.vnet.ibm.com
Tue Nov 15 00:54:10 UTC 2011


On 11/11/2011 04:06 PM, Eric Blake wrote:
> On 11/08/2011 11:46 PM, Justin Clift wrote:
>> Hi guys,
>>
>> Just checking 0.9.7 on RHEL 6.1 x86_64.  Noticed this when compiling
>> with make -j 3:
>>
>>      CC     libvirt_lxc-command.o
>>    util/buf.c: In function 'virBufferEscape':
>>    util/buf.c:469: warning: logical '&&' with non-zero constant will always evaluate as true [-Wlogical-op]
>>
>> Obviously not fatal, but it figured someone might want to keep things warning free. :)
> This is a bug in gcc, although I'm not sure if anyone has raised a bug
> report against the gcc folks yet:
> https://www.redhat.com/archives/libvir-list/2011-October/msg00837.html
>
> I'm open to suggestions on how to work around it; perhaps we just need
> to disable -Wlogical-op if glibc's headers are turning on the optimized
> strchr (is that -D_FORTIFY_SOURCE that does it?) :(
This should work, no?

--- a/src/util/buf.c
+++ b/src/util/buf.c
@@ -466,7 +466,8 @@ virBufferEscape(virBufferPtr buf, const char *toescape,
      cur = str;
      out = escaped;
      while (*cur != 0) {
-        if (strchr(toescape, *cur))
+        char x[2] = { *cur, 0 };
+        if (strstr(toescape, x))
              *out++ = '\\';
          *out++ = *cur;
          cur++;


Stefan




More information about the libvir-list mailing list