aboutsummaryrefslogtreecommitdiff
path: root/ld/ldgram.y
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2003-02-20 01:02:39 +0000
committerAlan Modra <amodra@gmail.com>2003-02-20 01:02:39 +0000
commit8e23b15d1cd68862503d11996be661999b8584c0 (patch)
tree0894037e42e1472e70bb048442b6225142713a98 /ld/ldgram.y
parentfe898f56a1df2d8a610899df50e38d1590f3e57a (diff)
downloadgdb-8e23b15d1cd68862503d11996be661999b8584c0.zip
gdb-8e23b15d1cd68862503d11996be661999b8584c0.tar.gz
gdb-8e23b15d1cd68862503d11996be661999b8584c0.tar.bz2
* 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 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)