https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94821
Bug ID: 94821 Summary: aarch64: ICE in walk_body at gcc/tree-nested.c:713 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: z.zhanghaijian at huawei dot com Target Milestone: --- The case gcc.dg/pr94780.c on aarch64: _Atomic double x; double foo (void) { double bar () { return x; } x /= 3; return bar (); } ------------------------------- gcc pr94780.c -S pr94780.c: In function ‘foo’: pr94780.c:8:1: internal compiler error: Segmentation fault 8 | foo (void) | ^~~ 0x125cdc3 crash_signal ../.././gcc/toplev.c:328 0x94a4dc tree_check(tree_node*, char const*, int, char const*, tree_code) ../.././gcc/tree.h:3286 0x1356f83 convert_nonlocal_reference_op ../.././gcc/tree-nested.c:1064 0x1677c5f walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) ../.././gcc/tree.c:12000 0xe0a7b7 walk_gimple_op(gimple*, tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../.././gcc/gimple-walk.c:268 0xe0b33b walk_gimple_stmt(gimple_stmt_iterator*, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../.././gcc/gimple-walk.c:596 0xe09d83 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../.././gcc/gimple-walk.c:51 0xe0b437 walk_gimple_stmt(gimple_stmt_iterator*, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../.././gcc/gimple-walk.c:605 0xe09d83 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) ../.././gcc/gimple-walk.c:51 0x1355da7 walk_body ../.././gcc/tree-nested.c:713 0x1355def walk_function ../.././gcc/tree-nested.c:724 0x135613b walk_all_functions ../.././gcc/tree-nested.c:789 0x13607b3 lower_nested_functions(tree_node*) ../.././gcc/tree-nested.c:3551 0xbc6187 cgraph_node::analyze() ../.././gcc/cgraphunit.c:676 0xbc842f analyze_functions ../.././gcc/cgraphunit.c:1227 0xbcd97b symbol_table::finalize_compilation_unit() ../.././gcc/cgraphunit.c:2974 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. ------------------------------- PR94780 was only fixed on i386, the same error was also reported on aarch64. I have an initial fix patch that is under testing. Any suggestions?