[clang] [Clang] Fix a regression introduced by #161163. (PR #162612)
Andrey Ali Khan Bolshakov via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 9 11:21:09 PDT 2025
================
@@ -1165,14 +1165,30 @@ static bool EvaluateUnaryTypeTrait(Sema &Self, TypeTrait UTT,
const CXXDestructorDecl *Dtor = RD->getDestructor();
if (UnqualT->isAggregateType() && (!Dtor || !Dtor->isUserProvided()))
return true;
- if (RD->hasTrivialDestructor() && (!Dtor || !Dtor->isDeleted())) {
- for (CXXConstructorDecl *Ctr : RD->ctors()) {
- if (Ctr->isIneligibleOrNotSelected() || Ctr->isDeleted())
- continue;
- if (Ctr->isTrivial())
- return true;
- }
+ if (!(RD->hasTrivialDestructor() && (!Dtor || !Dtor->isDeleted())))
+ return false;
+ if (RD->hasTrivialDefaultConstructor())
+ return true;
----------------
bolshakov-a wrote:
`UTT_HasTrivialDefaultConstructor` handler checks `RD->hasTrivialDefaultConstructor() && !RD->hasNonTrivialDefaultConstructor()` for some reason. Not sure if this is really needed.
https://github.com/llvm/llvm-project/pull/162612
More information about the cfe-commits
mailing list