summaryrefslogtreecommitdiff
path: root/ld/ldgram.y
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 /ld/ldgram.y
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;
Diffstat (limited to 'ld/ldgram.y')
-rw-r--r--ld/ldgram.y17
1 files changed, 16 insertions, 1 deletions
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)