[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:13:16 PDT 2025
================
@@ -1167,16 +1167,22 @@ static bool EvaluateUnaryTypeTrait(Sema &Self, TypeTrait UTT,
return true;
if (!(RD->hasTrivialDestructor() && (!Dtor || !Dtor->isDeleted())))
return false;
+ if (RD->hasTrivialDefaultConstructor())
+ return true;
bool FoundCopyCtr = false;
bool FoundMoveCtr = false;
+ bool FoundDefaultCtr = false;
for (CXXConstructorDecl *Ctr : RD->ctors()) {
- FoundCopyCtr = Ctr->isCopyConstructor();
- FoundMoveCtr = Ctr->isMoveConstructor();
if (Ctr->isIneligibleOrNotSelected() || Ctr->isDeleted())
continue;
if (Ctr->isTrivial())
return true;
+ FoundCopyCtr = Ctr->isCopyConstructor();
+ FoundMoveCtr = Ctr->isMoveConstructor();
+ FoundDefaultCtr = Ctr->isDefaultConstructor();
}
+ if (!FoundDefaultCtr && RD->hasTrivialDefaultConstructor())
+ return true;
----------------
bolshakov-a wrote:
This is never reached because `RD->hasTrivialDefaultConstructor() == true` case has been short-circuited above.
https://github.com/llvm/llvm-project/pull/162612
More information about the cfe-commits
mailing list