https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69048

            Bug ID: 69048
           Summary: [cilkplus] bug when spawning a function that returns a
                    type with a destructor
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ryan.burn at gmail dot com
  Target Milestone: ---

The below code generates this ICE:

In function ‘<built-in>’:
cc1plus: internal compiler error: in verify_gimple_stmt, at tree-cfg.c:4603
0xd2f403 verify_gimple_stmt
        ../../src-fix/gcc/tree-cfg.c:4603
0xd312b7 verify_gimple_in_seq_2
        ../../src-fix/gcc/tree-cfg.c:4718
0xd31238 verify_gimple_in_seq_2
        ../../src-fix/gcc/tree-cfg.c:4691
0xd31238 verify_gimple_in_seq_2
        ../../src-fix/gcc/tree-cfg.c:4691
0xd35ee1 verify_gimple_in_seq(gimple*)
        ../../src-fix/gcc/tree-cfg.c:4748
0xac3332 gimplify_body(tree_node*, bool)
        ../../src-fix/gcc/gimplify.c:11295
0xac36c6 gimplify_function_tree(tree_node*)
        ../../src-fix/gcc/gimplify.c:11383
0xd90df2 gimplify_all_functions
        ../../src-fix/gcc/tree-nested.c:3104
0xd90dd7 gimplify_all_functions
        ../../src-fix/gcc/tree-nested.c:3106
0xd991f6 lower_nested_functions(tree_node*)
        ../../src-fix/gcc/tree-nested.c:3123
0x944133 cgraph_node::analyze()
        ../../src-fix/gcc/cgraphunit.c:630
0x9478a9 analyze_functions
        ../../src-fix/gcc/cgraphunit.c:1079
0x9487b8 symbol_table::finalize_compilation_unit()
        ../../src-fix/gcc/cgraphunit.c:2519
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.


/////////////////////////////////////////////////////////////
struct A {                                                                      
  ~A() {}                                                                       
};                                                                              

A f() {                                                                         
  return {};                                                                    
}                                                                               

int main() {                                                                    
  _Cilk_spawn f();                                                              
  return 0;                                                                     
}    
/////////////////////////////////////////////////////////////

Reply via email to