[flang-commits] [flang] [flang][FIR] Make fir.type a valid memref element type (PR #199236)

via flang-commits flang-commits at lists.llvm.org
Fri May 22 09:58:29 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-flang-fir-hlfir

Author: Zhen Wang (wangzpgi)

<details>
<summary>Changes</summary>

Implement `MemRefElementTypeInterface` on `fir::RecordType` so that `memref<!fir.type<…>>` verifies, enabling downstream passes to use memrefs of Fortran derived types.

---
Full diff: https://github.com/llvm/llvm-project/pull/199236.diff


1 Files Affected:

- (modified) flang/include/flang/Optimizer/Dialect/FIRTypes.td (+2-1) 


``````````diff
diff --git a/flang/include/flang/Optimizer/Dialect/FIRTypes.td b/flang/include/flang/Optimizer/Dialect/FIRTypes.td
index c58d75851349e..dd7ca8169fd86 100644
--- a/flang/include/flang/Optimizer/Dialect/FIRTypes.td
+++ b/flang/include/flang/Optimizer/Dialect/FIRTypes.td
@@ -14,6 +14,7 @@
 #define FIR_DIALECT_FIR_TYPES
 
 include "mlir/IR/AttrTypeBase.td"
+include "mlir/IR/BuiltinTypeInterfaces.td"
 include "flang/Optimizer/Dialect/FIRDialect.td"
 
 //===----------------------------------------------------------------------===//
@@ -313,7 +314,7 @@ def fir_PointerType : FIR_Type<"Pointer", "ptr"> {
   }];
 }
 
-def fir_RecordType : FIR_Type<"Record", "type"> {
+def fir_RecordType : FIR_Type<"Record", "type", [MemRefElementTypeInterface]> {
   let summary = "FIR derived type";
 
   let description = [{

``````````

</details>


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


More information about the flang-commits mailing list