http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56495
Bug #: 56495
Summary: ICE in lto_output_tree with -g -flto -O2
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: lto
AssignedTo: [email protected]
ReportedBy: [email protected]
GCC segfaults while compiling the attached code from Parma Polyhedra Library.
The testcase is huge, but reducing it led to a testcase that only failed in 1
of 10 cases or so. The error message sometimes changed to "tree code '(some
garbage)' is not supported in LTO streams" but i could not reproduce that one.
GCC 4.8.0 20130301 fails while GCC 4.7.2 works.
Compiler output:
gcc -O2 -flto -g -s ppl.ii
ppl_c_Rational_Box.cc: In function
'Parma_Polyhedra_Library::operator>(Parma_Polyhedra_Library::Linear_Expression
const&, __gmp_expr<__mpz_struct [1], __mpz_struct [1]> const&)':
ppl_c_Rational_Box.cc:1781:8302: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.gentoo.org/> for instructions.
Backtrace:
Program received signal SIGSEGV, Segmentation fault.
lto_output_tree (ob=0x1ece9d0, expr=0xe000000000049, ref_p=true,
this_ref_p=true) at ../.././gcc/lto-streamer-out.c:371
371 ../.././gcc/lto-streamer-out.c: No such file or directory.
(gdb) bt
#0 lto_output_tree (ob=0x1ece9d0, expr=0xe000000000049, ref_p=true,
this_ref_p=true) at ../.././gcc/lto-streamer-out.c:371
#1 0x00000000009ed78b in write_ts_block_tree_pointers (ref_p=true,
expr=0x7ffff491ca80, ob=0x1ece9d0) at ../.././gcc/tree-streamer-out.c:760
#2 streamer_write_tree_body (ob=0x1ece9d0, expr=0x7ffff491ca80,
ref_p=<optimized out>) at ../.././gcc/tree-streamer-out.c:887
#3 0x00000000008194fd in lto_write_tree (ref_p=true, expr=0x7ffff491ca80,
ob=0x1ece9d0) at ../.././gcc/lto-streamer-out.c:321
#4 lto_output_tree (ob=0x1ece9d0, expr=0x7ffff491ca80, ref_p=<optimized out>,
this_ref_p=<optimized out>) at ../.././gcc/lto-streamer-out.c:410
#5 0x00000000009ed176 in write_ts_common_tree_pointers (ref_p=true,
expr=0x7fffe85aa0f0, ob=0x1ece9d0) at ../.././gcc/tree-streamer-out.c:514
#6 streamer_write_tree_body (ob=0x1ece9d0, expr=0x7fffe85aa0f0,
ref_p=<optimized out>) at ../.././gcc/tree-streamer-out.c:845
#7 0x00000000008194fd in lto_write_tree (ref_p=true, expr=0x7fffe85aa0f0,
ob=0x1ece9d0) at ../.././gcc/lto-streamer-out.c:321
#8 lto_output_tree (ob=ob@entry=0x1ece9d0, expr=0x7fffe85aa0f0,
ref_p=ref_p@entry=true, this_ref_p=this_ref_p@entry=true)
at ../.././gcc/lto-streamer-out.c:410
#9 0x00000000009ed82b in write_ts_exp_tree_pointers (ref_p=<optimized out>,
expr=<optimized out>, ob=<optimized out>)
at ../.././gcc/tree-streamer-out.c:747
#10 streamer_write_tree_body (ob=0x1ece9d0, expr=0x7fffe858d880,
---Type <return> to continue, or q <return> to quit---
ref_p=<optimized out>) at ../.././gcc/tree-streamer-out.c:884
#11 0x00000000008194fd in lto_write_tree (ref_p=true, expr=0x7fffe858d880,
ob=0x1ece9d0) at ../.././gcc/lto-streamer-out.c:321
#12 lto_output_tree (ob=0x1ece9d0, expr=0x7fffe858d880, ref_p=<optimized out>,
this_ref_p=<optimized out>) at ../.././gcc/lto-streamer-out.c:410
#13 0x00000000009ed7f5 in write_ts_exp_tree_pointers (ref_p=<optimized out>,
expr=<optimized out>, ob=<optimized out>)
at ../.././gcc/tree-streamer-out.c:746
#14 streamer_write_tree_body (ob=0x1ece9d0, expr=0x7fffe85a39d8,
ref_p=<optimized out>) at ../.././gcc/tree-streamer-out.c:884
#15 0x00000000008194fd in lto_write_tree (ref_p=true, expr=0x7fffe85a39d8,
ob=0x1ece9d0) at ../.././gcc/lto-streamer-out.c:321
#16 lto_output_tree (ob=0x1ece9d0, expr=0x7fffe85a39d8, ref_p=<optimized out>,
this_ref_p=<optimized out>) at ../.././gcc/lto-streamer-out.c:410
#17 0x00000000009ed7f5 in write_ts_exp_tree_pointers (ref_p=<optimized out>,
expr=<optimized out>, ob=<optimized out>)
at ../.././gcc/tree-streamer-out.c:746
#18 streamer_write_tree_body (ob=0x1ece9d0, expr=0x7fffe859a300,
ref_p=<optimized out>) at ../.././gcc/tree-streamer-out.c:884
#19 0x00000000008194fd in lto_write_tree (ref_p=true, expr=0x7fffe859a300,
ob=0x1ece9d0) at ../.././gcc/lto-streamer-out.c:321
#20 lto_output_tree (ob=ob@entry=0x1ece9d0, expr=0x7fffe859a300,
ref_p=ref_p@entry=true, this_ref_p=this_ref_p@entry=true)
---Type <return> to continue, or q <return> to quit---
at ../.././gcc/lto-streamer-out.c:410
#21 0x00000000009ed936 in write_ts_decl_common_tree_pointers (ref_p=true,
expr=0x7fffe85ac5f0, ob=0x1ece9d0) at ../.././gcc/tree-streamer-out.c:584
#22 streamer_write_tree_body (ob=0x1ece9d0, expr=0x7fffe85ac5f0,
ref_p=<optimized out>) at ../.././gcc/tree-streamer-out.c:857
#23 0x00000000008194fd in lto_write_tree (ref_p=true, expr=0x7fffe85ac5f0,
ob=0x1ece9d0) at ../.././gcc/lto-streamer-out.c:321
#24 lto_output_tree (ob=0x1ece9d0, expr=0x7fffe85ac5f0, ref_p=<optimized out>,
this_ref_p=<optimized out>) at ../.././gcc/lto-streamer-out.c:410
#25 0x0000000000c468bf in output_gimple_stmt (stmt=0x7fffe7f80740,
ob=0x1ece9d0) at ../.././gcc/gimple-streamer-out.c:140
#26 output_bb (ob=0x1ece9d0, bb=0x7fffe7f6ea90, fn=0x7ffff1cbae60)
at ../.././gcc/gimple-streamer-out.c:193
#27 0x000000000081a446 in output_function (node=0x7ffff1cdd6f0)
at ../.././gcc/lto-streamer-out.c:823
#28 lto_output () at ../.././gcc/lto-streamer-out.c:987
#29 0x0000000000843bc8 in ipa_write_summaries_2 (
pass=0x13d5560 <pass_ipa_lto_gimple_out>, state=0x1e859b0)
at ../.././gcc/passes.c:2411
#30 0x0000000000844ac0 in ipa_write_summaries_1 (encoder=<optimized out>)
at ../.././gcc/passes.c:2441
#31 ipa_write_summaries () at ../.././gcc/passes.c:2495
#32 0x00000000006a596c in ipa_passes () at ../.././gcc/cgraphunit.c:1905
---Type <return> to continue, or q <return> to quit---
#33 compile () at ../.././gcc/cgraphunit.c:1991
#34 0x00000000006a5a7a in finalize_compilation_unit ()
at ../.././gcc/cgraphunit.c:2119
#35 0x000000000057a269 in cp_write_global_declarations ()
at ../.././gcc/cp/decl2.c:4318
#36 0x00000000008d2a7d in compile_file () at ../.././gcc/toplev.c:557
#37 0x00000000008d44ea in do_compile () at ../.././gcc/toplev.c:1876
#38 toplev_main (argc=23, argv=0x7fffffffdab8) at ../.././gcc/toplev.c:1952
#39 0x0000003ed9421735 in __libc_start_main () from /lib64/libc.so.6
#40 0x0000000000518519 in _start ()