diff options
author | Alan Modra <amodra@gmail.com> | 2009-11-30 00:27:45 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2009-11-30 00:27:45 +0000 |
commit | 20f3d0d667e035dcb12a142a86fd4b68360fd328 (patch) | |
tree | df1b8f55e37d2ca1588faef6bdfe3cc1d7f8bdfa /ld | |
parent | d8b31cf05504f6170417c470efd102d3d2d73e8e (diff) | |
download | ppe42-binutils-20f3d0d667e035dcb12a142a86fd4b68360fd328.tar.gz ppe42-binutils-20f3d0d667e035dcb12a142a86fd4b68360fd328.zip |
PR ld/11006
* lexsup.c (parse_args): Allow nested --start-group, --end-group.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/lexsup.c | 14 |
2 files changed, 12 insertions, 7 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 3a0aa49315..8b4d06627f 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2009-11-30 Alan Modra <amodra@bigpond.net.au> + + PR ld/11006 + * lexsup.c (parse_args): Allow nested --start-group, --end-group. + 2009-11-27 Tristan Gingold <gingold@adacore.com> * pe-dll.c (pe_implied_import_dll): Return early if there is no diff --git a/ld/lexsup.c b/ld/lexsup.c index 20aef7b8ce..b992fca37a 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -1459,18 +1459,15 @@ parse_args (unsigned argc, char **argv) command_line.accept_unknown_input_arch = FALSE; break; case '(': - if (ingroup) - einfo (_("%P%F: may not nest groups (--help for usage)\n")); - lang_enter_group (); - ingroup = 1; + ingroup++; break; case ')': if (! ingroup) einfo (_("%P%F: group ended before it began (--help for usage)\n")); lang_leave_group (); - ingroup = 0; + ingroup--; break; case OPTION_INIT: @@ -1501,8 +1498,11 @@ parse_args (unsigned argc, char **argv) } } - if (ingroup) - lang_leave_group (); + while (ingroup) + { + lang_leave_group (); + ingroup--; + } if (default_dirlist != NULL) { |