Re: partitioned tables and contrib/sepgsql - Mailing list pgsql-hackers

From Andres Freund
Subject Re: partitioned tables and contrib/sepgsql
Date
Msg-id D332AB34-C1A0-4F96-855C-07A55128CA3F@anarazel.de
Whole thread Raw
In response to Re: partitioned tables and contrib/sepgsql  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers

On April 5, 2017 9:04:00 AM PDT, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>Joe Conway <mail@joeconway.com> writes:
>> On 04/04/2017 09:58 PM, Tom Lane wrote:
>>> Another issue is whether you won't get compiler complaints about
>>> redefinition of the "true" and "false" macros.  But those would
>>> likely only be warnings, not flat-out errors.
>
>> I have not been able to generate warnings or errors around "true" and
>> "false".
>
>Interesting.  Poking at it on a Fedora 25 machine, I also see a
>bool-type-related warning in sepgsql/label.c, but nothing around macro
>redefinitions.  In particular, I find that
>
>#include "postgres.h"
>
>#include <stdbool.h>
>
>is completely silent.  On the other hand,
>
>#include "postgres.h"
>
>#define bool    _Bool
>#define true    1
>#define false   0
>
>generates the warnings I expected about "true" and "false" being
>redefined.  Which is damn odd, because I copied-and-pasted those
>lines out of
>/usr/lib/gcc/x86_64-redhat-linux/6.3.1/include/stdbool.h
>
>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.
>
>Anyway, I'd recommend that we do something like
>
> #include <selinux/label.h>
>+
>+/*
>+ * <selinux/label.h> includes <stdbool.h>, which creates an
>incompatible
>+ * #define for bool.  Get rid of that so we can use our own typedef.
>+ * (For obscure reasons, the "true" and "false" macros don't cause
>issues.)
>+ */

GCC generally doesn't warn about macro redefinitions, if both definitions are equivalent.  IIRC we have some examples
ofthat in the tree.  There's a flag to warn regardless. 

Andres
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: PG_GETARG_GISTENTRY?
Next
From: Tom Lane
Date:
Subject: Re: partitioned tables and contrib/sepgsql