[Bug c++/51992] [4.7 Regression] internal compiler error: tree code ‘target_expr’ is not supported in LTO streams
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 25 10:30:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51992
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Keywords| |lto
Last reconfirmed| |2012-01-25
Component|lto |c++
CC| |jason at gcc dot gnu.org,
| |rguenth at gcc dot gnu.org
Ever Confirmed|0 |1
Summary|internal compiler error: |[4.7 Regression] internal
|tree code ‘target_expr’ is |compiler error: tree code
|not supported in LTO |‘target_expr’ is not
|streams |supported in LTO streams
Target Milestone|--- |4.7.0
--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-01-25 10:27:01 UTC ---
Confirmed. Happens when we stream a function type:
<function_type 0x7ffff5ba19d8
type <record_type 0x7ffff5ba1540 Ptr type_5 QI
size <integer_cst 0x7ffff5a39120 constant 8>
unit size <integer_cst 0x7ffff5a39140 constant 1>
align 8 symtab 0 alias set -1 canonical type 0x7ffff5ba1498
fields <type_decl 0x7ffff5b9eda8 KSharedPtr type <record_type
0x7ffff5ba6f18 KSharedPtr>
external nonlocal suppress-debug decl_4 VOID file t.ii line 20 col
18
align 8 context <record_type 0x7ffff5ba1498 KSharedPtr> result
<record_type 0x7ffff5ba1498 KSharedPtr>
>
full-name "KSharedConfig::Ptr"
X() X(constX&) this=(X&) n_parents=0 use_template=1 interface-unknown
pointer_to_this <pointer_type 0x7ffff5ba9a80> chain <type_decl
0x7ffff5b9e8a0 KSharedPtr>>
QI size <integer_cst 0x7ffff5a39120 8> unit size <integer_cst
0x7ffff5a39140 1>
align 8 symtab 0 alias set -1 canonical type 0x7ffff5ba1a80
arg-types <tree_list 0x7ffff5ba40c8
value <reference_type 0x7ffff5ba1930 type <record_type 0x7ffff5ba1888
KComponentData>
unsigned DI
size <integer_cst 0x7ffff5a1df60 constant 64>
unit size <integer_cst 0x7ffff5a1df80 constant 8>
align 64 symtab 0 alias set -1 canonical type 0x7ffff5ba1930>
chain <tree_list 0x7ffff5ba40f0
purpose <target_expr 0x7ffff5b7d7c0 type <record_type
0x7ffff5b8b930 QString>
side-effects arg 0 <var_decl 0x7ffff5a29280 D.2247>
arg 1 <constructor 0x7ffff5b94cc0 type <record_type
0x7ffff5b8b930 QString>
constant lngt 0>> value <reference_type 0x7ffff5ba1690>>>
pointer_to_this <pointer_type 0x7ffff5ba93f0>>
The 2nd argument type has TREE_PURPOSE set.
Jason, any idea where that comes from? Do we forget to clear it during
template instantiation somehow?
Works on the 4.6 branch.
More information about the Gcc-bugs
mailing list