PR22187, infinite loop in find_abstract_instance_name
authorAlan Modra <amodra@gmail.com>
Sun, 24 Sep 2017 05:07:16 +0000 (14:37 +0930)
committerAlan Modra <amodra@gmail.com>
Sun, 24 Sep 2017 06:47:19 +0000 (16:17 +0930)
commit52a93b95ec0771c97e26f0bb28630a271a667bd2
treef966107445013272e6477c7e53a63dbedeb0a86c
parentd8010d3e75ec7194a4703774090b27486b742d48
PR22187, infinite loop in find_abstract_instance_name

This patch prevents the simple case of infinite recursion in
find_abstract_instance_name by ensuring that the attributes being
processed are not the same as the previous call.

The patch also does a little cleanup, and leaves in place some changes
to the nested_funcs array that I made when I wrongly thought looping
might occur in scan_unit_for_symbols.

PR 22187
* dwarf2.c (find_abstract_instance_name): Add orig_info_ptr and
pname param.  Return status.  Make name const.  Don't abort,
return an error.  Formatting.  Exit if current info_ptr matches
orig_info_ptr.  Update callers.
(scan_unit_for_symbols): Start at nesting_level of zero.  Make
nested_funcs an array of structs for extensibility.  Formatting.
bfd/ChangeLog
bfd/dwarf2.c