Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:
> On 4/5/17 12:04, Tom Lane wrote:
>> Conclusion: Fedora's gcc is playing fast and loose somehow with the
>> command "#include <stdbool.h>"; that does not include the file
>> you'd think it does, it does something magic inside the compiler.
>> The magic evidently includes not complaining about duplicate macro
>> definitions for true and false.
> Perhaps -Wsystem-headers would change the outcome in your case.
Hah, you're right: with that,
In file included from /usr/include/selinux/label.h:9:0, from label.c:40:
/usr/lib/gcc/x86_64-redhat-linux/6.3.1/include/stdbool.h:34:0: warning: "true" redefined#define true 1
In file included from ../../src/include/postgres.h:47:0, from label.c:11:
../../src/include/c.h:206:0: note: this is the location of the previous definition#define true ((bool) 1)
and likewise for "false". So that mystery is explained.
I stand by my previous patch suggestion, except that we can replace
the parenthetical comment with something like "(We don't care if
<stdbool.h> redefines "true"/"false"; those are close enough.)".
regards, tom lane