|
@@ -128,9 +128,7 @@ static QualType GetBaseType(QualType T) {
|
|
// FIXME: This should be on the Type class!
|
|
// FIXME: This should be on the Type class!
|
|
QualType BaseType = T;
|
|
QualType BaseType = T;
|
|
while (!BaseType->isSpecifierType()) {
|
|
while (!BaseType->isSpecifierType()) {
|
|
- if (isa<TypedefType>(BaseType))
|
|
|
|
- break;
|
|
|
|
- else if (const PointerType* PTy = BaseType->getAs<PointerType>())
|
|
|
|
|
|
+ if (const PointerType *PTy = BaseType->getAs<PointerType>())
|
|
BaseType = PTy->getPointeeType();
|
|
BaseType = PTy->getPointeeType();
|
|
else if (const BlockPointerType *BPy = BaseType->getAs<BlockPointerType>())
|
|
else if (const BlockPointerType *BPy = BaseType->getAs<BlockPointerType>())
|
|
BaseType = BPy->getPointeeType();
|
|
BaseType = BPy->getPointeeType();
|
|
@@ -144,8 +142,11 @@ static QualType GetBaseType(QualType T) {
|
|
BaseType = RTy->getPointeeType();
|
|
BaseType = RTy->getPointeeType();
|
|
else if (const AutoType *ATy = BaseType->getAs<AutoType>())
|
|
else if (const AutoType *ATy = BaseType->getAs<AutoType>())
|
|
BaseType = ATy->getDeducedType();
|
|
BaseType = ATy->getDeducedType();
|
|
|
|
+ else if (const ParenType *PTy = BaseType->getAs<ParenType>())
|
|
|
|
+ BaseType = PTy->desugar();
|
|
else
|
|
else
|
|
- llvm_unreachable("Unknown declarator!");
|
|
|
|
|
|
+ // This must be a syntax error.
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
return BaseType;
|
|
return BaseType;
|
|
}
|
|
}
|