[flang-commits] [flang] [mlir] [flang][AIX] BIND(C) derived type alignment for AIX (PR #121505)

via flang-commits flang-commits at lists.llvm.org
Thu Jan 2 09:22:50 PST 2025


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 a9a3fb5b1a23e336a1656046ba1a36832e020d4e aefe5ee2d158cf4a82c8ff039884baa91f8829b5 --extensions h,cpp -- flang/include/flang/Optimizer/CodeGen/TypeConverter.h flang/lib/Lower/ConvertType.cpp flang/lib/Optimizer/CodeGen/TypeConverter.cpp flang/lib/Optimizer/Dialect/FIRType.cpp flang/lib/Semantics/compute-offsets.cpp mlir/include/mlir/Transforms/DialectConversion.h
``````````

</details>

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

``````````diff
diff --git a/flang/lib/Semantics/compute-offsets.cpp b/flang/lib/Semantics/compute-offsets.cpp
index 7d516b3e8d..31bce0ae92 100644
--- a/flang/lib/Semantics/compute-offsets.cpp
+++ b/flang/lib/Semantics/compute-offsets.cpp
@@ -53,8 +53,8 @@ private:
   SymbolAndOffset Resolve(const SymbolAndOffset &);
   std::size_t ComputeOffset(const EquivalenceObject &);
   // Returns amount of padding that was needed for alignment
-  std::size_t DoSymbol(Symbol &,
-                       std::optional<const size_t> newAlign = std::nullopt);
+  std::size_t DoSymbol(
+      Symbol &, std::optional<const size_t> newAlign = std::nullopt);
   SizeAndAlignment GetSizeAndAlignment(const Symbol &, bool entire);
   std::size_t Align(std::size_t, std::size_t);
   std::optional<size_t> CompAlignment(const Symbol &);
@@ -72,8 +72,8 @@ private:
 
 static bool isReal8OrLarger(const Fortran::semantics::DeclTypeSpec *type) {
   return ((type->IsNumeric(common::TypeCategory::Real) ||
-           type->IsNumeric(common::TypeCategory::Complex)) &&
-          evaluate::ToInt64(type->numericTypeSpec().kind()) > 4);
+              type->IsNumeric(common::TypeCategory::Complex)) &&
+      evaluate::ToInt64(type->numericTypeSpec().kind()) > 4);
 }
 
 std::optional<size_t> ComputeOffsetsHelper::CompAlignment(const Symbol &sym) {
@@ -104,8 +104,8 @@ std::optional<size_t> ComputeOffsetsHelper::CompAlignment(const Symbol &sym) {
     return std::nullopt;
 }
 
-std::optional<size_t> ComputeOffsetsHelper::HasSpecialAlign(const Symbol &sym,
-                                                            Scope &scope) {
+std::optional<size_t> ComputeOffsetsHelper::HasSpecialAlign(
+    const Symbol &sym, Scope &scope) {
   // On AIX, if the component that is not the first component and is
   // a float of 8 bytes or larger, it has the 4-byte alignment.
   // Only set the special alignment for bind(c) derived type on that platform.
@@ -175,8 +175,8 @@ void ComputeOffsetsHelper::Compute(Scope &scope) {
 
       std::optional<size_t> newAlign{std::nullopt};
       // Handle special alignment requirement for AIX
-      auto triple{llvm::Triple(llvm::Triple::normalize(
-         llvm::sys::getDefaultTargetTriple()))};
+      auto triple{llvm::Triple(
+          llvm::Triple::normalize(llvm::sys::getDefaultTargetTriple()))};
       if (triple.getOS() == llvm::Triple::OSType::AIX) {
         newAlign = HasSpecialAlign(*symbol, scope);
       }
@@ -380,8 +380,8 @@ std::size_t ComputeOffsetsHelper::ComputeOffset(
   return result;
 }
 
-std::size_t ComputeOffsetsHelper::DoSymbol(Symbol &symbol,
-                                           std::optional<const size_t> newAlign) {
+std::size_t ComputeOffsetsHelper::DoSymbol(
+    Symbol &symbol, std::optional<const size_t> newAlign) {
   if (!symbol.has<ObjectEntityDetails>() && !symbol.has<ProcEntityDetails>()) {
     return 0;
   }

``````````

</details>


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


More information about the flang-commits mailing list