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.
This commit is contained in:
Alan Modra 2020-05-18 13:30:59 +09:30
parent 503648e41e
commit d402189f2f
2 changed files with 6 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2020-05-18 Alan Modra <amodra@gmail.com>
* symbols.c (resolve_symbol_value): Invoke LOCAL_SYMBOL_CHECK
before looking at add_symbol->sy_flags.
2020-05-18 Hongtao Liu <hongtao.liu@intel.com>
* config/tc-i386.c: Not handle lret/iret.

View File

@ -1389,6 +1389,7 @@ resolve_symbol_value (symbolS *symp)
/* Don't leave symbol loops. */
if (finalize_syms
&& !LOCAL_SYMBOL_CHECK (add_symbol)
&& add_symbol->sy_flags.sy_resolving)
break;