Fix problem dumping/printing method names with null selector.
llvm-svn: 43039
This commit is contained in:
parent
4bef462a3e
commit
81ccd88f0e
|
|
@ -416,7 +416,10 @@ void StmtDumper::VisitObjCSelectorExpr(ObjCSelectorExpr *Node) {
|
|||
fprintf(F, "%s", selector.getIdentifierInfoForSlot(0)->getName());
|
||||
else {
|
||||
for (unsigned i = 0, e = Node->getNumArgs(); i != e; ++i)
|
||||
fprintf(F, "%s:", selector.getIdentifierInfoForSlot(i)->getName());
|
||||
if (selector.getIdentifierInfoForSlot(i))
|
||||
fprintf(F, "%s:", selector.getIdentifierInfoForSlot(i)->getName());
|
||||
else
|
||||
fprintf(F, ":");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -627,7 +627,10 @@ void StmtPrinter::VisitObjCSelectorExpr(ObjCSelectorExpr *Node) {
|
|||
OS << " " << selector.getIdentifierInfoForSlot(0)->getName();
|
||||
else {
|
||||
for (unsigned i = 0, e = Node->getNumArgs(); i != e; ++i)
|
||||
OS << selector.getIdentifierInfoForSlot(i)->getName() << ":";
|
||||
if (selector.getIdentifierInfoForSlot(i))
|
||||
OS << selector.getIdentifierInfoForSlot(i)->getName() << ":";
|
||||
else
|
||||
OS << ":";
|
||||
}
|
||||
OS << ")";
|
||||
}
|
||||
|
|
@ -642,7 +645,10 @@ void StmtPrinter::VisitObjCMessageExpr(ObjCMessageExpr *Mess) {
|
|||
OS << " " << selector.getIdentifierInfoForSlot(0)->getName();
|
||||
} else {
|
||||
for (unsigned i = 0, e = Mess->getNumArgs(); i != e; ++i) {
|
||||
OS << " " << selector.getIdentifierInfoForSlot(i)->getName() << ":";
|
||||
if (selector.getIdentifierInfoForSlot(i))
|
||||
OS << selector.getIdentifierInfoForSlot(i)->getName() << ":";
|
||||
else
|
||||
OS << ":";
|
||||
PrintExpr(Mess->getArg(i));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1327,8 +1327,6 @@ Parser::ExprResult Parser::ParseObjCSelectorExpression()
|
|||
Diag(Tok, diag::err_expected_ident); // missing selector name.
|
||||
return 0;
|
||||
}
|
||||
if (!SelIdent)
|
||||
SelIdent = &PP.getIdentifierTable().get("");
|
||||
KeyIdents.push_back(SelIdent);
|
||||
if (Tok.isNot(tok::r_paren))
|
||||
while (1) {
|
||||
|
|
@ -1342,8 +1340,6 @@ Parser::ExprResult Parser::ParseObjCSelectorExpression()
|
|||
// Check for another keyword selector.
|
||||
SourceLocation Loc;
|
||||
SelIdent = ParseObjCSelector(Loc);
|
||||
if (!SelIdent)
|
||||
SelIdent = &PP.getIdentifierTable().get("");
|
||||
KeyIdents.push_back(SelIdent);
|
||||
if (!SelIdent && Tok.isNot(tok::colon))
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in New Issue