|
12 | 12 | #include "llvm/Frontend/OpenMP/OMP.h" |
13 | 13 |
|
14 | 14 | #include <cassert> |
| 15 | +#include <cctype> |
15 | 16 | #include <memory> |
16 | 17 |
|
17 | 18 | namespace llvm::omp { |
@@ -40,23 +41,24 @@ DirectiveNameParser::consume(const State *Current, StringRef Tok) const { |
40 | 41 | SmallVector<StringRef> DirectiveNameParser::tokenize(StringRef Str) { |
41 | 42 | SmallVector<StringRef> Tokens; |
42 | 43 |
|
43 | | - auto nextChar = [](StringRef N, size_t I) { |
44 | | - while (I < N.size() && N[I] == ' ') |
| 44 | + auto NextChar = [](StringRef N, size_t I) { |
| 45 | + while (I < N.size() && isspace(N[I])) |
45 | 46 | ++I; |
46 | 47 | return I; |
47 | 48 | }; |
48 | | - auto nextSpace = [](StringRef N, size_t I) { |
49 | | - size_t S = N.find(' ', I); |
50 | | - return S != StringRef::npos ? S : N.size(); |
| 49 | + auto NextSpace = [](StringRef N, size_t I) { |
| 50 | + while (I < N.size() && !isspace(N[I])) |
| 51 | + ++I; |
| 52 | + return I; |
51 | 53 | }; |
52 | 54 |
|
53 | | - size_t From = nextChar(Str, 0); |
| 55 | + size_t From = NextChar(Str, 0); |
54 | 56 | size_t To = 0; |
55 | 57 |
|
56 | 58 | while (From != Str.size()) { |
57 | | - To = nextSpace(Str, From); |
| 59 | + To = NextSpace(Str, From); |
58 | 60 | Tokens.push_back(Str.substr(From, To - From)); |
59 | | - From = nextChar(Str, To); |
| 61 | + From = NextChar(Str, To); |
60 | 62 | } |
61 | 63 |
|
62 | 64 | return Tokens; |
|
0 commit comments