[clang] [clang] Fix behavior of `__is_trivially_relocatable(volatile int)` (PR #77092)

John McCall via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 12 10:41:41 PST 2024


================
@@ -2669,6 +2669,8 @@ bool QualType::isTriviallyRelocatableType(const ASTContext &Context) const {
     return false;
   } else if (const auto *RD = BaseElementType->getAsRecordDecl()) {
     return RD->canPassInRegisters();
+  } else if (BaseElementType.isTriviallyCopyableType(Context)) {
+    return true;
   } else {
     switch (isNonTrivialToPrimitiveDestructiveMove()) {
----------------
rjmccall wrote:

I'm not sure why these are different functions, other than maybe having different preconditions.

https://github.com/llvm/llvm-project/pull/77092


More information about the cfe-commits mailing list