diff options
author | Anders Carlsson <andersca@mac.com> | 2009-04-13 18:02:10 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-04-13 18:02:10 +0000 |
commit | 41aa8c1e40416aad3595567415a5faa021ca8b6c (patch) | |
tree | cddfdaeeaf9421ef392834269cd71ef0fc03b364 /lib/CodeGen/Mangle.cpp | |
parent | 87454161a6377b573d4fc3ff45e7b3ec193e860c (diff) |
Add support for mangling guard variables.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68969 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/Mangle.cpp')
-rw-r--r-- | lib/CodeGen/Mangle.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/CodeGen/Mangle.cpp b/lib/CodeGen/Mangle.cpp index dac9a7c57a..049353faae 100644 --- a/lib/CodeGen/Mangle.cpp +++ b/lib/CodeGen/Mangle.cpp @@ -34,6 +34,7 @@ namespace { : Context(C), Out(os) { } bool mangle(const NamedDecl *D); + void mangleGuardVariable(const VarDecl *D); private: bool mangleFunctionDecl(const FunctionDecl *FD); @@ -124,6 +125,15 @@ bool CXXNameMangler::mangle(const NamedDecl *D) { return false; } +void CXXNameMangler::mangleGuardVariable(const VarDecl *D) +{ + // <special-name> ::= GV <object name> # Guard variable for one-time + // # initialization + + Out << "_ZGV"; + mangleName(D); +} + void CXXNameMangler::mangleFunctionEncoding(const FunctionDecl *FD) { // <encoding> ::= <function name> <bare-function-type> mangleName(FD); @@ -586,5 +596,14 @@ namespace clang { os.flush(); return true; } + + /// mangleGuardVariable - Mangles the m + void mangleGuardVariable(const VarDecl *D, ASTContext &Context, + llvm::raw_ostream &os) { + CXXNameMangler Mangler(Context, os); + Mangler.mangleGuardVariable(D); + + os.flush(); + } } |