diff options
| author | Aiden Grossman <aidengrossman@google.com> | 2025-10-30 15:40:05 +0000 |
|---|---|---|
| committer | Aiden Grossman <aidengrossman@google.com> | 2025-10-30 15:40:05 +0000 |
| commit | 23de60b719e5e4cc128c42c187d7d26201ced57e (patch) | |
| tree | 1ad7cab7731169ee4ecad6b11e46ff8a71b94f45 /flang/lib/Parser/parse-tree.cpp | |
| parent | 1b2f3728e537f008cfb6b03bd603ea309194f453 (diff) | |
| parent | d09b50596d27d48d0a0cbf9bfe5f121e85de7313 (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.cpp | 27 |
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 |
