[Bug c/70477] New: -Wtautological-compare too aggressive?
ktkachov at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Mar 31 10:48:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70477
Bug ID: 70477
Summary: -Wtautological-compare too aggressive?
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Keywords: diagnostic
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: ktkachov at gcc dot gnu.org
Target Milestone: ---
I'm trying to perform an aarch64-none-linux-gnu bootstrap with -save-temps in
the BOOT_CFLAGS but I'm getting a -Wtautological-compare failure when compiling
c-family/c-pragma.c:
gcc/c-family/c-pragma.c:415:64: warning: self-comparison always evaluates to
false [-Wtautological-compare]
if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
For aarch64 these are defined as:
#define BYTES_BIG_ENDIAN (TARGET_BIG_END != 0)
#define WORDS_BIG_ENDIAN (BYTES_BIG_ENDIAN)
I think this can be reproduced also as:
int var;
#define A var
#define B var
int foo (int a, int b)
{
if (A == B)
return a;
else
return b;
}
gcc -Wtautological-compare -c warn.c
warn.c: In function 'foo':
warn.c:8:9: warning: self-comparison always evaluates to true
[-Wtautological-compare]
if (A == B)
^~
Should we be warning on these things if they come from a macro expansion?
More information about the Gcc-bugs
mailing list