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

Abid Qadeer via flang-commits flang-commits at lists.llvm.org
Mon Feb 16 08:41:23 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;
+  }
----------------
abidh wrote:

Same issue with braces here.

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


More information about the flang-commits mailing list