GNU Binutils with patches for OS216
Revision | 3730a015c05cde8d151f94bef20e43ea2bf96ccc (tree) |
---|---|
Zeit | 2020-05-18 17:19:31 |
Autor | Alan Modra <amodra@gmai...> |
Commiter | Alan Modra |
Re: Fix tight loop on recursively-defined symbols
sy_resolving ought to not be set for a struct local_symbol, but it is
apparent from local_symbol_make that the field is not initialised.
* symbols.c (resolve_symbol_value): Invoke LOCAL_SYMBOL_CHECK
before looking at add_symbol->sy_flags.sy_resolving.
(cherry picked from commit d402189f2faa0aaa9fb8ad4669fdf0059946cd8a)
@@ -1,3 +1,8 @@ | ||
1 | +2020-05-18 Alan Modra <amodra@gmail.com> | |
2 | + | |
3 | + * symbols.c (resolve_symbol_value): Invoke LOCAL_SYMBOL_CHECK | |
4 | + before looking at add_symbol->sy_flags. | |
5 | + | |
1 | 6 | 2020-05-15 Alan Modra <amodra@gmail.com> |
2 | 7 | Alex Coplan <alex.coplan@arm.com> |
3 | 8 |
@@ -1387,6 +1387,7 @@ resolve_symbol_value (symbolS *symp) | ||
1387 | 1387 | |
1388 | 1388 | /* Don't leave symbol loops. */ |
1389 | 1389 | if (finalize_syms |
1390 | + && !LOCAL_SYMBOL_CHECK (add_symbol) | |
1390 | 1391 | && add_symbol->sy_flags.sy_resolving) |
1391 | 1392 | break; |
1392 | 1393 |