[llvm-branch-commits] [flang] release/22.x: [flang][Lower] Fix UB in location handling (#177944) (PR #177965)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Jan 26 06:15:27 PST 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

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

Author: None (llvmbot)

<details>
<summary>Changes</summary>

Backport 9be7c10

Requested by: @<!-- -->tblah

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


1 Files Affected:

- (modified) flang/lib/Lower/Bridge.cpp (+3-3) 


``````````diff
diff --git a/flang/lib/Lower/Bridge.cpp b/flang/lib/Lower/Bridge.cpp
index 2d9947530cae8..1f35153928500 100644
--- a/flang/lib/Lower/Bridge.cpp
+++ b/flang/lib/Lower/Bridge.cpp
@@ -1117,7 +1117,7 @@ class FirConverter : public Fortran::lower::AbstractConverter {
                                                       fir::LocationKind::Base));
 
         // Gather include location information if any.
-        Fortran::parser::ProvenanceRange *prov = &*provenance;
+        std::optional<Fortran::parser::ProvenanceRange> prov = provenance;
         while (prov) {
           if (std::optional<Fortran::parser::ProvenanceRange> include =
                   cooked->allSources().GetInclusionInfo(*prov)) {
@@ -1127,9 +1127,9 @@ class FirConverter : public Fortran::lower::AbstractConverter {
               locAttrs.push_back(fir::LocationKindAttr::get(
                   &getMLIRContext(), fir::LocationKind::Inclusion));
             }
-            prov = &*include;
+            prov = include;
           } else {
-            prov = nullptr;
+            prov.reset();
           }
         }
         if (locs.size() > 1) {

``````````

</details>


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


More information about the llvm-branch-commits mailing list