diff options
Diffstat (limited to 'lib/AsmParser')
-rw-r--r-- | lib/AsmParser/LLLexer.cpp | 2 | ||||
-rw-r--r-- | lib/AsmParser/LLParser.cpp | 5 | ||||
-rw-r--r-- | lib/AsmParser/LLToken.h | 3 |
3 files changed, 10 insertions, 0 deletions
diff --git a/lib/AsmParser/LLLexer.cpp b/lib/AsmParser/LLLexer.cpp index 857fa1ef62..da26cb8210 100644 --- a/lib/AsmParser/LLLexer.cpp +++ b/lib/AsmParser/LLLexer.cpp @@ -587,6 +587,8 @@ lltok::Kind LLLexer::LexIdentifier() { KEYWORD(x); KEYWORD(blockaddress); + + KEYWORD(landingpad); #undef KEYWORD // Keywords for types. diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp index 0c3237a679..afd10a0826 100644 --- a/lib/AsmParser/LLParser.cpp +++ b/lib/AsmParser/LLParser.cpp @@ -2918,6 +2918,11 @@ bool LLParser::ParseBasicBlock(PerFunctionState &PFS) { BasicBlock *BB = PFS.DefineBB(Name, NameLoc); if (BB == 0) return true; + if (Lex.getKind() == lltok::kw_landingpad) { + BB->setIsLandingPad(); + Lex.Lex(); + } + std::string NameStr; // Parse the instructions in this block until we get a terminator. diff --git a/lib/AsmParser/LLToken.h b/lib/AsmParser/LLToken.h index 576da191ae..53cf8d87f3 100644 --- a/lib/AsmParser/LLToken.h +++ b/lib/AsmParser/LLToken.h @@ -125,6 +125,9 @@ namespace lltok { kw_extractelement, kw_insertelement, kw_shufflevector, kw_getresult, kw_extractvalue, kw_insertvalue, kw_blockaddress, + // Basic block attribute. + kw_landingpad, + // Unsigned Valued tokens (UIntVal). GlobalID, // @42 LocalVarID, // %42 |