Index: clang/lib/AST/DeclPrinter.cpp =================================================================== --- clang/lib/AST/DeclPrinter.cpp +++ clang/lib/AST/DeclPrinter.cpp @@ -144,6 +144,8 @@ BaseType = RTy->getPointeeType(); else if (const AutoType *ATy = BaseType->getAs()) BaseType = ATy->getDeducedType(); + else if (isa(BaseType)) + break; else llvm_unreachable("Unknown declarator!"); } Index: clang/test/Sema/ast-print-cxx.cpp =================================================================== --- /dev/null +++ clang/test/Sema/ast-print-cxx.cpp @@ -0,0 +1,6 @@ +// RUN: %clang_cc1 -std=c++11 %s -ast-print | FileCheck %s +// RUN: %clang_cc1 -std=c++11 %s -ast-print \ +// RUN: | %clang_cc1 -std=c++11 -x c++ -fsyntax-only - + +// CHECK: typedef decltype(nullptr) nullptr_t; +typedef decltype(nullptr) nullptr_t;