postgres.git / summary / log / commit / refs

commit    382092a0cd2c75613f3df889f7b821577e6773d7
Author:   Peter Eisentraut <peter@eisentraut.org>
Date:     Thu Dec 19 10:21:06 2024 +0000
First released in: 18.0
Reverted by: ae0e1be9f2a2

    Prevent redeclaration of typedef yyscan_t
    
    Fix for 1f0de66ea2a: We need to prevent redeclaration of typedef
    yyscan_t.  (This will work with C11 but not currently with C99.)  The
    generated scanner files provide their own typedef, but we also need to
    provide one for the interfaces that we expose.  So we need to add some
    preprocessor guards to avoid a redefinition.  (This is how the
    generated scanner files do it internally as well.)  This way
    everything now works independent of the order in which things are
    included.
    
    Discussion: https://www.postgresql.org/message-id/flat/eb6faeac-2a8a-4b69-9189-c33c520e5b7b@eisentraut.org


contrib/cube/cubedata.h | 3 +++ contrib/seg/segdata.h | 3 +++ 2 files changed, 6 insertions(+) diff --git a/contrib/cube/cubedata.h b/contrib/cube/cubedata.h index 8bfcc6e99a2..ad1e2bd6998 100644 --- a/contrib/cube/cubedata.h +++ b/contrib/cube/cubedata.h @@ -62,7 +62,10 @@ typedef struct NDBOX /* for cubescan.l and cubeparse.y */ /* All grammar constructs return strings */ #define YYSTYPE char * +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; +#endif /* in cubescan.l */ extern int cube_yylex(YYSTYPE *yylval_param, yyscan_t yyscanner); diff --git a/contrib/seg/segdata.h b/contrib/seg/segdata.h index 7bc7c83dca3..4347c31c28e 100644 --- a/contrib/seg/segdata.h +++ b/contrib/seg/segdata.h @@ -16,7 +16,10 @@ extern int significant_digits(const char *s); /* for segscan.l and segparse.y */ union YYSTYPE; +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; +#endif /* in segscan.l */ extern int seg_yylex(union YYSTYPE *yylval_param, yyscan_t yyscanner); [parent: 9aea73fc61d4]