[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die
--- Comment #11 from janis at gcc dot gnu dot org 2006-10-18 16:27 --- A regression hunt on powerpc-linux using the testcase from the submitter's description showed that it went from an ICE to an error with this patch: http://gcc.gnu.org/viewcvs?view=revrev=110925 r110925 | geoffk | 2006-02-13 21:17:59 + (Mon, 13 Feb 2006) Let me know if other reghunts would be useful here. -- janis at gcc dot gnu dot org changed: What|Removed |Added CC||geoffk at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436
[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die
--- Comment #12 from geoffk at gcc dot gnu dot org 2006-10-18 17:08 --- Isn't this a dup of bug 28834? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436
[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die
--- Comment #13 from pinskia at gcc dot gnu dot org 2006-10-18 17:19 --- (In reply to comment #12) Isn't this a dup of bug 28834? Related for sure, dup unknown at this point. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added BugsThisDependsOn||28834 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436
[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die
--- Comment #4 from rguenth at gcc dot gnu dot org 2006-10-17 09:37 --- I cannot reproduce this any longer with 4.2: trunk-g/gcc ./cc1 -quiet t.i -g3 -std=gnu99 -W -Wall -m32 t.i: In function 'handler': t.i:12: error: incompatible types in assignment though cc1plus ICEs (differently) now: trunk-g/gcc ./cc1plus -quiet t.i -g3 -std=gnu99 -W -Wall -m32 cc1plus: warning: command line option -std=gnu99 is valid for C/ObjC but not for C++ t.i: In function 'void handler(void*)': t.i:11: error: invalid conversion from 'void*' to 'cmonkey*' t.i:12: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See URL:http://gcc.gnu.org/bugs.html for instructions. Starting program: /abuild/rguenther/trunk-g/gcc/cc1plus -quiet t.i -g3 -std=gnu99 -W -Wall -m32 cc1plus: warning: command line option -std=gnu99 is valid for C/ObjC but not for C++ t.i: In function 'void handler(void*)': t.i:11: error: invalid conversion from 'void*' to 'cmonkey*' Program received signal SIGSEGV, Segmentation fault. 0x005aa1b8 in decl_namespace_context (decl=0x2b8e53df20b0) at /space/rguenther/src/svn/trunk/gcc/cp/tree.c:1391 1391decl = CP_DECL_CONTEXT (TYPE_MAIN_DECL (decl)); (gdb) print decl-type.main_variant-common.chain $1 = (tree) 0x0 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436
[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die
--- Comment #5 from rguenth at gcc dot gnu dot org 2006-10-17 12:33 --- We're getting a type variant with the attribute created which shares TYPE_NAME which in turn points back to the wrong (un-attributed) type. So we do not create a die for the attributed type. This can be worked around with Index: tree.c === *** tree.c (revision 117822) --- tree.c (working copy) *** build_type_attribute_variant (tree ttype *** 3310,3315 --- 3310,3320 ntype = type_hash_canon (hashcode, ntype); ttype = build_qualified_type (ntype, TYPE_QUALS (ttype)); + if (TYPE_NAME (ttype)) + { + TYPE_NAME (ttype) = copy_node (TYPE_NAME (ttype)); + TREE_TYPE (TYPE_NAME (ttype)) = ttype; + } } return ttype; after which we have the same situation as currently on mainline (cc1plus segfaults, cc1 is fine). I guess something fixed this on the mainline - any idea what? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436
[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die
--- Comment #6 from rguenth at gcc dot gnu dot org 2006-10-17 12:37 --- Janis, can you hunt this on the mainline? I want to know at what point we changed from the ICE in dwarf2out to issuing an error (for cc1). Thanks! -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||janis at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436
[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die
--- Comment #7 from pinskia at gcc dot gnu dot org 2006-10-17 15:31 --- (In reply to comment #6) Janis, can you hunt this on the mainline? I want to know at what point we changed from the ICE in dwarf2out to issuing an error (for cc1). We still ICE for the testcase in comment #2. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436
[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die
--- Comment #8 from acahalan at gmail dot com 2006-10-17 21:05 --- In case comment #4 was meant to imply that a non-ICE error is fine: Please note that the crashing code is very nearly the __may_alias__ example given in the gcc documentation. The main difference is that I used a struct. This really needs to work for things like malloc arena headers, so the t.i:12: error: incompatible types in assignment and t.i:11: error: invalid conversion from 'void*' to 'cmonkey*' stuff is no good. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436
[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die
--- Comment #9 from acahalan at gmail dot com 2006-10-18 00:57 --- I did it again, but this time in splice_child_die. $ gcc -g3 -Os -W -Wall -std=gnu99 jji.c jji.c:3: warning: useless storage class specifier in empty declaration jji.c:5: internal compiler error: in splice_child_die, at dwarf2out.c:5492 Please submit a full bug report, with preprocessed source if appropriate. See URL:http://bugzilla.redhat.com/bugzilla for instructions. Preprocessed source stored into /tmp/ccg46xph.out file, please attach this to yo ur bugreport. $ cat jji.c typedef struct S { unsigned long flags; }; typedef struct S __attribute__((__may_alias__)) cmonkey; int main(int argc,char *argv[]){ return 0; } $ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436
[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die
--- Comment #10 from acahalan at gmail dot com 2006-10-18 01:01 --- An enum will crash it too. This one is in modified_type_die like the original. $ gcc -g3 -Os -W -Wall -std=gnu99 kku.c kku.c:3: internal compiler error: in modified_type_die, at dwarf2out.c:8463 Please submit a full bug report, with preprocessed source if appropriate. See URL:http://bugzilla.redhat.com/bugzilla for instructions. Preprocessed source stored into /tmp/ccksgAgj.out file, please attach this to your bugreport. $ cat kku.c typedef enum E {foo, bar} E; typedef E __attribute__((__may_alias__)) cmonkey; int main(int argc,char *argv[]){ return 0; } $ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436
[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436