From 22987cec624a7890637aa9d8760fbeaeb45a0e20 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 4 Apr 2016 16:19:27 +0930 Subject: [PATCH] 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. --- gas/ChangeLog | 6 ++++++ gas/symbols.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) 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: -- 2.30.2