r290886 - Handle VarTemplateDecl in DeclContextPrinter

Alex Lorenz via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 3 04:14:59 PST 2017


Author: arphaman
Date: Tue Jan  3 06:14:59 2017
New Revision: 290886

URL: http://llvm.org/viewvc/llvm-project?rev=290886&view=rev
Log:
Handle VarTemplateDecl 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

Modified:
    cfe/trunk/lib/Frontend/ASTConsumers.cpp
    cfe/trunk/test/Coverage/ast-printing.cpp
    cfe/trunk/test/Coverage/cxx-language-features.inc

Modified: cfe/trunk/lib/Frontend/ASTConsumers.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTConsumers.cpp?rev=290886&r1=290885&r2=290886&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/ASTConsumers.cpp (original)
+++ cfe/trunk/lib/Frontend/ASTConsumers.cpp Tue Jan  3 06:14:59 2017
@@ -522,6 +522,10 @@ void DeclContextPrinter::PrintDeclContex
       Out << "<access specifier>\n";
       break;
     }
+    case Decl::VarTemplate: {
+      Out << "<var template> " << *cast<VarTemplateDecl>(I) << "\n";
+      break;
+    }
     default:
       Out << "DeclKind: " << DK << '"' << I << "\"\n";
       llvm_unreachable("decl unhandled");

Modified: cfe/trunk/test/Coverage/ast-printing.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Coverage/ast-printing.cpp?rev=290886&r1=290885&r2=290886&view=diff
==============================================================================
--- cfe/trunk/test/Coverage/ast-printing.cpp (original)
+++ cfe/trunk/test/Coverage/ast-printing.cpp Tue Jan  3 06:14:59 2017
@@ -1,9 +1,9 @@
-// RUN: %clang_cc1 -fsyntax-only %s
-// RUN: %clang_cc1 -ast-print %s -o %t.1.cpp
-// RUN: %clang_cc1 -ast-print %t.1.cpp -o %t.2.cpp
+// RUN: %clang_cc1 -std=c++14 -fsyntax-only %s
+// RUN: %clang_cc1 -std=c++14 -ast-print %s -o %t.1.cpp
+// RUN: %clang_cc1 -std=c++14 -ast-print %t.1.cpp -o %t.2.cpp
 // RUN: diff %t.1.cpp %t.2.cpp
-// RUN: %clang_cc1 -ast-dump %s
-// RUN: %clang_cc1 -print-decl-contexts %s
-// RUN: %clang_cc1 -fdump-record-layouts %s
+// RUN: %clang_cc1 -std=c++14 -ast-dump %s
+// RUN: %clang_cc1 -std=c++14 -print-decl-contexts %s
+// RUN: %clang_cc1 -std=c++14 -fdump-record-layouts %s
 
 #include "cxx-language-features.inc"

Modified: cfe/trunk/test/Coverage/cxx-language-features.inc
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Coverage/cxx-language-features.inc?rev=290886&r1=290885&r2=290886&view=diff
==============================================================================
--- cfe/trunk/test/Coverage/cxx-language-features.inc (original)
+++ cfe/trunk/test/Coverage/cxx-language-features.inc Tue Jan  3 06:14:59 2017
@@ -60,3 +60,6 @@ struct ClassTemplatePartialSpecializatio
 struct AccessSpec {
 private:
 };
+
+// Variable template
+template <typename T> T varTemplate = 0;




More information about the cfe-commits mailing list