[libvirt] Non-zero constant warning on RHEL 6.1 with 0.9.7
Michal Privoznik
mprivozn at redhat.com
Wed Nov 9 10:06:38 UTC 2011
On 09.11.2011 07:46, Justin Clift wrote:
> Hi guys,
>
> Just checking 0.9.7 on RHEL 6.1 x86_64. Noticed this when compiling
> with make -j 3:
>
> make[3]: Entering directory `/home/jc/git_repos/libvirt/src'
> CC libvirt_util_la-bitmap.lo
> CC libvirt_util_la-authhelper.lo
> CC libvirt_util_la-bridge.lo
> CC libvirt_util_la-buf.lo
> CC libvirt_util_la-command.lo
> util/buf.c: In function 'virBufferEscape':
> util/buf.c:469: warning: logical '&&' with non-zero constant will always evaluate as true [-Wlogical-op]
>
> ...
I've ran gcc -E on util/buf.c and interesting things are happening there:
the original code:
while (*cur != 0) {
if (strchr(toescape, *cur))
*out++ = '\\';
*out++ = *cur;
cur++;
}
[line 469 is: if (strchr(...))]
after preprocessing stage:
while (*cur != 0) {
if ((__extension__ (__builtin_constant_p (*cur) &&
!__builtin_constant_p (toescape) && (*cur) == '\0' ? (char *)
__rawmemchr (toescape, *cur) : __builtin_strchr (toescape, *cur))))
*out++ = '\\';
*out++ = *cur;
cur++;
}
So I think the problem lies within !__builtin_constant_p (toescape) but
i am not sure how to fix that.
Michal
More information about the libvir-list
mailing list