Re: PR28217, Syntax error when memory region contains a hyphen
authorAlan Modra <amodra@gmail.com>
Fri, 13 Aug 2021 07:51:14 +0000 (17:21 +0930)
committerAlan Modra <amodra@gmail.com>
Fri, 13 Aug 2021 08:53:35 +0000 (18:23 +0930)
I discovered some more errors when tightening up the lexer rules.
Just because we INCLUDE a file doesn't mean we've switched states.

PR 28217
* ldgram.y (statement): Don't switch lexer state on INCLUDE.
(mri_script_command, ifile_p1, memory_spec, section): Likewise.

ld/ldgram.y

index 4910e17ab4a9fabbb5b71784f327e3b7de47c4cd..794cf284a7bee72e4dcf30a752684e77b63a8027 100644 (file)
@@ -248,9 +248,8 @@ mri_script_command:
        |       CASE casesymlist
        |       EXTERN extern_name_list
        |       INCLUDE filename
-               { ldlex_script (); ldfile_open_command_file($2); }
+               { ldfile_open_command_file ($2); }
                mri_script_lines END
-               { ldlex_popstate (); }
        |       START NAME
                { lang_add_entry ($2, false); }
        |
@@ -346,9 +345,8 @@ ifile_p1:
        |       MAP '(' filename ')'
                { lang_add_map($3); }
        |       INCLUDE filename
-               { ldlex_script (); ldfile_open_command_file($2); }
+               { ldfile_open_command_file ($2); }
                ifile_list END
-               { ldlex_popstate (); }
        |       NOCROSSREFS '(' nocrossref_list ')'
                {
                  lang_add_nocrossref ($3);
@@ -697,11 +695,9 @@ statement:
                }
        | INCLUDE filename
                {
-                 ldlex_script ();
                  ldfile_open_command_file ($2);
                }
          statement_list_opt END
-               { ldlex_popstate (); }
        ;
 
 statement_list:
@@ -814,9 +810,8 @@ memory_spec:        NAME
                origin_spec opt_comma length_spec
                {}
        |       INCLUDE filename
-               { ldlex_script (); ldfile_open_command_file($2); }
+               { ldfile_open_command_file ($2); }
                memory_spec_list_opt END
-               { ldlex_popstate (); }
        ;
 
 origin_spec:
@@ -1117,11 +1112,9 @@ section: NAME
                '{' sec_or_group_p1 '}'
        |       INCLUDE filename
                        {
-                         ldlex_script ();
                          ldfile_open_command_file ($2);
                        }
                sec_or_group_p1 END
-                       { ldlex_popstate (); }
        ;
 
 type: