From: Alex Lorenz Date: Tue, 3 Jan 2017 12:09:39 +0000 (+0000) Subject: Handle EmptyDecl in DeclContextPrinter X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4e71c53f555dd0bc7605420f83e33617430872b8;p=clang Handle EmptyDecl in DeclContextPrinter This commit fixes a crash that occurs when -print-decl-contexts AST consumer tries to print an unhandled declaration. rdar://19467234 Differential Revision: https://reviews.llvm.org/D26964 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@290882 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Frontend/ASTConsumers.cpp b/lib/Frontend/ASTConsumers.cpp index 2bb78b3d30..d30d486b6e 100644 --- a/lib/Frontend/ASTConsumers.cpp +++ b/lib/Frontend/ASTConsumers.cpp @@ -493,6 +493,10 @@ void DeclContextPrinter::PrintDeclContext(const DeclContext* DC, Out << " " << *cast(I) << "\n"; break; } + case Decl::Empty: { + Out << "\n"; + break; + } default: Out << "DeclKind: " << DK << '"' << I << "\"\n"; llvm_unreachable("decl unhandled"); diff --git a/test/Coverage/cxx-language-features.inc b/test/Coverage/cxx-language-features.inc index 0652d6980a..5a2cc2374e 100644 --- a/test/Coverage/cxx-language-features.inc +++ b/test/Coverage/cxx-language-features.inc @@ -41,3 +41,6 @@ namespace provider { namespace user { using provider::foo; } + +// Empty declaration +;