From: Adam Nemet Date: Tue, 19 Apr 2016 22:17:45 +0000 (+0000) Subject: [Parse] Use StringSwitch to improve readability. NFC X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=01c891b6762ad2a6eb80770cf108ad42f098139b;p=clang [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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@266827 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Parse/ParsePragma.cpp b/lib/Parse/ParsePragma.cpp index 09c5d49a6a..3a997c818c 100644 --- a/lib/Parse/ParsePragma.cpp +++ b/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(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;