github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. 
:warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff 20d8f8ca1a9de3506c7cad55abcea501a0c57afa 
f983323a596bf5d777ad0316853044cedf02a91a --extensions cpp -- 
clang/test/CodeGen/AArch64/small-types-with-padding.cpp 
clang/lib/AST/RecordLayoutBuilder.cpp clang/lib/CodeGen/Targets/AArch64.cpp
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp 
b/clang/lib/AST/RecordLayoutBuilder.cpp
index 702c11d1e5..6734b350c3 100644
--- a/clang/lib/AST/RecordLayoutBuilder.cpp
+++ b/clang/lib/AST/RecordLayoutBuilder.cpp
@@ -2450,7 +2450,7 @@ static bool mustSkipTailPadding(TargetCXXABI ABI, const 
CXXRecordDecl *RD) {
     // mode; fortunately, that is true because we want to assign
     // consistently semantics to the type-traits intrinsics (or at
     // least as many of them as possible).
-    return false; //RD->isTrivial() && RD->isCXX11StandardLayout();
+    return false; // RD->isTrivial() && RD->isCXX11StandardLayout();
   }
 
   llvm_unreachable("bad tail-padding use kind");
diff --git a/clang/lib/CodeGen/Targets/AArch64.cpp 
b/clang/lib/CodeGen/Targets/AArch64.cpp
index 657db473fe..dc64b51098 100644
--- a/clang/lib/CodeGen/Targets/AArch64.cpp
+++ b/clang/lib/CodeGen/Targets/AArch64.cpp
@@ -484,23 +484,28 @@ ABIArgInfo AArch64ABIInfo::classifyArgumentType(QualType 
Ty, bool IsVariadicFn,
   return getNaturalAlignIndirect(Ty, /*ByVal=*/false);
 }
 
-static std::pair<unsigned, unsigned> computePadding(QualType T, ASTContext 
&Ctx) {
-    unsigned Padding = 0;
-    unsigned TailPadding = 0;
-    if (auto *RD = T->getAs<RecordType>()) {
-      for (auto I = RD->getDecl()->field_begin(), End = 
RD->getDecl()->field_end(); I != End; ++I) {
-        QualType FieldTy = I->getType();
-        if (auto *ET = FieldTy->getAs<ElaboratedType>())
-          FieldTy = ET->getNamedType();
-        if (auto *RD2 = FieldTy->getAs<RecordType>()) {
-          auto &Layout = Ctx.getASTRecordLayout(RD2->getDecl());
-          auto[SubPadding, SubTailPadding] = computePadding(I->getType(), Ctx);
-          TailPadding = Ctx.toBits(Layout.getSize() - Layout.getDataSize()) 
+SubTailPadding;
-          Padding += Ctx.toBits(Layout.getSize() - Layout.getDataSize()) + 
SubPadding;
-        }
+static std::pair<unsigned, unsigned> computePadding(QualType T,
+                                                    ASTContext &Ctx) {
+  unsigned Padding = 0;
+  unsigned TailPadding = 0;
+  if (auto *RD = T->getAs<RecordType>()) {
+    for (auto I = RD->getDecl()->field_begin(),
+              End = RD->getDecl()->field_end();
+         I != End; ++I) {
+      QualType FieldTy = I->getType();
+      if (auto *ET = FieldTy->getAs<ElaboratedType>())
+        FieldTy = ET->getNamedType();
+      if (auto *RD2 = FieldTy->getAs<RecordType>()) {
+        auto &Layout = Ctx.getASTRecordLayout(RD2->getDecl());
+        auto [SubPadding, SubTailPadding] = computePadding(I->getType(), Ctx);
+        TailPadding = Ctx.toBits(Layout.getSize() - Layout.getDataSize()) +
+                      SubTailPadding;
+        Padding +=
+            Ctx.toBits(Layout.getSize() - Layout.getDataSize()) + SubPadding;
       }
     }
-    return {Padding, TailPadding};
+  }
+  return {Padding, TailPadding};
 }
 
 ABIArgInfo AArch64ABIInfo::classifyReturnType(QualType RetTy,
@@ -563,7 +568,10 @@ ABIArgInfo AArch64ABIInfo::classifyReturnType(QualType 
RetTy,
   // Aggregates <= 16 bytes are returned directly in registers or on the stack.
   if (Size <= 128) {
     auto [Padding, TailPadding] = computePadding(RetTy, getContext());
-    // If the type contains any padding, be careful not to lower to wide types 
that may mix data and padding bits. E.g. using i64 for a type that has 32 bits 
of data and 32 bits of padding means loading the uninitialized padding bits 
together with data bits poisons the resulting wide type.
+    // If the type contains any padding, be careful not to lower to wide types
+    // that may mix data and padding bits. E.g. using i64 for a type that has 
32
+    // bits of data and 32 bits of padding means loading the uninitialized
+    // padding bits together with data bits poisons the resulting wide type.
     if (Padding > 0) {
       if (Padding == TailPadding && (Size - TailPadding) % 8 == 0) {
         llvm::Type *BaseTy = llvm::Type::getInt8Ty(getVMContext());

``````````

</details>


https://github.com/llvm/llvm-project/pull/116615
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to