[Bug lto/63226] ICE with -flto-odr-type-merging
hubicka at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Sep 11 20:13:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63226
--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Turning the assert to warning (I probably ought to do that and also compare
alignments) gets me the following:
one.ii:7:16: warning: type �struct ynodetype_t� violates one definition rule
[-Wodr]
typedef struct ynodetype_t {
^
two.ii:8:16: note: a type with different size is defined in another translation
unit
typedef struct ynodetype_t {
^
one.ii:9:12: warning: type �struct <anon>� violates one definition rule [-Wodr]
struct { ynode child1, child3; } i;
^
two.ii:10:12: note: a different type is defined in another translation unit
struct { yleaftype leaf; } i;
^
one.ii:9:20: note: the first difference of corresponding definitions is field
�child1�
struct { ynode child1, child3; } i;
^
two.ii:10:24: note: a field with different name is defined in another
translation unit
struct { yleaftype leaf; } i;
^
one.ii:12:7: warning: type �struct ONE� violates one definition rule [-Wodr]
class ONE {
^
two.ii:14:7: note: a type with different number of fields is defined in another
translation unit
class ONE {
I suppose main problem is that we fail to warn on the union. I will dig into
why.
More information about the Gcc-bugs
mailing list