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