summaryrefslogtreecommitdiff
path: root/flang/lib/Parser/parse-tree.cpp
diff options
context:
space:
mode:
authorAiden Grossman <aidengrossman@google.com>2025-10-30 15:40:05 +0000
committerAiden Grossman <aidengrossman@google.com>2025-10-30 15:40:05 +0000
commit23de60b719e5e4cc128c42c187d7d26201ced57e (patch)
tree1ad7cab7731169ee4ecad6b11e46ff8a71b94f45 /flang/lib/Parser/parse-tree.cpp
parent1b2f3728e537f008cfb6b03bd603ea309194f453 (diff)
parentd09b50596d27d48d0a0cbf9bfe5f121e85de7313 (diff)
[𝘀𝗽𝗿] changes introduced through rebaseusers/boomanaiden154/main.msan-make-test-work-with-internal-shell
Created using spr 1.3.7 [skip ci]
Diffstat (limited to 'flang/lib/Parser/parse-tree.cpp')
-rw-r--r--flang/lib/Parser/parse-tree.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/flang/lib/Parser/parse-tree.cpp b/flang/lib/Parser/parse-tree.cpp
index 8cbaa399c476..ad0016e1404f 100644
--- a/flang/lib/Parser/parse-tree.cpp
+++ b/flang/lib/Parser/parse-tree.cpp
@@ -11,6 +11,7 @@
#include "flang/Common/indirection.h"
#include "flang/Parser/tools.h"
#include "flang/Parser/user-state.h"
+#include "llvm/ADT/ArrayRef.h"
#include "llvm/Frontend/OpenMP/OMP.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
@@ -430,4 +431,30 @@ const OmpClauseList &OmpDirectiveSpecification::Clauses() const {
}
return empty;
}
+
+static bool InitCharBlocksFromStrings(llvm::MutableArrayRef<CharBlock> blocks,
+ llvm::ArrayRef<std::string> strings) {
+ for (auto [i, n] : llvm::enumerate(strings)) {
+ blocks[i] = CharBlock(n);
+ }
+ return true;
+}
+
+// The names should have static storage duration. Keep these names
+// in a sigle place.
+llvm::ArrayRef<CharBlock> OmpCombinerExpression::Variables() {
+ static std::string names[]{"omp_in", "omp_out"};
+ static CharBlock vars[std::size(names)];
+
+ [[maybe_unused]] static bool init = InitCharBlocksFromStrings(vars, names);
+ return vars;
+}
+
+llvm::ArrayRef<CharBlock> OmpInitializerExpression::Variables() {
+ static std::string names[]{"omp_orig", "omp_priv"};
+ static CharBlock vars[std::size(names)];
+
+ [[maybe_unused]] static bool init = InitCharBlocksFromStrings(vars, names);
+ return vars;
+}
} // namespace Fortran::parser