[Bug tree-optimization/69212] New: g++ ICE (segfault) at -O3 on x86_64-linux-gnu in fsm_find_control_statement_thread_paths
helloqirun at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Jan 9 22:34:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69212
Bug ID: 69212
Summary: g++ ICE (segfault) at -O3 on x86_64-linux-gnu in
fsm_find_control_statement_thread_paths
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: helloqirun at gmail dot com
Target Milestone: ---
The following code causes an ICE when compiled with the current g++ trunk at
-O3 on x86_64-linux-gnu in both 32-bit and 64-bit modes.
$ g++-trunk -v
Using built-in specs.
COLLECT_GCC=g++-trunk
COLLECT_LTO_WRAPPER=/home/absozero/trunk/root-gcc/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc/configure --prefix=/home/absozero/trunk/root-gcc
--enable-languages=c,c++ --disable-werror --enable-multilib
Thread model: posix
gcc version 6.0.0 20160109 (experimental) [trunk revision 232190] (GCC)
$ g++-trunk -c -O3 abc.cc
abc.cc: In function ?void fn2(int)?:
abc.cc:10:19: error: unknown register name ?? in ?asm?
asm("" : : : "");
^
abc.cc:10:19: error: unknown register name ?? in ?asm?
asm("" : : : "");
^
abc.cc:10:19: error: unknown register name ?? in ?asm?
asm("" : : : "");
^
abc.cc:10:19: error: unknown register name ?? in ?asm?
asm("" : : : "");
^
abc.cc:10:19: error: unknown register name ?? in ?asm?
asm("" : : : "");
^
abc.cc:10:19: error: unknown register name ?? in ?asm?
asm("" : : : "");
^
abc.cc:10:19: error: unknown register name ?? in ?asm?
asm("" : : : "");
^
abc.cc:10:19: error: unknown register name ?? in ?asm?
asm("" : : : "");
^
abc.cc:10:19: error: unknown register name ?? in ?asm?
asm("" : : : "");
^
abc.cc: In function ?void fn2(int)?:
abc.cc:4:6: internal compiler error: Segmentation fault
void fn2(int p1) {
^~~
0xd04cdf crash_signal
../../gcc/gcc/toplev.c:334
0x14549b5 fsm_find_control_statement_thread_paths
../../gcc/gcc/tree-ssa-threadbackward.c:102
0x1455be4 find_jump_threads_backwards(edge_def*)
../../gcc/gcc/tree-ssa-threadbackward.c:382
0xeec0b4 thread_across_edge(gcond*, edge_def*, bool, const_and_copies*,
avail_exprs_stack*, tree_node* (*)(gimple*, gimple*, avail_exprs_stack*))
../../gcc/gcc/tree-ssa-threadedge.c:1027
0xe25a37 dom_opt_dom_walker::thread_across_edge(edge_def*)
../../gcc/gcc/tree-ssa-dom.c:945
0xe25c79 dom_opt_dom_walker::after_dom_children(basic_block_def*)
../../gcc/gcc/tree-ssa-dom.c:1396
0x1385777 dom_walker::walk(basic_block_def*)
../../gcc/gcc/domwalk.c:307
0xe280a8 execute
../../gcc/gcc/tree-ssa-dom.c:613
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
-------------
$ cat abc.cc
double a;
int b;
void fn1();
void fn2(int p1) {
l:
b = a;
if (p1)
if (a)
goto l;
asm("" : : : "");
fn2(1);
fn1();
}
More information about the Gcc-bugs
mailing list