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

Jiang An <de34 at live dot cn> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |de34 at live dot cn

--- Comment #2 from Jiang An <de34 at live dot cn> ---
I think GCC and MSVC are right here and libstdc++ is also fine.

The divergence is probably due to that Clang and EDG haven't implemented
CWG2658
(https://cplusplus.github.io/CWG/issues/2658.html).

A more reduced example:

```
struct expected_like {
  union {
    struct { } m_dummy {};
    int m_unex;
  };
};

constexpr bool quux() {
  using I = int;
  expected_like foo1{.m_unex{}};
  foo1.m_unex.~I();
  [[maybe_unused]] expected_like foo3{foo1};
  return true;
}

static_assert(quux());
```

https://godbolt.org/z/Y64M4YMPP

Reply via email to