https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84705
Vegard Nossum <vegard.nossum at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vegard.nossum at oracle dot com --- Comment #3 from Vegard Nossum <vegard.nossum at oracle dot com> --- Slightly different test case + maybe a bit more info from asan: template <int> struct d { short : 1e31 || [] { struct b { int a = const_cast < struct c; }; }; }; $ cc1plus d<<anonymous> >::<lambda()>/home/vegard/git/gcc/gcc/cp/semantics.c:390:3: runtime error: member call on null pointer of type 'struct vec' /home/vegard/git/gcc/gcc/vec.h:568:54: runtime error: member access within null pointer of type 'const struct vec' ASAN:SIGSEGV ================================================================= ==16541==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x000004edb008 bp 0x7f6282534b40 sp 0x7ffc93cb64d0 T0) #0 0x4edb007 in vec<tree_node*, va_gc, vl_embed>::is_empty() const /home/vegard/git/gcc/gcc/vec.h:568 #1 0x4edb007 in add_stmt(tree_node*) /home/vegard/git/gcc/gcc/cp/semantics.c:390 #2 0x393ff85 in do_pushtag /home/vegard/git/gcc/gcc/cp/name-lookup.c:6485 #3 0x393ff85 in pushtag(tree_node*, tree_node*, tag_scope) /home/vegard/git/gcc/gcc/cp/name-lookup.c:6524 #4 0x2604599 in xref_tag_1 /home/vegard/git/gcc/gcc/cp/decl.c:13761 #5 0x2604599 in xref_tag(tag_types, tree_node*, tag_scope, bool) /home/vegard/git/gcc/gcc/cp/decl.c:13818 #6 0x3f23b08 in cp_parser_elaborated_type_specifier /home/vegard/git/gcc/gcc/cp/parser.c:17920 #7 0x3d1beb4 in cp_parser_type_specifier /home/vegard/git/gcc/gcc/cp/parser.c:16804 #8 0x3d5bd8c in cp_parser_type_specifier_seq /home/vegard/git/gcc/gcc/cp/parser.c:21114 #9 0x3e9b6ad in cp_parser_type_id_1 /home/vegard/git/gcc/gcc/cp/parser.c:20957 #10 0x3ee22f0 in cp_parser_type_id /home/vegard/git/gcc/gcc/cp/parser.c:21025 #11 0x3ee22f0 in cp_parser_postfix_expression /home/vegard/git/gcc/gcc/cp/parser.c:6728 #12 0x3d6d95e in cp_parser_unary_expression /home/vegard/git/gcc/gcc/cp/parser.c:8324 #13 0x3b80029 in cp_parser_cast_expression /home/vegard/git/gcc/gcc/cp/parser.c:9092 #14 0x3b8cff5 in cp_parser_binary_expression /home/vegard/git/gcc/gcc/cp/parser.c:9193 #15 0x3b9a71a in cp_parser_assignment_expression /home/vegard/git/gcc/gcc/cp/parser.c:9488 #16 0x3bb6708 in cp_parser_constant_expression /home/vegard/git/gcc/gcc/cp/parser.c:9772 #17 0x3bd90c3 in cp_parser_initializer_clause /home/vegard/git/gcc/gcc/cp/parser.c:21930 #18 0x3c02785 in cp_parser_initializer /home/vegard/git/gcc/gcc/cp/parser.c:21870 #19 0x3c0444e in cp_parser_late_parse_one_default_arg /home/vegard/git/gcc/gcc/cp/parser.c:27785 #20 0x3d2e490 in cp_parser_late_parsing_nsdmi /home/vegard/git/gcc/gcc/cp/parser.c:27837 #21 0x3d2e490 in cp_parser_class_specifier_1 /home/vegard/git/gcc/gcc/cp/parser.c:22739 #22 0x3d2e490 in cp_parser_class_specifier /home/vegard/git/gcc/gcc/cp/parser.c:22792 #23 0x3d2e490 in cp_parser_type_specifier /home/vegard/git/gcc/gcc/cp/parser.c:16776 #24 0x3f3fdff in cp_parser_decl_specifier_seq /home/vegard/git/gcc/gcc/cp/parser.c:13631 #25 0x4043abe in cp_parser_single_declaration /home/vegard/git/gcc/gcc/cp/parser.c:27211 #26 0x4049117 in cp_parser_template_declaration_after_parameters /home/vegard/git/gcc/gcc/cp/parser.c:26900 #27 0x405c5db in cp_parser_explicit_template_declaration /home/vegard/git/gcc/gcc/cp/parser.c:27138 #28 0x405c5db in cp_parser_template_declaration_after_export /home/vegard/git/gcc/gcc/cp/parser.c:27156 #29 0x41bb796 in cp_parser_declaration /home/vegard/git/gcc/gcc/cp/parser.c:12739 #30 0x4188c5f in cp_parser_declaration_seq_opt /home/vegard/git/gcc/gcc/cp/parser.c:12658 #31 0x419308b in cp_parser_translation_unit /home/vegard/git/gcc/gcc/cp/parser.c:4563 #32 0x419308b in c_parse_file() /home/vegard/git/gcc/gcc/cp/parser.c:39019 #33 0x613101d in c_common_parse_file() /home/vegard/git/gcc/gcc/c-family/c-opts.c:1132 #34 0x10cb4551 in compile_file /home/vegard/git/gcc/gcc/toplev.c:455 #35 0x14c07ed in do_compile /home/vegard/git/gcc/gcc/toplev.c:2132 #36 0x14c07ed in toplev::main(int, char**) /home/vegard/git/gcc/gcc/toplev.c:2267 #37 0x14eca1c in main /home/vegard/git/gcc/gcc/main.c:39 #38 0x7f628691282f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f) #39 0x14ef478 in _start (/home/vegard/personal/programming/gcc/install/libexec/gcc/x86_64-pc-linux-gnu/8.0.1/cc1plus+0x14ef478) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/vegard/git/gcc/gcc/vec.h:568 vec<tree_node*, va_gc, vl_embed>::is_empty() const ==16541==ABORTING Version: GNU C++14 (GCC) version 8.0.1 20180306 (experimental) (x86_64-pc-linux-gnu)