From 0834fd7aca2ad60458e0c1c7a313ee20265842b0 Mon Sep 17 00:00:00 2001 From: "James K. Lowden" <jklowden@symas.com> Date: Sat, 11 May 2024 18:57:52 -0400 Subject: [PATCH] accept string values of -D --- gcc/cobol/cdf.y | 6 +++--- gcc/cobol/scan.l | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gcc/cobol/cdf.y b/gcc/cobol/cdf.y index 5e59a3cf4ea3..84be0ddc4ac7 100644 --- a/gcc/cobol/cdf.y +++ b/gcc/cobol/cdf.y @@ -759,10 +759,10 @@ defined_cmd( const char arg[] ) if(p) { *p++ = '\0'; int pos, number; - if( 1 == sscanf(p, "%d%n", &number, &pos) ) { - if( size_t(pos) == strlen(p) ) { + if( 1 == sscanf(p, "%d%n", &number, &pos) && size_t(pos) == strlen(p) ) { value = cdfval_t(number); - } + } else { + value = cdfval_t(p); // it's a string } } diff --git a/gcc/cobol/scan.l b/gcc/cobol/scan.l index 8a1f4fef073d..2ca79b0ff263 100644 --- a/gcc/cobol/scan.l +++ b/gcc/cobol/scan.l @@ -1087,7 +1087,7 @@ USE({SPC}FOR)? { return USE; } FD/[[:blank:]]+ { parsing.need_level(false); return FD; } SD/[[:blank:]]+ { parsing.need_level(false); return SD; } - {NAME} { yylval.string = strdup(yytext); + {NAME} { ydflval.string = yylval.string = strdup(yytext); const char *value = is_numeric_constant(yytext); return value? numstr_of(value) : NAME; } -- GitLab