aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp2a/pr117317-1.C
blob: f3ef3849d0336b089263c1b9ae05797d4b9050cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// PR c++/117317
// { dg-do compile { target c++20 } }

struct C {
  constexpr bool operator== (const C &b) const { return foo (); }
  constexpr virtual bool foo () const = 0;
};
class A : public C {};
class B : public C {};
template <int>
struct D : A, B
{
  constexpr bool operator== (const D &) const = default;
  constexpr bool foo () const override { return true; }
};
struct E : D<1> {};
constexpr E e;
constexpr E f;
static_assert (e == f, "");