Fix noreturn related LTO ICE
Eric Botcazou
ebotcazou@adacore.com
Wed Jun 2 11:00:00 GMT 2010
> * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
> remove return value.
> (split_bbs_on_noreturn_calls) .... here.
> * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
> * tree-flow.h (fixup_noreturn_call): New.
> * tree-cfg.c (verify_call, verify_control_flow): Allow nonfixed
> noreturns during IPA passes.
This has introduced an ACATS regression at -O2 on x86:
FAIL: cxg1004
Reduced testcase attached.
eric@atlantis:~/build/gcc/native32> gcc/xgcc -Bgcc -S cxg1004.adb -O2
unhandled expression in get_expr_operands():
<error_mark 0xf7cc2680>
+===========================GNAT BUG DETECTED==============================+
| 4.6.0 20100602 (experimental) [trunk revision 160140] (i586-suse-linux-gnu)
GCC error:|
| in get_expr_operands, at tree-ssa-operands.c:1019 |
| Error detected around cxg1004.adb:4:1
Old value = (tree) 0xf757d480
New value = (tree) 0xf7cc2680
set_ssa_use_from_ptr (use=0xf794b254, val=0xf7cc2680)
at /home/eric/svn/gcc/gcc/tree-flow-inline.h:237
237 link_imm_use (use, val);
(gdb) p debug_tree(0xf7cc2680)
<error_mark 0xf7cc2680>
$24 = void
(gdb) bt
#0 set_ssa_use_from_ptr (use=0xf794b254, val=0xf7cc2680)
at /home/eric/svn/gcc/gcc/tree-flow-inline.h:237
#1 0x096c5f77 in fixup_noreturn_call (stmt=0xf791d984)
at /home/eric/svn/gcc/gcc/tree-cfgcleanup.c:573
#2 0x09916a14 in execute_fixup_cfg ()
at /home/eric/svn/gcc/gcc/tree-optimize.c:282
--
Eric Botcazou
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cxg1004.adb
Type: text/x-adasrc
Size: 725 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20100602/63908319/attachment.bin>
More information about the Gcc-patches
mailing list