]> granicus.if.org Git - clang/commitdiff
Handle UsingDecl and UsingShadowDecl in DeclContextPrinter
authorAlex Lorenz <arphaman@gmail.com>
Tue, 3 Jan 2017 12:08:40 +0000 (12:08 +0000)
committerAlex Lorenz <arphaman@gmail.com>
Tue, 3 Jan 2017 12:08:40 +0000 (12:08 +0000)
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@290881 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/ASTConsumers.cpp
test/Coverage/cxx-language-features.inc

index 329f15fbef1f2de10b4cd8bbacf9d13eb5526b61..2bb78b3d306962a92291cceb34d54e5cb4403c3d 100644 (file)
@@ -485,6 +485,14 @@ void DeclContextPrinter::PrintDeclContext(const DeclContext* DC,
       Out << "\n";
       break;
     }
+    case Decl::Using: {
+      Out << "<using> " << *cast<UsingDecl>(I) << "\n";
+      break;
+    }
+    case Decl::UsingShadow: {
+      Out << "<using shadow> " << *cast<UsingShadowDecl>(I) << "\n";
+      break;
+    }
     default:
       Out << "DeclKind: " << DK << '"' << I << "\"\n";
       llvm_unreachable("decl unhandled");
index 18e28e0fabce3635e556d579edd1a7179c9d1d61..0652d6980a93f6004c89f49f1c95e0012afba7c6 100644 (file)
@@ -33,3 +33,11 @@ struct FriendlyStruct {
 };
 
 struct FriendedStruct { };
+
+// Using declaration
+namespace provider {
+  void foo();
+}
+namespace user {
+  using provider::foo;
+}