[Bug lto/50601] [4.7 Regression] New LTO failures
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Dec 6 10:57:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50601
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org
|gnu.org |
--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-12-06 10:56:50 UTC ---
FAIL: g++.dg/lto/20100302 cp_lto_20100302_0.o-cp_lto_20100302_1.o link, -flto
-fabi-version=2 (internal compiler error)
is
lto1: internal compiler error: in make_decl_rtl, at varasm.c:1141
an ICE during ltrans stage:
1136 /* A weak alias has TREE_PUBLIC set but not the other bits. */
1137 gcc_assert (TREE_CODE (decl) != VAR_DECL
1138 || TREE_STATIC (decl)
1139 || TREE_PUBLIC (decl)
1140 || DECL_EXTERNAL (decl)
1141 || DECL_REGISTER (decl));
and the decl is the VAR_DECL _ZN1AIDv4_fE1tE (A<float __vector(4)>::t).
This ABI forward-compatibility alias the C++ frontend generates does
not honor the constraints that assert asserts:
(gdb) call debug_tree (decl)
<var_decl 0x7ffff5a2c140 _ZN1AIDv4_fE1tE
type <vector_type 0x7ffff5b5f888 mm128
type <real_type 0x7ffff5a31e70 float SF
size <integer_cst 0x7ffff5a34240 constant 32>
unit size <integer_cst 0x7ffff5a34260 constant 4>
align 32 symtab 0 alias set -1 canonical type 0x7ffff5a31e70
precision 32
pointer_to_this <pointer_type 0x7ffff5a3f0a8>>
V4SF
size <integer_cst 0x7ffff5a34400 constant 128>
unit size <integer_cst 0x7ffff5a34420 constant 16>
align 128 symtab 0 alias set -1 canonical type 0x7ffff5b5f930 nunits 4
pointer_to_this <pointer_type 0x7ffff5b5f7e0>>
addressable used ignored V4SF file
/space/rguenther/src/svn/trunk/gcc/testsuite/g++.dg/lto/20100302_0.C line 9 col
19 size <integer_cst 0x7ffff5a34400 128> unit size <integer_cst 0x7ffff5a34420
16>
align 128>
we create RTL for this decl because do_assemble_alias does
5452 /* We must force creation of DECL_RTL for debug info generation, even
though
5453 we don't use it here. */
5454 make_decl_rtl (decl);
but the alias has DECL_IGNORED set, so we can fix this by not creating
RTL for DECL_IGNORED decls (hopefully).
More information about the Gcc-bugs
mailing list