diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-04-14 02:08:49 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-04-14 02:08:49 +0000 |
commit | b286a78c8cce4592306dae6abc3656daf6379c77 (patch) | |
tree | 6fb7e49a8b22fa476676d7362591b8241ae0cd99 | |
parent | f33651c2d79d47d8d05908185613fe33a3e18d89 (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.h | 7 | ||||
-rw-r--r-- | lib/AST/Decl.cpp | 14 |
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, |