From e6c975f236b52dea43fdf496a93b01c27fe04a92 Mon Sep 17 00:00:00 2001
From: "James K. Lowden" <jklowden@symas.com>
Date: Tue, 26 Mar 2024 20:24:43 -0400
Subject: [PATCH] lexer prioritizes data item names over function names

---
 gcc/cobol/scan.l | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/cobol/scan.l b/gcc/cobol/scan.l
index 5d12512a3bcd..d1fd0b9edfca 100644
--- a/gcc/cobol/scan.l
+++ b/gcc/cobol/scan.l
@@ -1737,7 +1737,9 @@ COPY		{
                   ydflval.string = yylval.string = strdup(yytext);
 
                   int token = keyword_tok(null_trim(yylval.string), true);
-                  if( token ) {
+		  auto elem = symbol_field(PROGRAM, 0, yylval.string);
+
+                  if( token && ! elem ) { // not a data item name
                     // If token is an intrinsic, and not in Repository, pretend
                     // it's a name and let the parser sort it out.
                     auto name = intrinsic_function_name(token);
-- 
GitLab