aboutsummaryrefslogtreecommitdiff
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
commitb286a78c8cce4592306dae6abc3656daf6379c77 (patch)
tree6fb7e49a8b22fa476676d7362591b8241ae0cd99
parentf33651c2d79d47d8d05908185613fe33a3e18d89 (diff)
Add VarDecl::getStorageClassSpecifierString (StorageClass -> const char*).
- No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69019 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/AST/Decl.h7
-rw-r--r--lib/AST/Decl.cpp14
2 files changed, 21 insertions, 0 deletions
diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h
index 83de947088..fd6e210104 100644
--- a/include/clang/AST/Decl.h
+++ b/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/lib/AST/Decl.cpp b/lib/AST/Decl.cpp
index f0d32c75de..d733c8c929 100644
--- a/lib/AST/Decl.cpp
+++ b/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,