зеркало из https://github.com/microsoft/clang-1.git
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:
Родитель
1028bc67d5
Коммит
ab76d45e02
|
@ -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)) {
|
||||
}
|
Загрузка…
Ссылка в новой задаче