summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-04-14 02:08:49 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-04-14 02:08:49 +0000
commitb76b745707fd86a94372b9d983cfda4f2399366c (patch)
tree69df6a089938a0b2c0e38b45634eb05b7ae98809
parentb866ce73b2cd0ab013513309fd34825d9f3a2cbd (diff)
downloadbcm5719-llvm-b76b745707fd86a94372b9d983cfda4f2399366c.tar.gz
bcm5719-llvm-b76b745707fd86a94372b9d983cfda4f2399366c.zip
Add VarDecl::getStorageClassSpecifierString (StorageClass -> const char*).
- No functionality change. llvm-svn: 69019
-rw-r--r--clang/include/clang/AST/Decl.h7
-rw-r--r--clang/lib/AST/Decl.cpp14
2 files changed, 21 insertions, 0 deletions
diff --git a/clang/include/clang/AST/Decl.h b/clang/include/clang/AST/Decl.h
index 83de9470884..fd6e210104f 100644
--- a/clang/include/clang/AST/Decl.h
+++ b/clang/include/clang/AST/Decl.h
@@ -221,6 +221,13 @@ public:
enum StorageClass {
None, Auto, Register, Extern, Static, PrivateExtern
};
+
+ /// getStorageClassSpecifierString - Return the string used to
+ /// specify the storage class \arg SC.
+ ///
+ /// It is illegal to call this function with SC == None.
+ static const char *getStorageClassSpecifierString(StorageClass SC);
+
private:
Stmt *Init;
// FIXME: This can be packed into the bitfields in Decl.
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp
index f0d32c75de6..d733c8c929f 100644
--- a/clang/lib/AST/Decl.cpp
+++ b/clang/lib/AST/Decl.cpp
@@ -60,6 +60,20 @@ ImplicitParamDecl *ImplicitParamDecl::Create(ASTContext &C, DeclContext *DC,
return new (C) ImplicitParamDecl(ImplicitParam, DC, L, Id, T);
}
+const char *VarDecl::getStorageClassSpecifierString(StorageClass SC) {
+ switch (SC) {
+ case VarDecl::None: break;
+ case VarDecl::Auto: return "auto"; break;
+ case VarDecl::Extern: return "extern"; break;
+ case VarDecl::PrivateExtern: return "__private_extern__"; break;
+ case VarDecl::Register: return "register"; break;
+ case VarDecl::Static: return "static"; break;
+ }
+
+ assert(0 && "Invalid storage class");
+ return 0;
+}
+
ParmVarDecl *ParmVarDecl::Create(ASTContext &C, DeclContext *DC,
SourceLocation L, IdentifierInfo *Id,
QualType T, StorageClass S,
OpenPOWER on IntegriCloud