Clear all local_symbol.lsy_flags
[deliverable/binutils-gdb.git] / gas / symbols.c
index 711730daf1c644b4b5647a5a236406bb1aae272f..2fa752517383f1c92ee20f87f85fa92630bf9f4c 100644 (file)
@@ -327,14 +327,14 @@ local_symbol_make (const char *name, segT section, valueT val, fragS *frag)
 {
   const char *name_copy;
   struct local_symbol *ret;
+  struct symbol_flags flags = { .sy_local_symbol = 1, .sy_resolved = 0 };
 
   ++local_symbol_count;
 
   name_copy = save_symbol_name (name);
 
   ret = (struct local_symbol *) obstack_alloc (&notes, sizeof *ret);
-  ret->lsy_flags.sy_local_symbol = 1;
-  ret->lsy_flags.sy_resolved = 0;
+  ret->lsy_flags = flags;
   ret->lsy_name = name_copy;
   ret->lsy_section = section;
   local_symbol_set_frag (ret, frag);
@@ -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;
 
This page took 0.028643 seconds and 4 git commands to generate.