mirror of
https://github.com/postgres/postgres.git
synced 2025-12-10 14:22:35 +03:00
Use stdbool.h if suitable
Using the standard bool type provided by C allows some recent compilers and debuggers to give better diagnostics. Also, some extension code and third-party headers are increasingly pulling in stdbool.h, so it's probably saner if everyone uses the same definition. But PostgreSQL code is not prepared to handle bool of a size other than 1, so we keep our own old definition if we encounter a stdbool.h with a bool of a different size. (Among current build farm members, this only applies to old macOS versions on PowerPC.) To check that the used bool is of the right size, add a static assertions about size of GinTernaryValue vs bool. This is currently the only place that assumes that bool and char are of the same size. Discussion: https://www.postgresql.org/message-id/flat/3a0fe7e1-5ed1-414b-9230-53bbc0ed1f49@2ndquadrant.com
This commit is contained in:
@@ -50,6 +50,11 @@
|
||||
#define __inline__ inline
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Prevent perl from redefining "bool".
|
||||
*/
|
||||
#define HAS_BOOL 1
|
||||
|
||||
|
||||
/*
|
||||
* Get the basic Perl API. We use PERL_NO_GET_CONTEXT mode so that our code
|
||||
@@ -91,11 +96,6 @@
|
||||
#define NEED_sv_2pv_flags
|
||||
#include "ppport.h"
|
||||
|
||||
/* perl may have a different width of "bool", don't buy it */
|
||||
#ifdef bool
|
||||
#undef bool
|
||||
#endif
|
||||
|
||||
/* supply HeUTF8 if it's missing - ppport.h doesn't supply it, unfortunately */
|
||||
#ifndef HeUTF8
|
||||
#define HeUTF8(he) ((HeKLEN(he) == HEf_SVKEY) ? \
|
||||
|
||||
Reference in New Issue
Block a user