[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-27 Thread LLVM Continuous Integration via cfe-commits
llvm-ci wrote: LLVM Buildbot has detected a new failure on builder `openmp-offload-libc-amdgpu-runtime` running on `omp-vega20-1` while building `clang` at step 7 "Add check check-offload". Full details are available at: https://lab.llvm.org/buildbot/#/builders/73/builds/9270 Here is the re

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-27 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja closed https://github.com/llvm/llvm-project/pull/116359 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-27 Thread via cfe-commits
https://github.com/cor3ntin approved this pull request. LGTM https://github.com/llvm/llvm-project/pull/116359 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-27 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/116359 >From c950170822a58ca98e3f50e95b160c83ec1c63f1 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 15 Nov 2024 21:49:23 +0800 Subject: [PATCH 1/5] [Clang] Fix constexpr-ness on implicitly deleted destr

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-27 Thread via cfe-commits
@@ -546,9 +546,9 @@ void CXXRecordDecl::addedClassSubobject(CXXRecordDecl *Subobj) { data().NeedOverloadResolutionForDestructor = true; } - // C++2a [dcl.constexpr]p4: - // The definition of a constexpr destructor [shall] satisfy the - // following requirement: +

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-27 Thread via cfe-commits
@@ -158,6 +158,35 @@ C++ Specific Potentially Breaking Changes Previously, this code was erroneously accepted. +- Clang will now consider the implicitly deleted destructor of a union or + a non-union class without virtual base class to be ``constexpr`` in C++20 + mode. Pr

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-27 Thread via cfe-commits
@@ -1213,8 +1213,13 @@ void CXXRecordDecl::addedMember(Decl *D) { data().DefaultedCopyAssignmentIsDeleted = true; if (FieldRec->hasNonTrivialMoveAssignment()) data().DefaultedMoveAssignmentIsDeleted = true; - if (FieldRec->hasNonTrivia

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-27 Thread via cfe-commits
@@ -890,6 +890,13 @@ class CXXRecordDecl : public RecordDecl { needsOverloadResolutionForDestructor()) && "destructor should not be deleted"); data().DefaultedDestructorIsDeleted = true; +// C++23 [dcl.constexpr]p3.2: +// if the function is

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-27 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/116359 >From c950170822a58ca98e3f50e95b160c83ec1c63f1 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 15 Nov 2024 21:49:23 +0800 Subject: [PATCH 1/3] [Clang] Fix constexpr-ness on implicitly deleted destr

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-20 Thread Aaron Ballman via cfe-commits
https://github.com/AaronBallman edited https://github.com/llvm/llvm-project/pull/116359 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-20 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/116359 >From c950170822a58ca98e3f50e95b160c83ec1c63f1 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 15 Nov 2024 21:49:23 +0800 Subject: [PATCH 1/3] [Clang] Fix constexpr-ness on implicitly deleted destr

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-20 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/116359 >From c950170822a58ca98e3f50e95b160c83ec1c63f1 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 15 Nov 2024 21:49:23 +0800 Subject: [PATCH 1/2] [Clang] Fix constexpr-ness on implicitly deleted destr

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-20 Thread A. Jiang via cfe-commits
@@ -81,6 +81,9 @@ FIELD(IsStandardLayout, 1, NO_MERGE) /// member. FIELD(IsCXX11StandardLayout, 1, NO_MERGE) +/// True when the class has a virtual base class. +FIELD(HasVBases, 1, NO_MERGE) frederick-vs-ja wrote: Thanks for pointing this out! https://gith

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-20 Thread Aaron Ballman via cfe-commits
@@ -890,6 +890,13 @@ class CXXRecordDecl : public RecordDecl { needsOverloadResolutionForDestructor()) && "destructor should not be deleted"); data().DefaultedDestructorIsDeleted = true; +// C++23 [dcl.constexpr]p3.2: +// if the function is a

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-20 Thread Aaron Ballman via cfe-commits
@@ -81,6 +81,9 @@ FIELD(IsStandardLayout, 1, NO_MERGE) /// member. FIELD(IsCXX11StandardLayout, 1, NO_MERGE) +/// True when the class has a virtual base class. +FIELD(HasVBases, 1, NO_MERGE) AaronBallman wrote: Do we need to add this here? Doesn't `Definiti

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-20 Thread Aaron Ballman via cfe-commits
https://github.com/AaronBallman commented: Thank you for the fix! Can you also add a release note to `clang/docs/ReleaseNotes.rst` so users know about the fix? https://github.com/llvm/llvm-project/pull/116359 ___ cfe-commits mailing list cfe-commits@l

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-15 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang Author: A. Jiang (frederick-vs-ja) Changes In C++20, a defaulted but implicitly deleted destructor is constexpr if and only if the class has no virtual base class. This hasn't been changed in C++23 by P2448R2. Constexpr-ness on a deleted destruc

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-15 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja edited https://github.com/llvm/llvm-project/pull/116359 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-15 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/116359 >From c950170822a58ca98e3f50e95b160c83ec1c63f1 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 15 Nov 2024 21:49:23 +0800 Subject: [PATCH] [Clang] Fix constexpr-ness on implicitly deleted destructor

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-15 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/116359 >From f39b5a01c0c98ff9270a1c47c1c3915688d8b359 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 15 Nov 2024 19:35:11 +0800 Subject: [PATCH] [Clang] Fix constexpr-ness on implicitly deleted destructor

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-15 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja updated https://github.com/llvm/llvm-project/pull/116359 >From b93d63fff0b5a3b7e77c2ecfffe69830c0802e76 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 15 Nov 2024 18:20:26 +0800 Subject: [PATCH] [Clang] Fix constexpr-ness on implicitly deleted destructor

[clang] [Clang] Fix constexpr-ness on implicitly deleted destructors (PR #116359)

2024-11-15 Thread A. Jiang via cfe-commits
https://github.com/frederick-vs-ja created https://github.com/llvm/llvm-project/pull/116359 In C++20, a defaulted but implicitly deleted destructor is constexpr if and only if the class has no virtual base class. This hasn't been changed in C++23 by P2448R2. Constexpr-ness on a deleted destru