Index: clang/lib/Parse/ParsePragma.cpp =================================================================== --- clang/lib/Parse/ParsePragma.cpp +++ clang/lib/Parse/ParsePragma.cpp @@ -4041,7 +4041,6 @@ PP.Lex(Tok); II = Tok.getIdentifierInfo(); - StringRef IntrinsicClass = II->getName(); if (!II || !(II->isStr("vector") || II->isStr("sifive_vector"))) { PP.Diag(Tok.getLocation(), diag::warn_pragma_invalid_argument) << PP.getSpelling(Tok) << "riscv" << /*Expected=*/true @@ -4049,15 +4048,15 @@ return; } + if (II->isStr("vector")) + Actions.DeclareRISCVVBuiltins = true; + else if (II->isStr("sifive_vector")) + Actions.DeclareRISCVVectorBuiltins = true; + PP.Lex(Tok); if (Tok.isNot(tok::eod)) { PP.Diag(Tok.getLocation(), diag::warn_pragma_extra_tokens_at_eol) << "clang riscv intrinsic"; return; } - - if (IntrinsicClass == "vector") - Actions.DeclareRISCVVBuiltins = true; - else if (IntrinsicClass == "sifive_vector") - Actions.DeclareRISCVVectorBuiltins = true; }