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

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

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

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

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