summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParsePragma.cpp
diff options
context:
space:
mode:
authorAdam Nemet <anemet@apple.com>2016-04-19 22:17:45 +0000
committerAdam Nemet <anemet@apple.com>2016-04-19 22:17:45 +0000
commit50de4e8346e393fa5385590bf931278e928aac82 (patch)
tree62c25b335962f9cb8672d1a1024796865689f453 /clang/lib/Parse/ParsePragma.cpp
parentb48275f134a691514a4703ead26c8498a91ba64a (diff)
downloadbcm5719-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.cpp12
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;
OpenPOWER on IntegriCloud