From: Alan Modra Date: Mon, 4 Apr 2016 06:49:27 +0000 (+0930) Subject: PR19498, Invalid "symbol definition loop" X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=22987cec624a7890637aa9d8760fbeaeb45a0e20;p=binutils-gdb.git PR19498, Invalid "symbol definition loop" PR 19498 * symbols.c (resolve_symbol_value): Clear sy_resolving on exit from function on all paths that set sy_resolving. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index e1e6ab5f53e..615921843bb 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2016-04-04 Alan Modra + + PR 19498 + * symbols.c (resolve_symbol_value): Clear sy_resolving on exit + from function on all paths that set sy_resolving. + 2016-04-03 Trevor Saunders * app.c (app_push): use XNEW macro. diff --git a/gas/symbols.c b/gas/symbols.c index 642f6d771b4..4c3137a1278 100644 --- a/gas/symbols.c +++ b/gas/symbols.c @@ -1262,7 +1262,10 @@ resolve_symbol_value (symbolS *symp) resolved = symbol_resolved_p (add_symbol); if (S_IS_WEAKREFR (symp)) - goto exit_dont_set_value; + { + symp->sy_flags.sy_resolving = 0; + goto exit_dont_set_value; + } break; case O_uminus: