[flang-commits] [flang] [flang] handle passing bind(c) derived type by value for ppc64le and powerpc64-aix (PR #128780)

via flang-commits flang-commits at lists.llvm.org
Wed Feb 26 01:19:45 PST 2025


================
@@ -1049,6 +1049,29 @@ struct TargetPPC64 : public GenericTarget<TargetPPC64> {
         AT{});
     return marshal;
   }
+
+  CodeGenSpecifics::Marshalling
+  structType(mlir::Location loc, fir::RecordType ty, bool isResult) const {
+    CodeGenSpecifics::Marshalling marshal;
+    auto sizeAndAlign{
+        fir::getTypeSizeAndAlignmentOrCrash(loc, ty, getDataLayout(), kindMap)};
+    unsigned short align{
+        std::max(sizeAndAlign.second, static_cast<unsigned short>(8))};
+    marshal.emplace_back(fir::ReferenceType::get(ty),
+                         AT{align, /*byvale*/ !isResult, /*sret*/ isResult});
----------------
jeanPerier wrote:

```suggestion
                         AT{align, /*byval*/ !isResult, /*sret*/ isResult});
```

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


More information about the flang-commits mailing list