From 93b907b842362661c9da0c78e1d8bbb65ffd5796 Mon Sep 17 00:00:00 2001 From: "James K. Lowden" <jklowden@symas.com> Date: Fri, 17 Jan 2025 19:14:54 -0500 Subject: [PATCH] WIP: one UAT test remains --- gcc/cobol/UAT/testsuite.src/syn_set.at | 5 +++-- gcc/cobol/parse_ante.h | 3 +++ gcc/cobol/symbols.cc | 5 +++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/gcc/cobol/UAT/testsuite.src/syn_set.at b/gcc/cobol/UAT/testsuite.src/syn_set.at index 5edf2e921084..ec12161918d6 100644 --- a/gcc/cobol/UAT/testsuite.src/syn_set.at +++ b/gcc/cobol/UAT/testsuite.src/syn_set.at @@ -39,8 +39,9 @@ AT_DATA([prog.cob], [ STOP RUN. ]) AT_CHECK([$COMPILE_ONLY prog.cob], [1], [], -[prog.cob:8: error: 88 x-wrong-init invalid VALUE for numeric type X -prog.cob:12: 1 errors in DATA DIVISION, compilation ceases at 'PROCEDURE DIVISION' +[prog.cob:8:14: error: 88 x-wrong-init invalid VALUE for numeric type X + 8 | 88 x-wrong-init value space. + | ^ cobol1: error: failed compiling prog.cob ]) AT_CLEANUP diff --git a/gcc/cobol/parse_ante.h b/gcc/cobol/parse_ante.h index 5ce77ca8d562..417f672277e9 100644 --- a/gcc/cobol/parse_ante.h +++ b/gcc/cobol/parse_ante.h @@ -2801,6 +2801,9 @@ field_add( const YYLTYPE& loc, cbl_field_t *field ) { break; } + // Use isym 0 to indicate the location of the field under construction. + symbol_field_location(0, loc); + struct symbol_elem_t *e = symbol_field_add(PROGRAM, field); if( !e ) return NULL; symbol_field_location(symbol_index(e), loc); diff --git a/gcc/cobol/symbols.cc b/gcc/cobol/symbols.cc index 3c058bf24d4e..02a9594f31f7 100644 --- a/gcc/cobol/symbols.cc +++ b/gcc/cobol/symbols.cc @@ -2278,8 +2278,9 @@ symbol_field_parent_set( struct cbl_field_t *field ) return false; } ); if( ! all_numeric ) { - ERROR_FIELD(field, "%s %s invalid VALUE for numeric type %s", - field->level_str(), field->name, prior->name); + auto loc = symbol_field_location(0); + error_msg(loc, "%s %s invalid VALUE for numeric type %s", + field->level_str(), field->name, prior->name); } } return prior; -- GitLab