Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 1408d5d

Browse files
committed
Get rid of useless/dangerous redefinition of bool in ECPG.
pgtypeslib_extern.h contained fallback definitions of "bool", "FALSE", and "TRUE". The latter two are just plain unused, and have been for awhile. The former came into play only if there wasn't a macro definition of "bool", which is true only if we aren't using <stdbool.h>. However, it then defined bool as "char"; since commit d26a810 that conflicts with c.h's desire to use "unsigned char". We'd missed seeing any bad effects of that due to accidental header inclusion order choices, but dddf4cd exposed that it was problematic. To fix, let's just get rid of these definitions. They should not be needed because everyplace in Postgres should be relying on c.h to provide a definition for type bool. (Note that despite its name, pgtypeslib_extern.h isn't exposed to any outside code; we don't install it.) This doesn't fully resolve the issue, because ecpglib.h is doing similar things, but that seems to require more thought to fix. Back-patch to v12 where d26a810 came in, to forestall any unpleasant surprises from future back-patched bug fixes. Discussion: https://postgr.es/m/CAA4eK1LmaKO7Du9M9Lo=kxGU8sB6aL8fa3sF6z6d5yYYVe3BuQ@mail.gmail.com
1 parent 22f6f2c commit 1408d5d

File tree

1 file changed

+0
-12
lines changed

1 file changed

+0
-12
lines changed

src/interfaces/ecpg/pgtypeslib/pgtypeslib_extern.h

-12
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,4 @@ int pgtypes_fmt_replace(union un_fmt_comb, int, char **, int *);
3838
char *pgtypes_alloc(long);
3939
char *pgtypes_strdup(const char *);
4040

41-
#ifndef bool
42-
#define bool char
43-
#endif /* ndef bool */
44-
45-
#ifndef FALSE
46-
#define FALSE 0
47-
#endif /* FALSE */
48-
49-
#ifndef TRUE
50-
#define TRUE 1
51-
#endif /* TRUE */
52-
5341
#endif /* _ECPG_PGTYPESLIB_EXTERN_H */

0 commit comments

Comments
 (0)