Fix crasher in ASTContext::getObjCEncodingForMethodDecl().

This was exposed as a result of something else that was recently fixed.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69004 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Steve Naroff 2009-04-14 00:03:58 +00:00
Родитель 1028bc67d5
Коммит ab76d45e02
2 изменённых файлов: 17 добавлений и 5 удалений

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

@ -2081,11 +2081,13 @@ void ASTContext::getObjCEncodingForMethodDecl(const ObjCMethodDecl *Decl,
ParmVarDecl *PVDecl = *PI;
QualType PType = PVDecl->getOriginalType();
if (const ArrayType *AT =
dyn_cast<ArrayType>(PType->getCanonicalTypeInternal()))
// Use array's original type only if it has known number of
// elements.
if (!dyn_cast<ConstantArrayType>(AT))
PType = PVDecl->getType();
dyn_cast<ArrayType>(PType->getCanonicalTypeInternal())) {
// Use array's original type only if it has known number of
// elements.
if (!dyn_cast<ConstantArrayType>(AT))
PType = PVDecl->getType();
} else if (PType->isFunctionType())
PType = PVDecl->getType();
// Process argument qualifiers for user supplied arguments; such as,
// 'in', 'inout', etc.
getObjCEncodingForTypeQualifier(PVDecl->getObjCDeclQualifier(), S);

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

@ -0,0 +1,10 @@
// RUN: clang-cc %s -emit-llvm
@interface I0 @end
@implementation I0
- (void) im0: (int (void)) a0 {
}
@end
void func(int pf(void)) {
}