https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106287

            Bug ID: 106287
           Summary: Implicit virtual destructor needs to be explicitly
                    defaulted for constant evaluation
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: johelegp at gmail dot com
                CC: johelegp at gmail dot com
  Target Milestone: ---

See https://godbolt.org/z/4WaevWoEs.

```C++
template<class T> struct A : T {
  constexpr A(T v) : T{v} { }
  // ~A() = default; // Fixes GCC.
};

struct B {
  virtual ~B() = default;
};

inline constexpr auto x = A{B{}};
```

```
<source>:10:32: error: 'virtual constexpr A<B>::~A()' used before its
definition
   10 | inline constexpr auto x = A{B{}};
      |                                ^
Compiler returned: 1
```

Reply via email to