This message appears to have been posted twice, and I don't see a [PATCH
1/2]

Am I missing something?

Bob D.

> -----Original Message-----
> From: Richard Biener <rguent...@suse.de>
> Sent: Wednesday, March 19, 2025 10:24
> To: gcc-patches@gcc.gnu.org
> Cc: Jakub Jelinek <ja...@redhat.com>; rdub...@symas.com
> Subject: [PATCH 2/2] [cobol] make sources coretypes.h and tree.h clean
> 
> The following removes HOWEVER_GCC_DEFINES_TREE and the alternate
> definition of tree from symbols.h and instead ensures that both
> coretypes.h and tree.h are included where required.  This required
> putting GCCs own 'NONE' in a scoped enum (see separate patch) and
> renaming the cobol use of UNSIGNED, SIGNED and BLOCK which conflict
> with enums from tree.h.
> 
> There's a few things in conflict with options.h defines, notably
> cobol_dialect and cobol_exceptions but also yy_flex_debug (wherever
> that comes from).  I've chosen to simply #undef those where
> appropriate.  I've refrained from putting the coretypes.h and
> tree.h includes in cobol-system.h since not all files require this.
> 
> This helps in making use of real.h instead of using _Float128.
> 
> Bootstrap and regtest is running on x86_64-unknown-linux-gnu.  Is
> this OK if it succeeds?
> 
> Thanks,
> Richard.
> 
>       PR cobol/119241
> gcc/cobol/
>       * symbols.h: Do not typedef tree.
>       * cdf.y: Include coretypes.h and tree.h.
>       * symbols.cc: Likewise.
>       * symfind.cc: Likewise.
>       * util.cc: Likewise.
>       * parse.y: Include coretypes.h and tree.h where appropriate.
>       Rename BLOCK to COB_BLOCK, SIGNED to COB_SIGNED, UNSIGNED
>       to COB_UNSIGNED.
>       * scan.l: Likewise.
>       * token_names.h: Likewise.
>       * cobol1.cc: Do not define HOWEVER_GCC_DEFINES_TREE.
>       * except.cc: Likewise.
>       * genapi.cc: Likewise.
>       * gengen.cc: Likewise.
>       * genmath.cc: Likewise.
>       * genutil.cc: Likewise.
>       * structs.cc: Likewise.
> ---
>  gcc/cobol/cdf.y         |  3 +++
>  gcc/cobol/cobol1.cc     |  1 -
>  gcc/cobol/except.cc     |  1 -
>  gcc/cobol/genapi.cc     |  2 --
>  gcc/cobol/gengen.cc     |  1 -
>  gcc/cobol/genmath.cc    |  1 -
>  gcc/cobol/genutil.cc    |  1 -
>  gcc/cobol/parse.y       | 24 +++++++++++++++---------
>  gcc/cobol/scan.l        | 13 ++++++++-----
>  gcc/cobol/structs.cc    |  1 -
>  gcc/cobol/symbols.cc    |  4 ++++
>  gcc/cobol/symbols.h     |  5 -----
>  gcc/cobol/symfind.cc    |  3 +++
>  gcc/cobol/token_names.h |  6 +++---
>  gcc/cobol/util.cc       |  5 ++++-
>  15 files changed, 40 insertions(+), 31 deletions(-)
> 
> diff --git a/gcc/cobol/cdf.y b/gcc/cobol/cdf.y
> index 12d11e78116..c44ee5ee072 100644
> --- a/gcc/cobol/cdf.y
> +++ b/gcc/cobol/cdf.y
> @@ -30,6 +30,9 @@
>  %{
> 
>  #include "cobol-system.h"
> +#include "coretypes.h"
> +#include "tree.h"
> +#undef yy_flex_debug
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
>  #include "util.h"
> diff --git a/gcc/cobol/cobol1.cc b/gcc/cobol/cobol1.cc
> index 08af367e226..0d07c460d41 100644
> --- a/gcc/cobol/cobol1.cc
> +++ b/gcc/cobol/cobol1.cc
> @@ -29,7 +29,6 @@ along with GCC; see the file COPYING3.  If not see
>  #include "langhooks-def.h"
>  #include "target.h"
>  #include "stringpool.h"
> -#define HOWEVER_GCC_DEFINES_TREE 1
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
>  #include "util.h"
> diff --git a/gcc/cobol/except.cc b/gcc/cobol/except.cc
> index 5374201b4c8..ba49f78d897 100644
> --- a/gcc/cobol/except.cc
> +++ b/gcc/cobol/except.cc
> @@ -32,7 +32,6 @@
>  #include "cobol-system.h"
>  #include "coretypes.h"
>  #include "tree.h"
> -#define HOWEVER_GCC_DEFINES_TREE 1
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
>  #include "util.h"
> diff --git a/gcc/cobol/genapi.cc b/gcc/cobol/genapi.cc
> index a4abbd13ab6..8f4f9b21370 100644
> --- a/gcc/cobol/genapi.cc
> +++ b/gcc/cobol/genapi.cc
> @@ -35,8 +35,6 @@
>  #include "stringpool.h"
>  #include "diagnostic-core.h"
> 
> -#define HOWEVER_GCC_DEFINES_TREE 1
> -
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
>  #include "util.h"
> diff --git a/gcc/cobol/gengen.cc b/gcc/cobol/gengen.cc
> index 2796b7facdb..ffb64c8993d 100644
> --- a/gcc/cobol/gengen.cc
> +++ b/gcc/cobol/gengen.cc
> @@ -95,7 +95,6 @@
>  #include "toplev.h"
>  #include "function.h"
>  #include "fold-const.h"
> -#define HOWEVER_GCC_DEFINES_TREE 1
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
>  #include "util.h"
> diff --git a/gcc/cobol/genmath.cc b/gcc/cobol/genmath.cc
> index 42f01cda6ee..56254e88cc6 100644
> --- a/gcc/cobol/genmath.cc
> +++ b/gcc/cobol/genmath.cc
> @@ -30,7 +30,6 @@
>  #include "cobol-system.h"
>  #include "coretypes.h"
>  #include "tree.h"
> -#define HOWEVER_GCC_DEFINES_TREE 1
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
>  #include "util.h"
> diff --git a/gcc/cobol/genutil.cc b/gcc/cobol/genutil.cc
> index c0e6631bb76..f8bf7bc34b7 100644
> --- a/gcc/cobol/genutil.cc
> +++ b/gcc/cobol/genutil.cc
> @@ -30,7 +30,6 @@
>  #include "cobol-system.h"
>  #include "coretypes.h"
>  #include "tree.h"
> -#define HOWEVER_GCC_DEFINES_TREE 1
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
>  #include "util.h"
> diff --git a/gcc/cobol/parse.y b/gcc/cobol/parse.y
> index c45dc333ec7..01053888736 100644
> --- a/gcc/cobol/parse.y
> +++ b/gcc/cobol/parse.y
> @@ -30,6 +30,7 @@
>  %code requires {
>    #include <fstream>  // Before cobol-system because it uses poisoned
> functions
>    #include "cobol-system.h"
> +  #include "coretypes.h"
>    #include "../../libgcobol/io.h"
>    #include "../../libgcobol/ec.h"
> 
> @@ -279,6 +280,11 @@
>  %{
>  #include <fstream>  // Before cobol-system because it uses poisoned
> functions
>  #include "cobol-system.h"
> +#include "coretypes.h"
> +#include "tree.h"
> +#undef cobol_dialect
> +#undef cobol_exceptions
> +#undef yy_flex_debug
>  #include "cdfval.h"
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
> @@ -402,7 +408,7 @@
> 
>                       BASED BASECONVERT
>                       BEFORE BINARY BIT BIT_OF "BIT-OF" BIT_TO_CHAR
"BIT-TO-
> CHAR"
> -                     BLANK BLOCK
> +                     BLANK COB_BLOCK
>                       BOOLEAN_OF_INTEGER "BOOLEAN-OF-INTEGER"
>                       BOTTOM BY
>                       BYTE BYTE_LENGTH "BYTE-LENGTH"
> @@ -607,7 +613,7 @@
>                       NONE NORMAL NUMBERS
>                       PREFIXED PREVIOUS PROHIBITED RELATION REQUIRED
>                       REVERSE_VIDEO ROUNDING
> -                     SECONDS SECURE SHORT SIGNED
> +                     SECONDS SECURE SHORT COB_SIGNED
>                       STANDARD_BINARY "STANDARD-BINARY"
>                       STANDARD_DECIMAL "STANDARD-DECIMAL"
>                       STATEMENT STEP STRUCTURE
> @@ -615,7 +621,7 @@
>                       TOWARD_LESSER "TOWARD-LESSER"
>                       TRUNCATION
>                       UCS_4 "UCS-4"
> -                     UNDERLINE UNSIGNED
> +                     UNDERLINE COB_UNSIGNED
>                       UTF_16 "UTF-16"
>                       UTF_8 "UTF-8"
> 
> @@ -1008,7 +1014,7 @@
> 
>                          BACKWARD BASED BASECONVERT
>                       BEFORE BINARY BIT BIT_OF BIT_TO_CHAR
> -                        BLANK BLOCK
> +                        BLANK COB_BLOCK
>                       BOOLEAN_OF_INTEGER
>                       BOTTOM BY
>                       BYTE BYTE_LENGTH
> @@ -1222,7 +1228,7 @@
>                          NONE NORMAL NUMBERS
>                          PREFIXED PREVIOUS PROHIBITED RELATION REQUIRED
>                          REVERSE_VIDEO ROUNDING
> -                        SECONDS SECURE SHORT SIGNED
> +                        SECONDS SECURE SHORT COB_SIGNED
>                       STANDARD_BINARY
>                          STANDARD_DECIMAL
>                       STATEMENT STEP STRUCTURE
> @@ -1230,7 +1236,7 @@
>                       TOWARD_LESSER
>                       TRUNCATION
>                          UCS_4
> -                     UNDERLINE UNSIGNED
> +                     UNDERLINE COB_UNSIGNED
>                       UTF_16
>                       UTF_8
> 
> @@ -2901,7 +2907,7 @@ fd_clause:      record_desc
>                  }
>                  ;
> 
> -block_desc:     BLOCK contains rec_contains chars_recs
> +block_desc:     COB_BLOCK contains rec_contains chars_recs
>                  ;
>  rec_contains:   NUMSTR[min] {
>                    ssize_t n;
> @@ -6522,7 +6528,7 @@ context_word:   APPLY                   { static
> char s[] ="APPLY";
>                                           $$ = s; } // screen
description
> entry
>          |       SHORT                  { static char s[] ="SHORT";
>                                           $$ = s; } // DYNAMIC LENGTH
> STRUCTURE clause
> -        |       SIGNED                 { static char s[] ="SIGNED";
> +        |       COB_SIGNED             { static char s[] ="SIGNED";
>                                           $$ = s; } // DYNAMIC LENGTH
> STRUCTURE clause and USAGE clause
>          |       STANDARD_BINARY        { static char s[] ="STANDARD-
> BINARY";
>                                           $$ = s; } // ARITHMETIC clause
> @@ -6548,7 +6554,7 @@ context_word:   APPLY                   { static
> char s[] ="APPLY";
>                                           $$ = s; } // ALPHABET clause
>          |       UNDERLINE              { static char s[] ="UNDERLINE";
>                                           $$ = s; } // screen
description
> entry and SET attribute statement
> -        |       UNSIGNED               { static char s[] ="UNSIGNED";
> +        |       COB_UNSIGNED           { static char s[] ="UNSIGNED";
>                                           $$ = s; } // USAGE clause
>          |       UTF_8                  { static char s[] ="UTF-8";
>                                           $$ = s; } // ALPHABET clause
> diff --git a/gcc/cobol/scan.l b/gcc/cobol/scan.l
> index 18d0d82cf43..4b212f02a11 100644
> --- a/gcc/cobol/scan.l
> +++ b/gcc/cobol/scan.l
> @@ -30,6 +30,9 @@
>  %{
>  #include <fstream>  // Before cobol-system because it uses poisoned
> functions
>  #include "cobol-system.h"
> +#include "coretypes.h"
> +#include "tree.h"
> +#undef yy_flex_debug
> 
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
> @@ -371,7 +374,7 @@ ROUNDING                  { return ROUNDING; }
>  SECONDS                              { return SECONDS; }
>  SECURE                               { return SECURE; }
>  SHORT                                { return SHORT; }
> -SIGNED                               { return SIGNED; }
> +SIGNED                               { return COB_SIGNED; }
>  STANDARD-BINARY                      { return STANDARD_BINARY; }
>  STANDARD-DECIMAL             { return STANDARD_DECIMAL; }
>  STATEMENT                    { return STATEMENT; }
> @@ -391,7 +394,7 @@ TOWARD-LESSER                     { return
TOWARD_LESSER; }
>  TRUNCATION                   { return TRUNCATION; }
>  UCS-4                                { return UCS_4; }
>  UNDERLINE                    { return UNDERLINE; }
> -UNSIGNED                     { return UNSIGNED; }
> +UNSIGNED                     { return COB_UNSIGNED; }
>  UTF-16                               { return UTF_16; }
>  UTF-8                                { return UTF_8; }
> 
> @@ -834,7 +837,7 @@ CALL              { return CALL; }
>  BY           { return BY; }
>  BOTTOM               { return BOTTOM; }
>  BEFORE               { return BEFORE; }
> -BLOCK                { return BLOCK; }
> +BLOCK                { return COB_BLOCK; }
>  BACKWARD     { return BACKWARD; }
> 
>  AT           { return AT; }
> @@ -1039,7 +1042,7 @@ USE({SPC}FOR)?          { return USE; }
>    AS                 { return AS; }
>    ASCENDING          { return ASCENDING; }
>    BLANK              { return BLANK; }
> -  BLOCK                      { return BLOCK; }
> +  BLOCK                      { return COB_BLOCK; }
>    BY                 { return BY; }
>    BYTE-LENGTH                { return BYTE_LENGTH; }
>    CHARACTER          { return CHARACTER; }
> @@ -2161,7 +2164,7 @@ BASIS           { yy_push_state(basis); return
BASIS;
> }
>    BINARY     { return BINARY; }
>    BIT        { return BIT; }
>    BLANK      { return BLANK; }
> -  BLOCK      { return BLOCK; }
> +  BLOCK      { return COB_BLOCK; }
>    BOTTOM     { return BOTTOM; }
>    BY { return BY; }
>    CALL       { return CALL; }
> diff --git a/gcc/cobol/structs.cc b/gcc/cobol/structs.cc
> index 39c8a425fa5..1d2d9845fdf 100644
> --- a/gcc/cobol/structs.cc
> +++ b/gcc/cobol/structs.cc
> @@ -55,7 +55,6 @@
>  #include "cobol-system.h"
>  #include "coretypes.h"
>  #include "tree.h"
> -#define HOWEVER_GCC_DEFINES_TREE 1
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
>  #include "util.h"
> diff --git a/gcc/cobol/symbols.cc b/gcc/cobol/symbols.cc
> index 38c7a2ed47b..17583e002a1 100644
> --- a/gcc/cobol/symbols.cc
> +++ b/gcc/cobol/symbols.cc
> @@ -30,6 +30,10 @@
> 
>  #include <fstream> // Before cobol-system because it uses poisoned
> functions
>  #include "cobol-system.h"
> +
> +#include "coretypes.h"
> +#include "tree.h"
> +
>  #include <search.h>
>  #include <iconv.h>
>  #include "../../libgcobol/ec.h"
> diff --git a/gcc/cobol/symbols.h b/gcc/cobol/symbols.h
> index c1894129781..fb7b60d9eaa 100644
> --- a/gcc/cobol/symbols.h
> +++ b/gcc/cobol/symbols.h
> @@ -48,11 +48,6 @@
> 
>  #define PICTURE_MAX 64
> 
> -// Define a tree type as void pointer outside the generator code.
> -#ifndef HOWEVER_GCC_DEFINES_TREE
> -typedef void *tree;
> -#endif
> -
>  #if ! (__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT))
>  static_assert( sizeof(output) == sizeof(long double), "long doubles?"
);
> 
> diff --git a/gcc/cobol/symfind.cc b/gcc/cobol/symfind.cc
> index 38a890006c8..2687fdb83df 100644
> --- a/gcc/cobol/symfind.cc
> +++ b/gcc/cobol/symfind.cc
> @@ -31,6 +31,9 @@
> 
>  #include "cobol-system.h"
> 
> +#include "coretypes.h"
> +#include "tree.h"
> +
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
>  #include "util.h"
> diff --git a/gcc/cobol/token_names.h b/gcc/cobol/token_names.h
> index 26dabc87eff..f9b80b6fcb0 100644
> --- a/gcc/cobol/token_names.h
> +++ b/gcc/cobol/token_names.h
> @@ -219,7 +219,7 @@ tokens = {
>          { "bit-of", BIT_OF }, // 470
>          { "bit-to-char", BIT_TO_CHAR }, // 471
>          { "blank", BLANK }, // 472
> -        { "block", BLOCK }, // 473
> +        { "block", COB_BLOCK }, // 473
>          { "boolean-of-integer", BOOLEAN_OF_INTEGER }, // 474
>          { "bottom", BOTTOM }, // 475
>          { "by", BY }, // 476
> @@ -642,7 +642,7 @@ tokens = {
>          { "seconds", SECONDS }, // 891
>          { "secure", SECURE }, // 892
>          { "short", SHORT }, // 893
> -        { "signed", SIGNED }, // 894
> +        { "signed", COB_SIGNED }, // 894
>          { "standard-binary", STANDARD_BINARY }, // 895
>          { "standard-decimal", STANDARD_DECIMAL }, // 896
>          { "statement", STATEMENT }, // 897
> @@ -653,7 +653,7 @@ tokens = {
>          { "truncation", TRUNCATION }, // 902
>          { "ucs-4", UCS_4 }, // 903
>          { "underline", UNDERLINE }, // 904
> -        { "unsigned", UNSIGNED }, // 905
> +        { "unsigned", COB_UNSIGNED }, // 905
>          { "utf-16", UTF_16 }, // 906
>          { "utf-8", UTF_8 }, // 907
>          { "address", ADDRESS }, // 908
> diff --git a/gcc/cobol/util.cc b/gcc/cobol/util.cc
> index 101a0a0d803..1c0810bf229 100644
> --- a/gcc/cobol/util.cc
> +++ b/gcc/cobol/util.cc
> @@ -35,6 +35,10 @@
>   */
> 
>  #include "cobol-system.h"
> +#include "coretypes.h"
> +#include "tree.h"
> +#undef yy_flex_debug
> +
>  #include <langinfo.h>
> 
>  #include "coretypes.h"
> @@ -55,7 +59,6 @@
>  #include "cbldiag.h"
>  #include "lexio.h"
> 
> -#define HOWEVER_GCC_DEFINES_TREE
>  #include "../../libgcobol/ec.h"
>  #include "../../libgcobol/common-defs.h"
>  #include "symbols.h"
> --
> 2.43.0

Reply via email to