8sa1-gcc/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual13.C
Jakub Jelinek 6a3ebcc662 re PR c++/88110 (ICE (segfault) with -std=C++2a in cxx_eval_constant_expression when trying to evaluate nonoverridden "virtual ... = 0" function of a base class)
PR c++/88110
	* constexpr.c (cxx_eval_constant_expression) <case OBJ_TYPE_REF>: Punt
	if get_base_address of ADDR_EXPR operand is not a DECL_P.

	* g++.dg/cpp2a/constexpr-virtual13.C: New test.

From-SVN: r266329
2018-11-20 23:23:12 +01:00

21 lines
297 B
C

// PR c++/88110
// { dg-do compile }
struct A {
virtual int foo () const = 0;
};
struct B {
virtual int bar () const = 0;
virtual int baz () const = 0;
};
struct C : public A { };
struct D : public C { };
struct E : public D, public B { };
void
qux (const E *x)
{
if (x->baz ())
;
}