Changeset View
Changeset View
Standalone View
Standalone View
lib/CodeGen/MIRParser/MIParser.cpp
Show First 20 Lines • Show All 1,848 Lines • ▼ Show 20 Lines | bool MIParser::parseDIExpression(MDNode *&Expr) { | ||||
if (Token.isNot(MIToken::rparen)) { | if (Token.isNot(MIToken::rparen)) { | ||||
do { | do { | ||||
if (Token.is(MIToken::Identifier)) { | if (Token.is(MIToken::Identifier)) { | ||||
if (unsigned Op = dwarf::getOperationEncoding(Token.stringValue())) { | if (unsigned Op = dwarf::getOperationEncoding(Token.stringValue())) { | ||||
lex(); | lex(); | ||||
Elements.push_back(Op); | Elements.push_back(Op); | ||||
continue; | continue; | ||||
} | } | ||||
if (unsigned Enc = dwarf::getAttributeEncoding(Token.stringValue())) { | |||||
lex(); | |||||
Elements.push_back(Enc); | |||||
continue; | |||||
} | |||||
return error(Twine("invalid DWARF op '") + Token.stringValue() + "'"); | return error(Twine("invalid DWARF op '") + Token.stringValue() + "'"); | ||||
} | } | ||||
if (Token.isNot(MIToken::IntegerLiteral) || | if (Token.isNot(MIToken::IntegerLiteral) || | ||||
Token.integerValue().isSigned()) | Token.integerValue().isSigned()) | ||||
return error("expected unsigned integer"); | return error("expected unsigned integer"); | ||||
auto &U = Token.integerValue(); | auto &U = Token.integerValue(); | ||||
▲ Show 20 Lines • Show All 1,169 Lines • Show Last 20 Lines |