[Bug c++/92414] New: internal compiler error: tree check: expected constructor, have error_mark in cxx_eval_store_expression, at cp/constexpr.c:4009
mpolacek at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Nov 7 20:51:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92414
Bug ID: 92414
Summary: internal compiler error: tree check: expected
constructor, have error_mark in
cxx_eval_store_expression, at cp/constexpr.c:4009
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: mpolacek at gcc dot gnu.org
Target Milestone: ---
struct A { virtual void a(); };
struct B : A {
constexpr B(int);
constexpr ~B() { }
};
struct D : B {
constexpr D() : B(42) { }
};
constexpr D d;
$ ./cc1plus -quiet ice.C -std=c++2a
ice.C:12:13: in ‘constexpr’ expansion of ‘D()’
ice.C:9:23: error: ‘constexpr B::B(int)’ used before its definition
9 | constexpr D() : B(42) { }
| ^
ice.C:12:13: in ‘constexpr’ expansion of ‘((D*)(& d))->D::~D()’
ice.C:12:13: internal compiler error: tree check: expected constructor, have
error_mark in cxx_eval_store_expression, at cp/constexpr.c:4110
12 | constexpr D d;
| ^
0x18bb352 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
/home/mpolacek/src/gcc/gcc/tree.c:9676
0x87f84f tree_check(tree_node*, char const*, int, char const*, tree_code)
/home/mpolacek/src/gcc/gcc/tree.h:3267
0x8fa7c5 cxx_eval_store_expression
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:4110
0x8fdf7d cxx_eval_constant_expression
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:5013
0x8ff174 cxx_eval_constant_expression
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:5380
0x8fe226 cxx_eval_constant_expression
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:5064
0x8fe226 cxx_eval_constant_expression
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:5064
0x8fbd44 cxx_eval_statement_list
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:4505
0x8ffc82 cxx_eval_constant_expression
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:5508
0x8ffd01 cxx_eval_constant_expression
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:5512
0x8fbd44 cxx_eval_statement_list
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:4505
0x8ffc82 cxx_eval_constant_expression
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:5508
0x8f17d4 cxx_eval_call_expression
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:2072
0x8fd60c cxx_eval_constant_expression
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:4924
0x90178c cxx_eval_outermost_constant_expr
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:5868
0x9023c4 cxx_constant_dtor(tree_node*, tree_node*)
/home/mpolacek/src/gcc/gcc/cp/constexpr.c:6027
0x998cc3 cxx_maybe_build_cleanup(tree_node*, int)
/home/mpolacek/src/gcc/gcc/cp/decl.c:17212
0x974ae7 expand_static_init
/home/mpolacek/src/gcc/gcc/cp/decl.c:8737
0x970763 cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
/home/mpolacek/src/gcc/gcc/cp/decl.c:7783
0xa8ea3f cp_parser_init_declarator
/home/mpolacek/src/gcc/gcc/cp/parser.c:20727
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
More information about the Gcc-bugs
mailing list