https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86736
--- Comment #5 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Richard Biener from comment #4) > Hmm, I can no longer reproduce -g0 vs -g on x86_64-linux. Ians testresults > now > list > > FAIL: g++.dg/asan/pr62017.C -O2 -flto (internal compiler error) > FAIL: g++.dg/asan/pr62017.C -O2 -flto (test for excess errors) > FAIL: g++.dg/asan/pr62017.C -O2 -flto -flto-partition=none (internal > compiler error) > FAIL: g++.dg/asan/pr62017.C -O2 -flto -flto-partition=none (test for > excess errors) > FAIL: g++.dg/asan/pr78651.C -O2 -flto (internal compiler error) > FAIL: g++.dg/asan/pr78651.C -O2 -flto (test for excess errors) > FAIL: g++.dg/asan/pr78651.C -O2 -flto -flto-partition=none (internal > compiler error) > FAIL: g++.dg/asan/pr78651.C -O2 -flto -flto-partition=none (test for > excess errors) > > but I can't reproduce with pr62017.C or pr78651.C either right now. 81021 has indeed started to pass (I didn't notice when). ===== 62017 is: $ /XC/9.4/usr/bin/lldb -- /scratch/10-12-sie/gcc-trunk-unpatched/gcc/testsuite/g++/../../lto1 -fPIC -feliminate-unused-debug-symbols -quiet -dumpdir ./ -dumpbase pr62017.exe -mmacosx-version-min=10.12.0 -mtune=core2 -m32 -mmacosx-version-min=10.12.0 -mtune=core2 -auxbase-strip pr62017.exe.lto.o -g -O2 -O2 -version -fdiagnostics-color=never -fno-openmp -fno-openacc -fPIC -fsanitize=address -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fmessage-length=0 -flto-partition=none @/var/folders/tj/17r7407j14d324dzf67cnvxm000114/T//ccyWmZmy -o pr62017.s (lldb) target create "/scratch/10-12-sie/gcc-trunk-unpatched/gcc/testsuite/g++/../../lto1" Current executable set to '/scratch/10-12-sie/gcc-trunk-unpatched/gcc/testsuite/g++/../../lto1' (x86_64). (lldb) settings set -- target.run-args "-fPIC" "-feliminate-unused-debug-symbols" "-quiet" "-dumpdir" "./" "-dumpbase" "pr62017.exe" "-mmacosx-version-min=10.12.0" "-mtune=core2" "-m32" "-mmacosx-version-min=10.12.0" "-mtune=core2" "-auxbase-strip" "pr62017.exe.lto.o" "-g" "-O2" "-O2" "-version" "-fdiagnostics-color=never" "-fno-openmp" "-fno-openacc" "-fPIC" "-fsanitize=address" "-fno-diagnostics-show-caret" "-fno-diagnostics-show-line-numbers" "-fmessage-length=0" "-flto-partition=none" "@/var/folders/tj/17r7407j14d324dzf67cnvxm000114/T//ccyWmZmy" "-o" "pr62017.s" (lldb) b internal_error Breakpoint 1: where = lto1`internal_error(char const*, ...) + 121 [inlined] _ZN21auto_diagnostic_groupC4Ev, address = 0x00000001010abcb9 (lldb) r Process 22051 launched: '/scratch/10-12-sie/gcc-trunk-unpatched/gcc/testsuite/g++/../../lto1' (x86_64) GNU GIMPLE (GCC) version 9.0.0 20190114 (experimental) [trunk revision 267925] (x86_64-apple-darwin16) compiled by GNU C version 9.0.0 20190114 (experimental) [trunk revision 267925], GMP version 6.1.2, MPFR version 3.1.6, MPC version 1.1.0, isl version isl-0.20-GMP GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 GNU GIMPLE (GCC) version 9.0.0 20190114 (experimental) [trunk revision 267925] (x86_64-apple-darwin16) compiled by GNU C version 9.0.0 20190114 (experimental) [trunk revision 267925], GMP version 6.1.2, MPFR version 3.1.6, MPC version 1.1.0, isl version isl-0.20-GMP GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Process 22051 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) frame #0: 0x0000000100f7a941 lto1`tree_to_shwi(t=0x0000000000000000) at tree.c:7169 7166 tree_fits_shwi_p (const_tree t) 7167 { 7168 return (t != NULL_TREE -> 7169 && TREE_CODE (t) == INTEGER_CST 7170 && wi::fits_shwi_p (wi::to_widest (t))); 7171 } 7172 Target 0: (lto1) stopped. (lldb) bt * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) * frame #0: 0x0000000100f7a941 lto1`tree_to_shwi(t=0x0000000000000000) at tree.c:7169 frame #1: 0x00000001007ddb3b lto1`::add_data_member_location_attribute(die=0x000000014482b9b0, decl=0x00000001448250c0, ctx=<unavailable>) at dwarf2out.c:19306 frame #2: 0x00000001007e6c3e lto1`::gen_struct_or_union_type_die(tree, dw_die_ref, debug_info_usage) at dwarf2out.c:24580 frame #3: 0x00000001007e6b29 lto1`::gen_struct_or_union_type_die(type=0x0000000144826000, context_die=0x000000014482b000, usage=<unavailable>) frame #4: 0x00000001007e205e lto1`::gen_tagged_type_die(type=0x0000000144826000, context_die=<unavailable>, usage=DINFO_USAGE_DIR_USE) at dwarf2out.c:25430 frame #5: 0x00000001007e248f lto1`::gen_typedef_die(decl=0x0000000144821558, context_die=0x000000014482b000) at dwarf2out.c:25344 frame #6: 0x00000001007e2a15 lto1`::gen_decl_die(decl=0x0000000144821558, origin=<unavailable>, ctx=<unavailable>, context_die=0x000000014482b000) at dwarf2out.c:26314 frame #7: 0x00000001007c5ef3 lto1`::gen_type_die_with_usage(type=0x0000000144826000, context_die=<unavailable>, usage=DINFO_USAGE_DIR_USE) at dwarf2out.c:25495 frame #8: 0x00000001007c785a lto1`::gen_type_die(type=0x0000000144826000, context_die=<unavailable>) at dwarf2out.c:25679 frame #9: 0x00000001007c80b0 lto1`::modified_type_die(type=0x0000000144826000, cv_quals=0, reverse=<unavailable>, context_die=0x000000014482b870) at dwarf2out.c:13373 frame #10: 0x00000001007ca931 lto1`::add_type_attribute(object_die=0x000000014482b8c0, type=<unavailable>, cv_quals=<unavailable>, reverse=<unavailable>, context_die=<unavailable>) at dwarf2out.c:21601 frame #11: 0x00000001007e6c2e lto1`::gen_struct_or_union_type_die(tree, dw_die_ref, debug_info_usage) at dwarf2out.c:24578 frame #12: 0x00000001007e6b29 lto1`::gen_struct_or_union_type_die(type=0x00000001448260a8, context_die=0x000000014482b000, usage=<unavailable>) frame #13: 0x00000001007e205e lto1`::gen_tagged_type_die(type=0x00000001448260a8, context_die=<unavailable>, usage=DINFO_USAGE_DIR_USE) at dwarf2out.c:25430 frame #14: 0x00000001007e248f lto1`::gen_typedef_die(decl=0x00000001448217b8, context_die=0x000000014482b000) at dwarf2out.c:25344 frame #15: 0x00000001007e2a15 lto1`::gen_decl_die(decl=0x00000001448217b8, origin=<unavailable>, ctx=<unavailable>, context_die=0x000000014482b000) at dwarf2out.c:26314 frame #16: 0x00000001007c5ef3 lto1`::gen_type_die_with_usage(type=0x00000001448260a8, context_die=<unavailable>, usage=DINFO_USAGE_DIR_USE) at dwarf2out.c:25495 frame #17: 0x00000001007c785a lto1`::gen_type_die(type=0x00000001448260a8, context_die=<unavailable>) at dwarf2out.c:25679 frame #18: 0x00000001007c80b0 lto1`::modified_type_die(type=0x00000001448260a8, cv_quals=0, reverse=<unavailable>, context_die=0x000000014482b690) at dwarf2out.c:13373 frame #19: 0x00000001007ca931 lto1`::add_type_attribute(object_die=0x000000014482b7d0, type=<unavailable>, cv_quals=<unavailable>, reverse=<unavailable>, context_die=<unavailable>) at dwarf2out.c:21601 frame #20: 0x00000001007bdf53 lto1`::gen_variable_die(decl=0x0000000142ce0e10, origin=<unavailable>, context_die=0x000000014482b690) at dwarf2out.c:23843 frame #21: 0x00000001007e2c3b lto1`::gen_decl_die(decl=0x0000000142ce0e10, origin=0x0000000000000000, ctx=0x0000000000000000, context_die=0x000000014482b690) at dwarf2out.c:26371 frame #22: 0x00000001007c01dd lto1`::process_scope_var(stmt=0x00000001448252a0, decl=0x0000000142ce0e10, origin=<unavailable>, context_die=0x000000014482b690) at dwarf2out.c:25832 frame #23: 0x00000001007c06c9 lto1`::decls_for_scope(stmt=0x00000001448252a0, context_die=0x000000014482b690, recurse=<unavailable>) at dwarf2out.c:25858 frame #24: 0x00000001007c19c7 lto1`::gen_subprogram_die(decl=<unavailable>, context_die=<unavailable>) at dwarf2out.c:23328 frame #25: 0x00000001007e2705 lto1`::gen_decl_die(decl=0x0000000144824100, origin=0x0000000000000000, ctx=0x0000000000000000, context_die=0x000000014482b000) at dwarf2out.c:26288 frame #26: 0x00000001007e428b lto1`::dwarf2out_decl(decl=0x0000000144824100) at dwarf2out.c:26856 frame #27: 0x00000001007e4d5f lto1`::dwarf2out_function_decl(decl=<unavailable>) at dwarf2out.c:26871 frame #28: 0x0000000100851128 lto1`pass_final::execute(this=<unavailable>, (null)=<unavailable>) const at final.c:4695 frame #29: 0x0000000100b814af lto1`execute_one_pass(pass=0x0000000143811c20) at passes.c:2483 frame #30: 0x0000000100b81b63 lto1`::execute_pass_list_1(pass=0x0000000143811c20) at passes.c:2569 frame #31: 0x0000000100b81b75 lto1`::execute_pass_list_1(pass=0x0000000143811740) at passes.c:2570 frame #32: 0x0000000100b81b75 lto1`::execute_pass_list_1(pass=0x000000014380fac0) at passes.c:2570 frame #33: 0x0000000100b81ba2 lto1`execute_pass_list(fn=0x000000014482d000, pass=<unavailable>) at passes.c:2580 frame #34: 0x00000001006eb445 lto1`cgraph_node::expand(this=0x0000000143d24438) at cgraphunit.c:2196 frame #35: 0x00000001006ec322 lto1`symbol_table::compile() at cgraphunit.c:2334 frame #36: 0x00000001006ec221 lto1`symbol_table::compile(this=0x0000000143d25100) frame #37: 0x0000000100030ff0 lto1`lto_main() at lto.c:3390 frame #38: 0x0000000100c982ca lto1`::compile_file() at toplev.c:456 frame #39: 0x0000000101710faf lto1`toplev::main(int, char**) at toplev.c:2176 frame #40: 0x0000000101710e7b lto1`toplev::main(this=0x00007fff5fbff68e, argc=<unavailable>, argv=<unavailable>) frame #41: 0x0000000101713821 lto1`main(argc=31, argv=0x00007fff5fbff6c8) at main.c:39 frame #42: 0x00007fff9e132235 libdyld.dylib`start + 1 frame #43: 0x00007fff9e132235 libdyld.dylib`start + 1 (lldb) ========= pr78651 is: $ /XC/9.4/usr/bin/lldb -- /scratch/10-12-sie/gcc-trunk-unpatched/gcc/testsuite/g++2/../../lto1 -fPIC -feliminate-unused-debug-symbols -quiet -dumpdir ./ -dumpbase pr78651.exe -mmacosx-version-min=10.12.0 -mtune=core2 -m32 -mmacosx-version-min=10.12.0 -mtune=core2 -auxbase-strip pr78651.exe.lto.o -g -O2 -O2 -version -fdiagnostics-color=never -fno-openmp -fno-openacc -fsanitize=address -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fmessage-length=0 -flto-partition=none -fpic @/var/folders/tj/17r7407j14d324dzf67cnvxm000114/T//ccUkv7Up -o pr78651.s (lldb) target create "/scratch/10-12-sie/gcc-trunk-unpatched/gcc/testsuite/g++2/../../lto1" Current executable set to '/scratch/10-12-sie/gcc-trunk-unpatched/gcc/testsuite/g++2/../../lto1' (x86_64). (lldb) settings set -- target.run-args "-fPIC" "-feliminate-unused-debug-symbols" "-quiet" "-dumpdir" "./" "-dumpbase" "pr78651.exe" "-mmacosx-version-min=10.12.0" "-mtune=core2" "-m32" "-mmacosx-version-min=10.12.0" "-mtune=core2" "-auxbase-strip" "pr78651.exe.lto.o" "-g" "-O2" "-O2" "-version" "-fdiagnostics-color=never" "-fno-openmp" "-fno-openacc" "-fsanitize=address" "-fno-diagnostics-show-caret" "-fno-diagnostics-show-line-numbers" "-fmessage-length=0" "-flto-partition=none" "-fpic" "@/var/folders/tj/17r7407j14d324dzf67cnvxm000114/T//ccUkv7Up" "-o" "pr78651.s" (lldb) b internal_error r Breakpoint 1: where = lto1`internal_error(char const*, ...) + 121 [inlined] _ZN21auto_diagnostic_groupC4Ev, address = 0x00000001010abcb9 (lldb) r Process 22101 launched: '/scratch/10-12-sie/gcc-trunk-unpatched/gcc/testsuite/g++2/../../lto1' (x86_64) GNU GIMPLE (GCC) version 9.0.0 20190114 (experimental) [trunk revision 267925] (x86_64-apple-darwin16) compiled by GNU C version 9.0.0 20190114 (experimental) [trunk revision 267925], GMP version 6.1.2, MPFR version 3.1.6, MPC version 1.1.0, isl version isl-0.20-GMP GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 GNU GIMPLE (GCC) version 9.0.0 20190114 (experimental) [trunk revision 267925] (x86_64-apple-darwin16) compiled by GNU C version 9.0.0 20190114 (experimental) [trunk revision 267925], GMP version 6.1.2, MPFR version 3.1.6, MPC version 1.1.0, isl version isl-0.20-GMP GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Process 22101 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x00000001010abcb9 lto1`internal_error(char const*, ...) [inlined] _ZN21auto_diagnostic_groupC4Ev(this=<unavailable>) at diagnostic.c:1616 1613 1614 auto_diagnostic_group::auto_diagnostic_group () 1615 { -> 1616 global_dc->diagnostic_group_nesting_depth++; 1617 } 1618 1619 /* Destructor: "pop" this group from global_dc. */ Target 0: (lto1) stopped. (lldb) bt * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 * frame #0: 0x00000001010abcb9 lto1`internal_error(char const*, ...) [inlined] _ZN21auto_diagnostic_groupC4Ev(this=<unavailable>) at diagnostic.c:1616 frame #1: 0x00000001010abcb9 lto1`internal_error(gmsgid="in %s, at %s:%d") frame #2: 0x000000010170bf9c lto1`fancy_abort(file=<unavailable>, line=<unavailable>, function=<unavailable>) at diagnostic.c:1607 frame #3: 0x00000001015991fc lto1`lhd_decl_printable_name(tree_node*, int) at langhooks.c:222 frame #4: 0x00000001007b4288 lto1`::add_pubtype(decl=0x0000000143e25f18, die=0x0000000143e27f50) at dwarf2out.c:11333 frame #5: 0x00000001007e70f1 lto1`::gen_struct_or_union_type_die(type=0x0000000143e25f18, context_die=<unavailable>, usage=<unavailable>) at dwarf2out.c:25256 frame #6: 0x00000001007e205e lto1`::gen_tagged_type_die(type=0x0000000143e25f18, context_die=<unavailable>, usage=DINFO_USAGE_DIR_USE) at dwarf2out.c:25430 frame #7: 0x00000001007e248f lto1`::gen_typedef_die(decl=0x0000000143e214c0, context_die=0x0000000143e27190) at dwarf2out.c:25344 frame #8: 0x00000001007e2a15 lto1`::gen_decl_die(decl=0x0000000143e214c0, origin=<unavailable>, ctx=<unavailable>, context_die=0x0000000143e27190) at dwarf2out.c:26314 frame #9: 0x00000001007c5ef3 lto1`::gen_type_die_with_usage(type=0x0000000143e25f18, context_die=<unavailable>, usage=DINFO_USAGE_DIR_USE) at dwarf2out.c:25495 frame #10: 0x00000001007c785a lto1`::gen_type_die(type=0x0000000143e25f18, context_die=<unavailable>) at dwarf2out.c:25679 frame #11: 0x00000001007c80b0 lto1`::modified_type_die(type=0x0000000143e25f18, cv_quals=0, reverse=<unavailable>, context_die=0x0000000143e27e60) at dwarf2out.c:13373 frame #12: 0x00000001007ca931 lto1`::add_type_attribute(object_die=0x0000000143e27eb0, type=<unavailable>, cv_quals=<unavailable>, reverse=<unavailable>, context_die=<unavailable>) at dwarf2out.c:21601 frame #13: 0x00000001007bdf53 lto1`::gen_variable_die(decl=0x0000000142ce0e10, origin=<unavailable>, context_die=0x0000000143e27e60) at dwarf2out.c:23843 frame #14: 0x00000001007e2c3b lto1`::gen_decl_die(decl=0x0000000142ce0e10, origin=0x0000000000000000, ctx=0x0000000000000000, context_die=0x0000000143e27e60) at dwarf2out.c:26371 frame #15: 0x00000001007c01dd lto1`::process_scope_var(stmt=0x0000000143e2c540, decl=0x0000000142ce0e10, origin=<unavailable>, context_die=0x0000000143e27e60) at dwarf2out.c:25832 frame #16: 0x00000001007c06c9 lto1`::decls_for_scope(stmt=0x0000000143e2c540, context_die=0x0000000143e27e60, recurse=<unavailable>) at dwarf2out.c:25858 frame #17: 0x00000001007e9dd4 lto1`::gen_block_die(tree, dw_die_ref) at dwarf2out.c:24180 frame #18: 0x00000001007e9d0c lto1`::gen_block_die(stmt=0x0000000143e2c540, context_die=<unavailable>) frame #19: 0x00000001007c076f lto1`::decls_for_scope(stmt=0x0000000143e2c4e0, context_die=0x0000000143e27af0, recurse=<unavailable>) at dwarf2out.c:25887 frame #20: 0x00000001007c19c7 lto1`::gen_subprogram_die(decl=<unavailable>, context_die=<unavailable>) at dwarf2out.c:23328 frame #21: 0x00000001007e2705 lto1`::gen_decl_die(decl=0x0000000143e24300, origin=0x0000000000000000, ctx=0x0000000000000000, context_die=0x0000000143e27190) at dwarf2out.c:26288 frame #22: 0x00000001007e428b lto1`::dwarf2out_decl(decl=0x0000000143e24300) at dwarf2out.c:26856 frame #23: 0x00000001007e4d5f lto1`::dwarf2out_function_decl(decl=<unavailable>) at dwarf2out.c:26871 frame #24: 0x0000000100851128 lto1`pass_final::execute(this=<unavailable>, (null)=<unavailable>) const at final.c:4695 frame #25: 0x0000000100b814af lto1`execute_one_pass(pass=0x0000000142d13f50) at passes.c:2483 frame #26: 0x0000000100b81b63 lto1`::execute_pass_list_1(pass=0x0000000142d13f50) at passes.c:2569 frame #27: 0x0000000100b81b75 lto1`::execute_pass_list_1(pass=0x0000000142d13a70) at passes.c:2570 frame #28: 0x0000000100b81b75 lto1`::execute_pass_list_1(pass=0x0000000142d11df0) at passes.c:2570 frame #29: 0x0000000100b81ba2 lto1`execute_pass_list(fn=0x0000000143e2d000, pass=<unavailable>) at passes.c:2580 frame #30: 0x00000001006eb445 lto1`cgraph_node::expand(this=0x0000000143c045a0) at cgraphunit.c:2196 frame #31: 0x00000001006ec322 lto1`symbol_table::compile() at cgraphunit.c:2334 frame #32: 0x00000001006ec221 lto1`symbol_table::compile(this=0x0000000143c05100) frame #33: 0x0000000100030ff0 lto1`lto_main() at lto.c:3390 frame #34: 0x0000000100c982ca lto1`::compile_file() at toplev.c:456 frame #35: 0x0000000101710faf lto1`toplev::main(int, char**) at toplev.c:2176 frame #36: 0x0000000101710e7b lto1`toplev::main(this=0x00007fff5fbff68e, argc=<unavailable>, argv=<unavailable>) frame #37: 0x0000000101713821 lto1`main(argc=31, argv=0x00007fff5fbff6c8) at main.c:39 frame #38: 0x00007fff9e132235 libdyld.dylib`start + 1 frame #39: 0x00007fff9e132235 libdyld.dylib`start + 1