diff options
author | Adam Nemet <anemet@apple.com> | 2016-04-19 22:17:45 +0000 |
---|---|---|
committer | Adam Nemet <anemet@apple.com> | 2016-04-19 22:17:45 +0000 |
commit | 50de4e8346e393fa5385590bf931278e928aac82 (patch) | |
tree | 62c25b335962f9cb8672d1a1024796865689f453 /clang/lib/Parse/ParsePragma.cpp | |
parent | b48275f134a691514a4703ead26c8498a91ba64a (diff) | |
download | bcm5719-llvm-50de4e8346e393fa5385590bf931278e928aac82.tar.gz bcm5719-llvm-50de4e8346e393fa5385590bf931278e928aac82.zip |
[Parse] Use StringSwitch to improve readability. NFC
A subsequent patch will propose a "distribute" loop hint. Similarly to
unroll, this does not have a "assume_safety" argument either so this
condition will get more complex.
llvm-svn: 266827
Diffstat (limited to 'clang/lib/Parse/ParsePragma.cpp')
-rw-r--r-- | clang/lib/Parse/ParsePragma.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp index 09c5d49a6ae..3a997c818cf 100644 --- a/clang/lib/Parse/ParsePragma.cpp +++ b/clang/lib/Parse/ParsePragma.cpp @@ -841,10 +841,14 @@ bool Parser::HandlePragmaLoopHint(LoopHint &Hint) { ConsumeToken(); // The annotation token. SourceLocation StateLoc = Toks[0].getLocation(); IdentifierInfo *StateInfo = Toks[0].getIdentifierInfo(); - if (!StateInfo || - (!StateInfo->isStr("enable") && !StateInfo->isStr("disable") && - ((OptionUnroll && !StateInfo->isStr("full")) || - (!OptionUnroll && !StateInfo->isStr("assume_safety"))))) { + + bool Valid = StateInfo && + llvm::StringSwitch<bool>(StateInfo->getName()) + .Cases("enable", "disable", true) + .Case("full", OptionUnroll) + .Case("assume_safety", !OptionUnroll) + .Default(false); + if (!Valid) { Diag(Toks[0].getLocation(), diag::err_pragma_invalid_keyword) << /*FullKeyword=*/OptionUnroll; return false; |