[flang-commits] [flang] [flang][OpenMP] Don't pritvatize pre-determined symbols declare by nested `BLOCK`s (PR #152652)
Sergio Afonso via flang-commits
flang-commits at lists.llvm.org
Fri Aug 8 04:50:38 PDT 2025
================
@@ -58,13 +58,21 @@ class DataSharingProcessor {
}
void Post(const parser::Name &name) {
- auto *current = !constructs.empty() ? constructs.back() : nullptr;
+ const void *current = !constructs.empty() ? constructs.back() : nullptr;
symDefMap.try_emplace(name.symbol, current);
}
- llvm::SmallVector<const parser::OpenMPConstruct *> constructs;
- llvm::DenseMap<semantics::Symbol *, const parser::OpenMPConstruct *>
- symDefMap;
+ bool Pre(const parser::DeclarationConstruct &decl) {
+ constructs.push_back(&decl);
+ return true;
+ }
+
+ void Post(const parser::DeclarationConstruct &decl) {
+ constructs.pop_back();
+ }
+
+ llvm::SmallVector<const void *> constructs;
+ llvm::DenseMap<semantics::Symbol *, const void *> symDefMap;
----------------
skatrak wrote:
Would you be able to use an `std::variant<const parser::OpenMPConstruct *, const parser::DeclarationConstruct *>` instead? Mainly because I think having opaque pointers is not great for maintainability.
https://github.com/llvm/llvm-project/pull/152652
More information about the flang-commits
mailing list