------- Comment #2 from pinskia at gcc dot gnu dot org 2006-03-04 15:53 ------- This is definitely a middle-end issue: #0 fancy_abort (file=0xce9f78 "/home/pinskia/src/checkin/trunk/gcc/simplify-rtx.c", line=4402, function=0xed4670 "simplify_subreg") at /home/pinskia/src/checkin/trunk/gcc/diagnostic.c:642 #1 0x00000000009b119d in simplify_subreg (outermode=VOIDmode, op=0x2aaaaafb1410, innermode=DImode, byte=0) at /home/pinskia/src/checkin/trunk/gcc/simplify-rtx.c:4402 #2 0x00000000009b1de3 in simplify_gen_subreg (outermode=VOIDmode, op=0x2aaaaafb1410, innermode=DImode, byte=0) at /home/pinskia/src/checkin/trunk/gcc/simplify-rtx.c:4679 #3 0x00000000006bf81a in gen_lowpart_common (mode=VOIDmode, x=0x2aaaaafb1410) at /home/pinskia/src/checkin/trunk/gcc/emit-rtl.c:1158 #4 0x0000000000a366b3 in gen_lowpart_general (mode=VOIDmode, x=0x2aaaaafb1410) at /home/pinskia/src/checkin/trunk/gcc/rtlhooks.c:43 #5 0x00000000006ed801 in convert_modes (mode=VOIDmode, oldmode=SImode, x=0x2aaaaafb1410, unsignedp=0) at /home/pinskia/src/checkin/trunk/gcc/expr.c:822 #6 0x00000000009be5bb in emit_case_nodes (index=0x2aaaaafb1410, node=0x2aaaab10cf90, default_label=0x2aaaaafb2910, index_type=0x2aaaaafbb4d0) at /home/pinskia/src/checkin/trunk/gcc/stmt.c:2949 #7 0x00000000009bd129 in expand_case (exp=0x2aaaaafb24b0) at /home/pinskia/src/checkin/trunk/gcc/stmt.c:2509 ---------- And has nothing to do with the array size not being defined at first. Further reduced testcase: const int struct_test[1] = {1}; void g(); void f() { switch(struct_test[0]) { case 1: g(); } }
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26557