aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/AST/StmtPrinter.cpp5
-rw-r--r--lib/AST/Type.cpp10
2 files changed, 15 insertions, 0 deletions
diff --git a/lib/AST/StmtPrinter.cpp b/lib/AST/StmtPrinter.cpp
index a427147472..113cbb48dd 100644
--- a/lib/AST/StmtPrinter.cpp
+++ b/lib/AST/StmtPrinter.cpp
@@ -255,6 +255,11 @@ void StmtPrinter::PrintRawDeclStmt(DeclStmt *S) {
if (TD)
++Begin;
+ if (Begin == End) {
+ PrintRawDecl(TD);
+ return;
+ }
+
if (isa<TypedefDecl>(*Begin))
OS << "typedef ";
else if (VarDecl *V = dyn_cast<VarDecl>(*Begin)) {
diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp
index e63e12b3d6..f7eb41c28b 100644
--- a/lib/AST/Type.cpp
+++ b/lib/AST/Type.cpp
@@ -903,6 +903,16 @@ bool Type::isSpecifierType() const {
case Record:
case Enum:
case Typedef:
+ case Complex:
+ case TypeOfExpr:
+ case TypeOf:
+ case TemplateTypeParm:
+ case TemplateSpecialization:
+ case QualifiedName:
+ case Typename:
+ case ObjCInterface:
+ case ObjCQualifiedInterface:
+ case ObjCQualifiedId:
return true;
default:
return false;