2005-11-22 James E Wilson * config/tc-ia64.c (slot_index): Emit an error instead of a warning when the frag chain is broken by section switching. Index: tc-ia64.c =================================================================== RCS file: /cvs/src/src/gas/config/tc-ia64.c,v retrieving revision 1.182 diff -p -p -r1.182 tc-ia64.c *** tc-ia64.c 23 Nov 2005 01:40:55 -0000 1.182 --- tc-ia64.c 23 Nov 2005 03:12:31 -0000 *************** slot_index (slot_addr, slot_frag, first_ *** 2895,2918 **** first_addr = (unsigned long) &first_frag->fr_literal; /* This can happen if there is section switching in the middle of a ! function, causing the frag chain for the function to be broken. */ if (first_frag == NULL) ! { ! /* We get six warnings for one problem, because of the loop in ! fixup_unw_records, and because fixup_unw_records is called 3 ! times: once before creating the variant frag, once to estimate ! its size, and once to relax it. This is unreasonable, so we use ! a static var to make sure we only emit the warning once. */ ! static int warned = 0; ! ! if (!warned) ! { ! as_warn ("Corrupted unwind info due to unsupported section switching"); ! warned = 1; ! } ! ! return index; ! } } /* Add in the used part of the last frag. */ --- 2895,2905 ---- first_addr = (unsigned long) &first_frag->fr_literal; /* This can happen if there is section switching in the middle of a ! function, causing the frag chain for the function to be broken. ! It is too difficult to recover safely from this problem, so we just ! exit with an error. */ if (first_frag == NULL) ! as_fatal ("Section switching in code is not supported."); } /* Add in the used part of the last frag. */