diff options
Diffstat (limited to 'ld/ldgram.y')
-rw-r--r-- | ld/ldgram.y | 17 |
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) |