[flang-commits] [flang] [flang][debug] Supply missing subprogram attributes (PR #181425)

via flang-commits flang-commits at lists.llvm.org
Wed Feb 18 13:53:52 PST 2026


================
@@ -511,6 +511,23 @@ void AddDebugInfoPass::handleFuncOp(mlir::func::FuncOp funcOp,
     subprogramFlags =
         subprogramFlags | mlir::LLVM::DISubprogramFlags::Definition;
   }
+
+  // Check if the function has the pure, elemental, or recursive procedure
+  // attribute
+  if (fir::hasProcedureAttr<fir::FortranProcedureFlagsEnum::pure>(funcOp)) {
+    subprogramFlags = subprogramFlags | mlir::LLVM::DISubprogramFlags::Pure;
+  }
+  if (fir::hasProcedureAttr<fir::FortranProcedureFlagsEnum::elemental>(
+          funcOp)) {
+    subprogramFlags =
+        subprogramFlags | mlir::LLVM::DISubprogramFlags::Elemental;
+  }
+  if (fir::hasProcedureAttr<fir::FortranProcedureFlagsEnum::recursive>(
+          funcOp)) {
+    subprogramFlags =
+        subprogramFlags | mlir::LLVM::DISubprogramFlags::Recursive;
+  }
----------------
timsmith78 wrote:

Fixed as requested.

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


More information about the flang-commits mailing list