http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51125
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> 2011-11-14 19:41:12 UTC --- (gdb) bt #0 fancy_abort (file=0x103d0c0 "/export/gnu/import/git/gcc/gcc/gimplify.c", line=468, function=0x103dfc3 "create_tmp_var") at /export/gnu/import/git/gcc/gcc/diagnostic.c:898 #1 0x00000000008e9c24 in create_tmp_var (type=<optimized out>, prefix=<optimized out>) at /export/gnu/import/git/gcc/gcc/gimplify.c:468 #2 0x00000000008fc5ab in create_tmp_from_val (val=0x7ffff12c6528) at /export/gnu/import/git/gcc/gcc/gimplify.c:498 #3 lookup_tmp_var (is_formal=false, val=0x7ffff12c6528) at /export/gnu/import/git/gcc/gcc/gimplify.c:515 #4 internal_get_tmp_var (val=0x7ffff12c6528, pre_p=0x7fffffffde48, post_p=<optimized out>, is_formal=false) at /export/gnu/import/git/gcc/gcc/gimplify.c:584 #5 0x00000000008ebe01 in gimplify_expr (expr_p=<optimized out>, pre_p=<optimized out>, post_p=0x7fffffffdcc8, gimple_test_f= 0x8c6c70 <is_gimple_addressable(tree_node*)>, fallback=3) at /export/gnu/import/git/gcc/gcc/gimplify.c:7728 #6 0x00000000008fca12 in gimplify_addr_expr (expr_p=0x7fffffffddb8, pre_p=0x7fffffffde48, post_p=<optimized out>) at /export/gnu/import/git/gcc/gcc/gimplify.c:4914 #7 0x00000000008ed04b in gimplify_expr (expr_p=<optimized out>, pre_p=<optimized out>, post_p=0x7fffffffdcc8, gimple_test_f=0x8c6e90 <is_gimple_val(tree_node*)>, fallback=1) at /export/gnu/import/git/gcc/gcc/gimplify.c:6950 ---Type <return> to continue, or q <return> to quit--- #8 0x00000000009023e1 in force_gimple_operand_1 (expr=0x7ffff12dd758, stmts=0x7fffffffde48, gimple_test_f=0x8c6e90 <is_gimple_val(tree_node*)>, var=0x0) at /export/gnu/import/git/gcc/gcc/gimplify.c:8385 #9 0x0000000000902583 in force_gimple_operand_gsi_1 (gsi=0x7fffffffdf30, expr=<optimized out>, gimple_test_f=<optimized out>, var=<optimized out>, before=true, m=GSI_SAME_STMT) at /export/gnu/import/git/gcc/gcc/gimplify.c:8425 #10 0x0000000000a4d5b9 in expand_assign_tm (region=0x17bfbd0, gsi=0x7fffffffdf30) at /export/gnu/import/git/gcc/gcc/trans-mem.c:2173 #11 0x0000000000a52ebf in expand_block_tm (bb=<optimized out>, region=0x17bfbd0) at /export/gnu/import/git/gcc/gcc/trans-mem.c:2324 #12 execute_tm_mark () at /export/gnu/import/git/gcc/gcc/trans-mem.c:2436 #13 0x000000000099ff78 in execute_one_pass (pass=0x1594120) at /export/gnu/import/git/gcc/gcc/passes.c:2074 #14 0x00000000009a02e5 in execute_pass_list (pass=0x1594120) at /export/gnu/import/git/gcc/gcc/passes.c:2129 #15 0x00000000009a02f7 in execute_pass_list (pass=0x1594180) at /export/gnu/import/git/gcc/gcc/passes.c:2130 #16 0x0000000000ab438e in tree_rest_of_compilation (fndecl=0x7ffff12bd000) at /export/gnu/import/git/gcc/gcc/tree-optimize.c:420 #17 0x0000000000797fea in cgraph_expand_function (node=0x7ffff12b8a20) at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1819 #18 0x000000000079a217 in cgraph_output_in_order () ---Type <return> to continue, or q <return> to quit--- at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1984 #19 cgraph_optimize () at /export/gnu/import/git/gcc/gcc/cgraphunit.c:2194 #20 0x000000000079a4fa in cgraph_finalize_compilation_unit () at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1327 #21 0x00000000005cce9b in cp_write_global_declarations () at /export/gnu/import/git/gcc/gcc/cp/decl2.c:4050 #22 0x0000000000a47c64 in compile_file () at /export/gnu/import/git/gcc/gcc/toplev.c:581 #23 do_compile () at /export/gnu/import/git/gcc/gcc/toplev.c:1931 #24 toplev_main (argc=16, argv=0x7fffffffe258) at /export/gnu/import/git/gcc/gcc/toplev.c:2007 #25 0x0000003682e2165d in __libc_start_main () from /lib64/libc.so.6 #26 0x00000000004f0e09 in _start () (gdb) call debug_tree (type) <record_type 0x7ffff12b09d8 shared_count sizes-gimplified addressable needs-constructing type_1 type_4 type_5 BLK size <integer_cst 0x7ffff1141480 type <integer_type 0x7ffff113e0a8 bitsizetype> constant 128> unit size <integer_cst 0x7ffff11414a0 type <integer_type 0x7ffff113e000 sizetype> constant 16> align 64 symtab 0 alias set -1 canonical type 0x7ffff12b09d8 fields <field_decl 0x7ffff12a0a18 pi_ type <pointer_type 0x7ffff12a4e70 type <record_type 0x7ffff12a4bd0 sp_counted_base> sizes-gimplified public unsigned DI size <integer_cst 0x7ffff1125f40 constant 64> unit size <integer_cst 0x7ffff1125f60 constant 8> align 64 symtab 0 alias set -1 canonical type 0x7ffff12a4e70> used private unsigned nonlocal decl_3 DI file /export/gnu/import/git/gcc/gcc/testsuite/g++.dg/tm/pr45940-3.C line 45 col 23 size <integer_cst 0x7ffff1125f40 64> unit size <integer_cst 0x7ffff1125f60 8> align 64 offset_align 128 offset <integer_cst 0x7ffff1125f80 constant 0> bit offset <integer_cst 0x7ffff1125fe0 constant 0> context <record_type 0x7ffff12b09d8 shared_count> chain <field_decl 0x7ffff12a0ab0 j type <integer_type 0x7ffff113e5e8 int> used nonlocal decl_3 SI file /export/gnu/import/git/gcc/gcc/testsuite/g++.dg/tm/pr45940-3.C line 47 col 9 size <integer_cst 0x7ffff11412c0 constant 32> unit size <integer_cst 0x7ffff11412e0 constant 4> align 32 offset_align 128 offset <integer_cst 0x7ffff1125f80 0> bit offset <integer_cst 0x7ffff1125f40 64> context <record_type 0x7ffff12b09d8 shared_count> chain <type_decl 0x7ffff129ef18 shared_count>>> context <translation_unit_decl 0x7ffff113b170 D.1> full-name "class shared_count" needs-constructor needs-destructor X() X(constX&) this=(X&) n_parents=0 use_template=0 interface-unknown pointer_to_this <pointer_type 0x7ffff12b0c78> reference_to_this <reference_type 0x7ffff12be0a8> chain <type_decl 0x7ffff129ee60 shared_count>> (gdb)