[flang-commits] [flang] [flang][cuda] Only apply the implicit data attribute on the component for use_device (PR #192146)

via flang-commits flang-commits at lists.llvm.org
Thu Apr 16 21:54:44 PDT 2026


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff origin/main HEAD --extensions h,cpp -- flang/include/flang/Semantics/tools.h flang/include/flang/Semantics/type.h flang/lib/Semantics/expression.cpp flang/lib/Semantics/resolve-names.cpp flang/lib/Semantics/type.cpp --diff_from_common_commit
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/flang/lib/Semantics/resolve-names.cpp b/flang/lib/Semantics/resolve-names.cpp
index 0e48bc0f7..0225f0fb3 100644
--- a/flang/lib/Semantics/resolve-names.cpp
+++ b/flang/lib/Semantics/resolve-names.cpp
@@ -1659,25 +1659,25 @@ void AccVisitor::Post(const parser::AccClause::UseDevice &x) {
   // Run after clause acc-objects are walked so Post(Designator) has resolved
   // Name::symbol, then fork types and remap %component symbols for CUDA.
   for (auto &accObject : const_cast<std::list<parser::AccObject> &>(x.v.v)) {
-    common::visit(
-        common::visitors{
-            [&](parser::Designator &designator) {
-              const parser::Name *baseName{nullptr};
-              llvm::SmallVector<SourceName, 4> components;
-              GetUseDeviceStructurePath(designator, baseName, components);
-              if (baseName && baseName->symbol) {
-                if (components.empty()) {
-                  CopySymbolWithDevice(baseName);
-                } else {
-                  CopySymbolWithDeviceStructurePath(
-                      baseName, components, designator);
-                }
-              }
-            },
-            [&](const parser::Name &name) {
-              // TODO: common block in use_device?
-            },
-        },
+    common::visit(common::visitors{
+                      [&](parser::Designator &designator) {
+                        const parser::Name *baseName{nullptr};
+                        llvm::SmallVector<SourceName, 4> components;
+                        GetUseDeviceStructurePath(
+                            designator, baseName, components);
+                        if (baseName && baseName->symbol) {
+                          if (components.empty()) {
+                            CopySymbolWithDevice(baseName);
+                          } else {
+                            CopySymbolWithDeviceStructurePath(
+                                baseName, components, designator);
+                          }
+                        }
+                      },
+                      [&](const parser::Name &name) {
+                        // TODO: common block in use_device?
+                      },
+                  },
         accObject.u);
   }
 }

``````````

</details>


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


More information about the flang-commits mailing list