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

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
What I see is clang performing checks at a place it shouldn't.
It can be better seen on
struct Test {
    constexpr Test() = default;

    constexpr ~Test() {
        delete this;
    }
};

consteval bool test() {
    auto obj = new Test();
    delete obj;
    return true;
}

static_assert(test());
where it reports
destruction of object that is already being destroyed
which definitely isn't something that happens in the testcase.
The object is only destroyed after the destructor finishes, which is never in
this case.

Reply via email to