summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/StmtDumper.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-04-14 02:25:56 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-04-14 02:25:56 +0000
commit0ca16601290fa748148bc9cba4b63fb07157ea2d (patch)
tree162e3061e09aed5495675f5b58882eecb08ea4d9 /clang/lib/AST/StmtDumper.cpp
parentb76b745707fd86a94372b9d983cfda4f2399366c (diff)
downloadbcm5719-llvm-0ca16601290fa748148bc9cba4b63fb07157ea2d.tar.gz
bcm5719-llvm-0ca16601290fa748148bc9cba4b63fb07157ea2d.zip
Audit __private_extern__ handling.
- Exposed quite a few Sema issues and a CodeGen crash. - See FIXMEs in test case, and in SemaDecl.cpp (PR3983). I'm skeptical that __private_extern__ should actually be a storage class value. I think that __private_extern__ basically amounts to extern A __attribute__((visibility("hidden"))) and would be better off handled (a) as that, or (b) with an extra bit in the VarDecl. llvm-svn: 69020
Diffstat (limited to 'clang/lib/AST/StmtDumper.cpp')
-rw-r--r--clang/lib/AST/StmtDumper.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/clang/lib/AST/StmtDumper.cpp b/clang/lib/AST/StmtDumper.cpp
index fa3b40cebcd..821eb55c728 100644
--- a/clang/lib/AST/StmtDumper.cpp
+++ b/clang/lib/AST/StmtDumper.cpp
@@ -217,14 +217,9 @@ void StmtDumper::DumpDeclarator(Decl *D) {
fprintf(F, "\"");
// Emit storage class for vardecls.
if (VarDecl *V = dyn_cast<VarDecl>(VD)) {
- switch (V->getStorageClass()) {
- default: assert(0 && "Unknown storage class!");
- case VarDecl::None: break;
- case VarDecl::Extern: fprintf(F, "extern "); break;
- case VarDecl::Static: fprintf(F, "static "); break;
- case VarDecl::Auto: fprintf(F, "auto "); break;
- case VarDecl::Register: fprintf(F, "register "); break;
- }
+ if (V->getStorageClass() != VarDecl::None)
+ fprintf(F, "%s ",
+ VarDecl::getStorageClassSpecifierString(V->getStorageClass()));
}
std::string Name = VD->getNameAsString();
OpenPOWER on IntegriCloud