[Bug debug/29436] [4.0/4.1/4.2 Regression] ICE in modified_type_die

2006-10-18 Thread janis at gcc dot gnu dot org


--- 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

2006-10-18 Thread geoffk at gcc dot gnu dot org


--- 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

2006-10-18 Thread pinskia at gcc dot gnu dot org


--- 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

2006-10-17 Thread rguenth at gcc dot gnu dot org


--- 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

2006-10-17 Thread rguenth at gcc dot gnu dot org


--- 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

2006-10-17 Thread rguenth at gcc dot gnu dot org


--- 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

2006-10-17 Thread pinskia at gcc dot gnu dot org


--- 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

2006-10-17 Thread acahalan at gmail dot com


--- 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

2006-10-17 Thread acahalan at gmail dot com


--- 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

2006-10-17 Thread acahalan at gmail dot com


--- 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

2006-10-15 Thread mmitchel at gcc dot gnu dot org


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29436