summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2003-02-20 01:02:39 +0000
committerAlan Modra <amodra@bigpond.net.au>2003-02-20 01:02:39 +0000
commit5ddd7b60fda4c4045212a0f5964a41eaaa2fc667 (patch)
tree3cfb22e323f125906d40eee828e502d78301a31d
parent3022f92f9604587e2c9544ac1c61f7d1b5346183 (diff)
downloadbinutils-redhat-5ddd7b60fda4c4045212a0f5964a41eaaa2fc667.tar.gz
* ldgram.y (vers_defns): Also recurse with 'EXTERN NAME' patterns.
* ldgram.y (vers_defns): Allow optional trailing semicolon in EXTERN NAME block;
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/ldgram.y17
2 files changed, 25 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index eab0eed713..e13943af12 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 5904accce6..fadc3e534e 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)