xtensa: fix gas segfault with --text-section-literals
[deliverable/binutils-gdb.git] / gas / config / tc-xtensa.c
index 31c0b6be7eea1d0d80289e843244418a4cf475f8..18307c1b52a578984d7738cc39e6097a32eabfd3 100644 (file)
@@ -10808,13 +10808,21 @@ xtensa_move_literals (void)
       frchain_to = NULL;
       frag_splice = &(frchain_from->frch_root);
 
-      while (!search_frag->tc_frag_data.literal_frag)
+      while (search_frag && !search_frag->tc_frag_data.literal_frag)
        {
          gas_assert (search_frag->fr_fix == 0
                  || search_frag->fr_type == rs_align);
          search_frag = search_frag->fr_next;
        }
 
+      if (!search_frag)
+       {
+         search_frag = frchain_from->frch_root;
+         as_bad_where (search_frag->fr_file, search_frag->fr_line,
+                       _("literal pool location required for text-section-literals; specify with .literal_position"));
+         continue;
+       }
+
       gas_assert (search_frag->tc_frag_data.literal_frag->fr_subtype
              == RELAX_LITERAL_POOL_BEGIN);
       xtensa_switch_section_emit_state (&state, segment->seg, 0);
This page took 0.02435 seconds and 4 git commands to generate.