Wireshark mailing list archives
Re: error: logical && with non-zero constant will always evaluate as true
From: Jeff Morriss <jeff.morriss.ws () gmail com>
Date: Fri, 04 Jan 2013 09:01:51 -0500
Guy Harris wrote:
On Jan 3, 2013, at 1:40 PM, Jeff Morriss <jeff.morriss.ws () gmail com> wrote:Jeff Morriss wrote:My (Fedora 10) gcc 4.3.2 was also generating this warning; it would seem that a fair spread of gcc versions seem to have the problem. I added a configure check to stop using -Wlogical-op if the compiler is generating this warning in r46916.Interestingly the Ubuntu buildbot says it would also get the warning:checking whether we can add -Wlogical-op to CFLAGS... yes checking whether -Wlogical-op generates warnings from strchr()... yesWhich means that #include <string.h>intfoo(char *sep, int c) { if (strchr (sep, c) != NULL) return 1; else return 0; } int main(int argc, char **argv) { return foo(\"<\", 'a'); } fails to compile with the CFLAGS value at the time the test is done, plus -Werror; it could be failing for some other reason. To quote the comment when I finally got it working for -Wshadow: Declare foo() before defining it - if we configure with --enable-extra-gcc-checks, given that we're building with -Werror (so that we find out whether the compiler issues a warning for a particular construct), we have to avoid constructs that will provoke *other* warnings. so the code in question has to avoid whatever other warnings are being used, and the Ubuntu buildbot builds with --enable-extra-gcc-checks, so it warns about functions not declared with prototypes before they're defined. I've checked in a change to declare foo() before it's defined; we'll see whether that fixes it.
Lesson to self: don't just be happy when 'configure' spits out the expected result. Instead look at config.log and see *why* I got the expected result... There were a bunch of other warnings in there which I didn't get when hand-compiling the program because I wasn't using all the options 'configure' was.
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev () wireshark org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-request () wireshark org?subject=unsubscribe
Current thread:
- Re: error: logical && with non-zero constant will always evaluate as true Jeff Morriss (Jan 03)
- Re: error: logical && with non-zero constant will always evaluate as true Jeff Morriss (Jan 03)
- Re: error: logical && with non-zero constant will always evaluate as true Guy Harris (Jan 03)
- Re: error: logical && with non-zero constant will always evaluate as true Jeff Morriss (Jan 04)
- Re: error: logical && with non-zero constant will always evaluate as true Guy Harris (Jan 03)
- <Possible follow-ups>
- Re: error: logical && with non-zero constant will always evaluate as true Jakub Zawadzki (Jan 03)
- Re: error: logical && with non-zero constant will always evaluate as true Jeff Morriss (Jan 03)