Hi, this might be related to 11793, but the PR claims that the problem is fixed in head. I'm still seeing a (though different) ICE with -snapshot at the same line of code as in 11793: $ /usr/lib/gcc-snapshot/bin/gcc -O4 --save-temps -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -g -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -maltivec -mabi=altivec -c -o ppc/mpegvideo_altivec.o ppc/mpegvideo_altivec.c In function `dct_quantize_altivec': ppc/mpegvideo_altivec.c:512: internal compiler error: in add_location_or_const_value_attribute, at dwarf2out.c:9453 The problem can again be worked around by removing the -O4 switch. Preprocessed source is up at: http://honk.physik.uni-konstanz.de/linux-mips/gcc/bugs/mpegvideo_altivec-snapshot.i Please let me know if I can provide any further details. Regards, -- Guido
Created attachment 4623 [details] preprocessed source I attached the preprocessed source.
The reason why I claimed it was fixed on the mainline was because I was not using linux to test it, I was using darwin which defaults to stabs so this most definitally a dwarf-2 debuging problem.
Removing the -g should workaround the ICE but you get no debuging symbols.
I'm reducing this one.
Created attachment 4652 [details] somewhat reduced testcase Down to 88 lines. That's probably about as far as I'll get it.
Most likely related to or the same as bug 13148.
*** Bug 13148 has been marked as a duplicate of this bug. ***
*** Bug 13580 has been marked as a duplicate of this bug. ***
Confirmed but the somewhat reduced testcase needs to go further.
Looks like add_location_or_const_value_attribute needs to understand const_vector.
Patch here: <http://gcc.gnu.org/ml/gcc-patches/2004-01/msg00354.html>.
My patch does not fix it all the way and there needs to be decided how CONST_VECTOR is described in dwarf2
*** Bug 14243 has been marked as a duplicate of this bug. ***
Patch in progress
Patch here: <http://gcc.gnu.org/ml/gcc-patches/2004-03/msg00598.html>.
Subject: Bug 11983 CVSROOT: /cvs/gcc Module name: gcc Changes by: amodra@gcc.gnu.org 2004-03-07 23:42:38 Modified files: gcc : ChangeLog dwarf2out.c Log message: PR debug/11983 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to dw_val_class_vec. Replace use throughout file. (dw_float_const): Delete. (dw_vec_const): New. (dw_val_struct_union): Rename val_float to val_vec. Replace use throughout file. (add_AT_vec): Rename from add_AT_float. Add elt_size param. (same_dw_val_p): Adjust vec comparison. Use memcmp. (size_of_die): Adjust dw_val_class_vec sizing. (output_die): Output dw_val_class_vec. (insert_int, extract_int, insert_float): New functions. (add_const_value_attribute): Use insert_float for CONST_DOUBLE. Handle CONST_VECTOR. (add_location_or_const_value_attribute): Handle CONST_VECTOR. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.3088&r2=2.3089 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/dwarf2out.c.diff?cvsroot=gcc&r1=1.498&r2=1.499
A 3.4.0 and now a 3.3.3 regression as the fix for PR11793 just makes this one show up.
3.4.0 fix committed.
Subject: Re: [3.3 Regression] ICE in dwarf-2 on code using altivec "amodra at bigpond dot net dot au" <gcc-bugzilla@gcc.gnu.org> writes: | 3.4.0 fix committed. Could you commit correponding versions for gcc-3_3-branch? -- Gaby
(In reply to comment #18) > 3.4.0 fix committed. The patch as if does not apply cleably to gcc-3_3-branch. Do you have a version for gcc-3.3.4? Does it worth it? -- Gaby
Subject: Bug 11983 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_3-branch Changes by: amodra@gcc.gnu.org 2004-03-13 09:20:16 Modified files: gcc : ChangeLog dwarf2out.c Log message: PR debug/11983 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to dw_val_class_vec. Replace use throughout file. (dw_float_const): Delete. (dw_vec_const): New. (dw_val_struct_union): Rename val_float to val_vec. Replace use throughout file. (add_AT_vec): Rename from add_AT_float. Add elt_size param. (same_dw_val_p): Adjust vec comparison. Use memcmp. (size_of_die): Adjust dw_val_class_vec sizing. (output_die): Output dw_val_class_vec. (insert_int, extract_int, insert_float): New functions. (add_const_value_attribute): Use insert_float for CONST_DOUBLE. Handle CONST_VECTOR. (add_location_or_const_value_attribute): Handle CONST_VECTOR. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.16114.2.939&r2=1.16114.2.940 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/dwarf2out.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.390.2.11&r2=1.390.2.12
Fix applied to all active branches.