https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104717
--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> --- (In reply to Tom de Vries from comment #3) > The mismatch seems to be: > ... > (gdb) call debug_generic_expr (name.typed.type) > integer(kind=4)[0:D.4266] * > (gdb) call debug_generic_expr (name.ssa_name.var.typed.type) > integer(kind=4)[0:D.4433] * > ... Setting a breakpoint at: ... Breakpoint 4, ipa_pta_execute () at /home/vries/oacc/trunk/source-gcc/gcc/tree-ssa-structalias.cc:8322 8322 gcc_assert (!node->clone_of); ... and doing: ... (gdb) watch -l node->decl.function_decl.f.gimple_df->ssa_names.m_vecdata[21].ssa_name.var.typed.type ... the second time we hit the breakpoint for foo.0._omp_fn.0, I hit the moment that the type changes: ... (gdb) c Continuing. Hardware watchpoint 5: -location node->decl.function_decl.f.gimple_df->ssa_names.m_vecdata[21].ssa_name.var.typed.type Old value = (tree_node *) 0x7ffff673abd0 New value = (tree_node *) 0x7ffff635d9d8 ... with: ... (gdb) call debug_generic_expr ((tree_node *) 0x7ffff673abd0) integer(kind=4)[0:D.4266] * (gdb) call debug_generic_expr ((tree_node *) 0x7ffff635d9d8) integer(kind=4)[0:D.4433] * ... Backtrace: ... (gdb) bt #0 copy_tree_body_r (tp=0x7ffff634e3d8, walk_subtrees=0x7fffffffd04c, data=0x7fffffffd390) at /home/vries/oacc/trunk/source-gcc/gcc/tree-inline.cc:1418 #1 0x00000000011d4664 in walk_tree_1 (tp=0x7ffff634e3d8, tp@entry=0x7fffffffd098, func=func@entry=0xf18070 <copy_tree_body_r(tree_node**, int*, void*)>, data=data@entry=0x7fffffffd390, pset=pset@entry=0x0, lh=lh@entry=0x0) at /home/vries/oacc/trunk/source-gcc/gcc/tree.cc:11070 #2 0x0000000000f13ac4 in remap_decls (decls=<optimized out>, nonlocalized_list=nonlocalized_list@entry=0x7ffff6342688, id=id@entry=0x7fffffffd390) at /home/vries/oacc/trunk/source-gcc/gcc/tree-inline.cc:791 #3 0x0000000000f15f10 in remap_block (block=block@entry=0x7fffffffd128, id=id@entry=0x7fffffffd390) at /home/vries/oacc/trunk/source-gcc/gcc/tree-inline.cc:822 #4 0x0000000000f16096 in remap_blocks (block=block@entry=0x7ffff6342060, id=id@entry=0x7fffffffd390) at /home/vries/oacc/trunk/source-gcc/gcc/tree-inline.cc:841 #5 0x0000000000f160c3 in remap_blocks (block=<optimized out>, id=id@entry=0x7fffffffd390) at /home/vries/oacc/trunk/source-gcc/gcc/tree-inline.cc:844 #6 0x0000000000f21622 in expand_call_inline (bb=<optimized out>, bb@entry=0x7ffff6358a28, stmt=0x7ffff635b990, id=id@entry=0x7fffffffd390, to_purge=to_purge@entry=0x7fffffffd370) at /home/vries/oacc/trunk/source-gcc/gcc/tree-inline.cc:5033 #7 0x0000000000f22aea in gimple_expand_calls_inline (to_purge=0x7fffffffd370, id=0x7fffffffd390, bb=0x7ffff6358a28) at /home/vries/oacc/trunk/source-gcc/gcc/tree-inline.cc:5320 --Type <RET> for more, q to quit, c to continue without paging-- #8 optimize_inline_calls (fn=0x7ffff673b100) at /home/vries/oacc/trunk/source-gcc/gcc/tree-inline.cc:5492 #9 0x0000000000beaa7c in inline_transform (node=<optimized out>) at /home/vries/oacc/trunk/source-gcc/gcc/ipa-inline-transform.cc:790 #10 0x0000000000d7f761 in execute_one_ipa_transform_pass (do_not_collect=true, ipa_pass=0x2f52700, node=0x7ffff6343330) at /home/vries/oacc/trunk/source-gcc/gcc/passes.cc:2335 #11 execute_all_ipa_transforms (do_not_collect=do_not_collect@entry=true) at /home/vries/oacc/trunk/source-gcc/gcc/passes.cc:2398 #12 0x000000000094f301 in cgraph_node::get_body (this=this@entry=0x7ffff6343330) at /home/vries/oacc/trunk/source-gcc/gcc/cgraph.cc:4044 #13 0x00000000010ed712 in ipa_pta_execute () at /home/vries/oacc/trunk/source-gcc/gcc/tree-ssa-structalias.cc:8320 #14 (anonymous namespace)::pass_ipa_pta::execute (this=<optimized out>) at /home/vries/oacc/trunk/source-gcc/gcc/tree-ssa-structalias.cc:8744 #15 0x0000000000d7fb91 in execute_one_pass (pass=pass@entry=0x2f52b90) at /home/vries/oacc/trunk/source-gcc/gcc/passes.cc:2643 #16 0x0000000000d816b2 in execute_ipa_pass_list (pass=0x2f52b90) at /home/vries/oacc/trunk/source-gcc/gcc/passes.cc:3083 #17 0x000000000095e0cb in symbol_table::compile (this=this@entry=0x7ffff6547000) at /home/vries/oacc/trunk/source-gcc/gcc/cgraphunit.cc:2311 --Type <RET> for more, q to quit, c to continue without paging-- #18 0x0000000000962130 in symbol_table::compile (this=0x7ffff6547000) at /home/vries/oacc/trunk/source-gcc/gcc/cgraphunit.cc:2532 #19 symbol_table::finalize_compilation_unit (this=0x7ffff6547000) at /home/vries/oacc/trunk/source-gcc/gcc/cgraphunit.cc:2529 #20 0x0000000000e7b44e in compile_file () at /home/vries/oacc/trunk/source-gcc/gcc/toplev.cc:479 #21 0x00000000006fcd1f in do_compile (no_backend=false) at /home/vries/oacc/trunk/source-gcc/gcc/toplev.cc:2168 #22 toplev::main (this=this@entry=0x7fffffffd86e, argc=<optimized out>, argc@entry=18, argv=<optimized out>, argv@entry=0x7fffffffd978) at /home/vries/oacc/trunk/source-gcc/gcc/toplev.cc:2320 #23 0x00000000006ff20b in main (argc=18, argv=0x7fffffffd978) at /home/vries/oacc/trunk/source-gcc/gcc/main.cc:39 ... I guess we're seeing the effect of: ... if (TREE_CODE (*tp) != OMP_CLAUSE) TREE_TYPE (*tp) = remap_type (TREE_TYPE (*tp), id); ...