diff options
-rw-r--r-- | ld/ChangeLog | 9 | ||||
-rw-r--r-- | ld/ldgram.y | 17 |
2 files changed, 25 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index eab0eed..e13943a 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,12 @@ +2003-02-20 Phil Edwards <pme@gcc.gnu.org> + + * ldgram.y (vers_defns): Also recurse with 'EXTERN NAME' patterns. + +2003-02-20 Harri Porten <porten@kde.org> + + * ldgram.y (vers_defns): Allow optional trailing semicolon in + EXTERN NAME block; + 2003-02-18 Alan Modra <amodra@bigpond.net.au> * emultempl/ppc32elf.em: New file. diff --git a/ld/ldgram.y b/ld/ldgram.y index 5904acc..fadc3e5 100644 --- a/ld/ldgram.y +++ b/ld/ldgram.y @@ -1130,18 +1130,33 @@ vers_defns: { $$ = lang_new_vers_pattern ($1, $3, ldgram_vers_current_lang); } + | vers_defns ';' EXTERN NAME '{' + { + $<name>$ = ldgram_vers_current_lang; + ldgram_vers_current_lang = $4; + } + vers_defns opt_semicolon '}' + { + $$ = $7; + ldgram_vers_current_lang = $<name>6; + } | EXTERN NAME '{' { $<name>$ = ldgram_vers_current_lang; ldgram_vers_current_lang = $2; } - vers_defns '}' + vers_defns opt_semicolon '}' { $$ = $5; ldgram_vers_current_lang = $<name>4; } ; +opt_semicolon: + /* empty */ + | ';' + ; + %% void yyerror(arg) |