Hi Simon,
>
>> Shouldn't that be
>>
>> --- a/gcc/cobol/parse.y
>> +++ b/gcc/cobol/parse.y
>> @@ -337,7 +337,7 @@
>>  %token  <number>        INVALID
>>  %token  <number>        NUMBER NEGATIVE
>>  %token  <numstr>        NUMSTR    "numeric literal"
>> -%token  <number>        OVERFLOW
>> +%token  <number>        OVERFLOW_kw "OVERFLOW"
>>  %token  <computational> COMPUTATIONAL
>>
>>
>> ? Otherwise bison syntax messages will use OVERFLOW_kw instead of the
>> "real" name - if this _kw is done with other tokens in parse.y I think it
>> should similarly specify the token "message identifier".
>
> you're right.  I guess it would really be best to consistently use the
> *_kw form so all tokens are treated the same.

here's what I've committed after retesting.

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2025-04-08  Rainer Orth  <r...@cebitec.uni-bielefeld.de>
            Simon Sobisch <simonsobi...@gnu.org>

        gcc/cobol:
        PR cobol/119217
        * parse.y: Rename OVERFLOW to OVERFLOW_kw.
        Specify type name in %token directive.
        * scan.l: Likewise.
        * token_names.h: Regenerate.

# HG changeset patch
# Parent  8d01eba3eb223f9136989ddfe7af8e9557947749
cobol: Avoid conflict with OVERFLOW in system headers [PR119217]

diff --git a/gcc/cobol/parse.y b/gcc/cobol/parse.y
--- a/gcc/cobol/parse.y
+++ b/gcc/cobol/parse.y
@@ -338,7 +338,7 @@
 %token  <number>        INVALID
 %token  <number>        NUMBER NEGATIVE
 %token  <numstr>        NUMSTR    "numeric literal"
-%token  <number>        OVERFLOW
+%token  <number>        OVERFLOW_kw "OVERFLOW"
 %token  <computational> COMPUTATIONAL
 
 %token  <boolean>       PERFORM BACKWARD
@@ -997,7 +997,7 @@
                         DELETE DISPLAY DIVIDE EVALUATE END EOP EXIT FILLER_kw
                         GOBACK GOTO
                         INITIALIZE INSPECT
-                        MERGE MOVE MULTIPLY OPEN OVERFLOW PARAGRAPH PERFORM
+                        MERGE MOVE MULTIPLY OPEN OVERFLOW_kw PARAGRAPH PERFORM
                         READ RELEASE RETURN REWRITE
                         SEARCH SET SELECT SORT SORT_MERGE
                         STRING_kw STOP SUBTRACT START
@@ -9495,7 +9495,7 @@ call_except:    EXCEPTION
                     std::swap($$.on_error, $$.not_error);
                   }
                 }
-        |       OVERFLOW
+        |       OVERFLOW_kw
                 {
                   $$.not_error = NULL;
                   $$.on_error = label_add(LblArith,
@@ -9503,7 +9503,7 @@ call_except:    EXCEPTION
                   if( !$$.on_error ) YYERROR;
                   parser_call_exception( $$.on_error );
 
-                  assert( $1 == OVERFLOW || $1 == NOT );
+                  assert( $1 == OVERFLOW_kw || $1 == NOT );
                   if( $1 == NOT ) {
                     std::swap($$.on_error, $$.not_error);
                   }
@@ -9758,7 +9758,7 @@ on_overflows:   on_overflow[over] statem
                 }
                 ;
 
-on_overflow:    OVERFLOW
+on_overflow:    OVERFLOW_kw
                 {
                   $$.not_error = NULL;
                   $$.on_error = label_add(LblString,
@@ -9766,7 +9766,7 @@ on_overflow:    OVERFLOW
                   if( !$$.on_error ) YYERROR;
                   parser_string_overflow( $$.on_error );
 
-                  assert( $1 == OVERFLOW || $1 == NOT );
+                  assert( $1 == OVERFLOW_kw || $1 == NOT );
                   if( $1 == NOT ) {
                     std::swap($$.on_error, $$.not_error);
                   }
diff --git a/gcc/cobol/scan.l b/gcc/cobol/scan.l
--- a/gcc/cobol/scan.l
+++ b/gcc/cobol/scan.l
@@ -1543,9 +1543,9 @@ USE({SPC}FOR)?		{ return USE; }
   NOT{SPC}(ON{SPC})?EXCEPTION {
                                   yylval.number = NOT;       return EXCEPTION; }
 
- (ON{SPC})?OVERFLOW      { yylval.number = OVERFLOW; return OVERFLOW; }
+ (ON{SPC})?OVERFLOW      { yylval.number = OVERFLOW_kw; return OVERFLOW_kw; }
   NOT{SPC}(ON{SPC})?OVERFLOW {
-                                  yylval.number = NOT;      return OVERFLOW; }
+                                  yylval.number = NOT;      return OVERFLOW_kw; }
 
  (AT{SPC})?END/[[:space:]]                { yylval.number = END;
                                                    return END; }
@@ -2312,7 +2312,7 @@ BASIS		{ yy_push_state(basis); return BA
   ORGANIZATION	{ return ORGANIZATION; }
   OTHER	{ return OTHER; }
   OUTPUT	{ return OUTPUT; }
-  OVERFLOW	{ return OVERFLOW; }
+  OVERFLOW	{ return OVERFLOW_kw; }
   OVERRIDE	{ return OVERRIDE; }
   PACKED-DECIMAL	{ return PACKED_DECIMAL; }
   PAGE	{ return PAGE; }
diff --git a/gcc/cobol/token_names.h b/gcc/cobol/token_names.h
--- a/gcc/cobol/token_names.h
+++ b/gcc/cobol/token_names.h
@@ -49,7 +49,7 @@ tokens = {
         { "number", NUMBER }, // 302
         { "negative", NEGATIVE }, // 303
         { "numstr", NUMSTR }, // 304
-        { "overflow", OVERFLOW }, // 305
+        { "overflow", OVERFLOW_kw }, // 305
         { "computational", COMPUTATIONAL }, // 306
         { "perform", PERFORM }, // 307
         { "backward", BACKWARD }, // 308

Reply via email to