git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67981 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-03-29 05:01:10 +00:00
Родитель 0eda3b31a6
Коммит 64540d71b4
3 изменённых файлов: 12 добавлений и 11 удалений

Просмотреть файл

@ -1025,7 +1025,7 @@ public:
bool Virtual, AccessSpecifier Access, bool Virtual, AccessSpecifier Access,
TypeTy *basetype, TypeTy *basetype,
SourceLocation BaseLoc) { SourceLocation BaseLoc) {
return 0; return BaseResult();
} }
virtual void ActOnBaseSpecifiers(DeclPtrTy ClassDecl, BaseTy **Bases, virtual void ActOnBaseSpecifiers(DeclPtrTy ClassDecl, BaseTy **Bases,
@ -1440,7 +1440,7 @@ public:
SourceLocation selectorLoc, SourceLocation selectorLoc,
SourceLocation rbrac, SourceLocation rbrac,
ExprTy **ArgExprs, unsigned NumArgs) { ExprTy **ArgExprs, unsigned NumArgs) {
return 0; return ExprResult();
} }
// ActOnInstanceMessage - used for both unary and keyword messages. // ActOnInstanceMessage - used for both unary and keyword messages.
// ArgExprs is optional - if it is present, the number of expressions // ArgExprs is optional - if it is present, the number of expressions
@ -1449,7 +1449,7 @@ public:
ExprTy *receiver, Selector Sel, ExprTy *receiver, Selector Sel,
SourceLocation lbrac, SourceLocation selectorLoc, SourceLocation rbrac, SourceLocation lbrac, SourceLocation selectorLoc, SourceLocation rbrac,
ExprTy **ArgExprs, unsigned NumArgs) { ExprTy **ArgExprs, unsigned NumArgs) {
return 0; return ExprResult();
} }
virtual DeclPtrTy ActOnForwardClassDeclaration( virtual DeclPtrTy ActOnForwardClassDeclaration(
SourceLocation AtClassLoc, SourceLocation AtClassLoc,
@ -1479,7 +1479,7 @@ public:
virtual ExprResult ParseObjCStringLiteral(SourceLocation *AtLocs, virtual ExprResult ParseObjCStringLiteral(SourceLocation *AtLocs,
ExprTy **Strings, ExprTy **Strings,
unsigned NumStrings) { unsigned NumStrings) {
return 0; return ExprResult();
} }
virtual ExprResult ParseObjCEncodeExpression(SourceLocation AtLoc, virtual ExprResult ParseObjCEncodeExpression(SourceLocation AtLoc,
@ -1487,7 +1487,7 @@ public:
SourceLocation LParenLoc, SourceLocation LParenLoc,
TypeTy *Ty, TypeTy *Ty,
SourceLocation RParenLoc) { SourceLocation RParenLoc) {
return 0; return ExprResult();
} }
virtual ExprResult ParseObjCSelectorExpression(Selector Sel, virtual ExprResult ParseObjCSelectorExpression(Selector Sel,
@ -1495,7 +1495,7 @@ public:
SourceLocation SelLoc, SourceLocation SelLoc,
SourceLocation LParenLoc, SourceLocation LParenLoc,
SourceLocation RParenLoc) { SourceLocation RParenLoc) {
return 0; return ExprResult();
} }
virtual ExprResult ParseObjCProtocolExpression(IdentifierInfo *ProtocolId, virtual ExprResult ParseObjCProtocolExpression(IdentifierInfo *ProtocolId,
@ -1503,7 +1503,7 @@ public:
SourceLocation ProtoLoc, SourceLocation ProtoLoc,
SourceLocation LParenLoc, SourceLocation LParenLoc,
SourceLocation RParenLoc) { SourceLocation RParenLoc) {
return 0; return ExprResult();
} }
//===---------------------------- Pragmas -------------------------------===// //===---------------------------- Pragmas -------------------------------===//

Просмотреть файл

@ -760,8 +760,7 @@ namespace {
for (CXXRecordDecl::base_class_const_iterator Base = RD->bases_begin(), for (CXXRecordDecl::base_class_const_iterator Base = RD->bases_begin(),
BaseEnd = RD->bases_end(); Base != BaseEnd; ++Base) { BaseEnd = RD->bases_end(); Base != BaseEnd; ++Base) {
if (const RecordType *RT = Base->getType()->getAsRecordType()) { if (const RecordType *RT = Base->getType()->getAsRecordType()) {
const CXXRecordDecl *BaseDecl const CXXRecordDecl *BaseDecl = cast<CXXRecordDecl>(RT->getDecl());
= cast<CXXRecordDecl>(RT->getDecl());
if (BaseDecl && BaseDecl->isAbstract()) if (BaseDecl && BaseDecl->isAbstract())
Collect(BaseDecl, Methods); Collect(BaseDecl, Methods);
} }

Просмотреть файл

@ -410,8 +410,10 @@ Sema::ExprResult Sema::ActOnClassMessage(
if (TypedefDecl *OCTD = dyn_cast_or_null<TypedefDecl>(IDecl)) { if (TypedefDecl *OCTD = dyn_cast_or_null<TypedefDecl>(IDecl)) {
const ObjCInterfaceType *OCIT; const ObjCInterfaceType *OCIT;
OCIT = OCTD->getUnderlyingType()->getAsObjCInterfaceType(); OCIT = OCTD->getUnderlyingType()->getAsObjCInterfaceType();
if (!OCIT) if (!OCIT) {
return Diag(receiverLoc, diag::err_invalid_receiver_to_message); Diag(receiverLoc, diag::err_invalid_receiver_to_message);
return true;
}
ClassDecl = OCIT->getDecl(); ClassDecl = OCIT->getDecl();
} }
} }