This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] PR19498, Invalid "symbol definition loop"


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=22987cec624a7890637aa9d8760fbeaeb45a0e20

commit 22987cec624a7890637aa9d8760fbeaeb45a0e20
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Apr 4 16:19:27 2016 +0930

    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:
---
 gas/ChangeLog | 6 ++++++
 gas/symbols.c | 5 ++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index e1e6ab5..6159218 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2016-04-04  Alan Modra  <amodra@gmail.com>
+
+	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  <tbsaunde+binutils@tbsaunde.org>
 
 	* app.c (app_push): use XNEW macro.
diff --git a/gas/symbols.c b/gas/symbols.c
index 642f6d7..4c3137a 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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]