[flang-commits] [flang] [flang][OpenMP] Simplify getLocation in FlangOmpReportVisitor, NFC (PR #155871)

Krzysztof Parzyszek via flang-commits flang-commits at lists.llvm.org
Thu Aug 28 09:00:41 PDT 2025


https://github.com/kparzysz created https://github.com/llvm/llvm-project/pull/155871

Use a utility function to get the construct source.

>From c8d0ff41f20ef19d517b22113f6f0de3abcb2a25 Mon Sep 17 00:00:00 2001
From: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: Thu, 28 Aug 2025 10:36:57 -0500
Subject: [PATCH] [flang][OpenMP] Simplify getLocation in
 FlangOmpReportVisitor, NFC

Use a utility function to get the construct source.
---
 .../FlangOmpReport/FlangOmpReportVisitor.cpp  | 29 ++-----------------
 1 file changed, 3 insertions(+), 26 deletions(-)

diff --git a/flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp b/flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp
index cc058bf28329b..ab2e8fd8df58f 100644
--- a/flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp
+++ b/flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp
@@ -65,32 +65,9 @@ SourcePosition OpenMPCounterVisitor::getLocation(
       c.u);
 }
 SourcePosition OpenMPCounterVisitor::getLocation(const OpenMPConstruct &c) {
-  return std::visit(
-      Fortran::common::visitors{
-          [&](const OpenMPStandaloneConstruct &c) -> SourcePosition {
-            return parsing->allCooked().GetSourcePositionRange(c.source)->first;
-          },
-          // OpenMPSectionsConstruct, OpenMPLoopConstruct,
-          // OpenMPBlockConstruct, OpenMPCriticalConstruct Get the source from
-          // the directive field.
-          [&](const auto &c) -> SourcePosition {
-            const CharBlock &source{std::get<0>(c.t).source};
-            return parsing->allCooked().GetSourcePositionRange(source)->first;
-          },
-          [&](const OpenMPAtomicConstruct &c) -> SourcePosition {
-            const CharBlock &source{c.source};
-            return parsing->allCooked().GetSourcePositionRange(source)->first;
-          },
-          [&](const OpenMPSectionConstruct &c) -> SourcePosition {
-            const CharBlock &source{c.source};
-            return parsing->allCooked().GetSourcePositionRange(source)->first;
-          },
-          [&](const OpenMPUtilityConstruct &c) -> SourcePosition {
-            const CharBlock &source{c.source};
-            return parsing->allCooked().GetSourcePositionRange(source)->first;
-          },
-      },
-      c.u);
+  return parsing->allCooked()
+      .GetSourcePositionRange(omp::GetOmpDirectiveName(c).source)
+      ->first;
 }
 
 std::string OpenMPCounterVisitor::getName(const OmpWrapperType &w) {



More information about the flang-commits mailing list