[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