From 4822c5fa52bcc581ac54046b1f5f28be6159bb4e Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Mon, 10 Feb 2014 21:25:13 +0000 Subject: Mark the methods in the Mangler const. A const ObjectFile needs to be able to provide its name. For an IRObjectFile, that means being able to call the mangler. Since each IRObjectFile can have a different mangling, it is natural for them to contain a Mangler which is therefore also const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201113 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/Mangler.h | 13 +++++++------ lib/IR/Mangler.cpp | 11 ++++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/include/llvm/IR/Mangler.h b/include/llvm/IR/Mangler.h index 9229dd8446..07f4feda7e 100644 --- a/include/llvm/IR/Mangler.h +++ b/include/llvm/IR/Mangler.h @@ -39,11 +39,11 @@ private: /// they are mangled. This keeps track of the number we give to anonymous /// ones. /// - DenseMap AnonGlobalIDs; + mutable DenseMap AnonGlobalIDs; /// NextAnonGlobalID - This simple counter is used to unique value names. /// - unsigned NextAnonGlobalID; + mutable unsigned NextAnonGlobalID; public: Mangler(const DataLayout *DL) : DL(DL), NextAnonGlobalID(1) {} @@ -51,15 +51,16 @@ public: /// Print the appropriate prefix and the specified global variable's name. /// If the global variable doesn't have a name, this fills in a unique name /// for the global. - void getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV); - void getNameWithPrefix(SmallVectorImpl &OutName, const GlobalValue *GV); + void getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV) const; + void getNameWithPrefix(SmallVectorImpl &OutName, + const GlobalValue *GV) const; /// Print the appropriate prefix and the specified name as the global variable /// name. GVName must not be empty. void getNameWithPrefix(raw_ostream &OS, const Twine &GVName, - ManglerPrefixTy PrefixTy = Mangler::Default); + ManglerPrefixTy PrefixTy = Mangler::Default) const; void getNameWithPrefix(SmallVectorImpl &OutName, const Twine &GVName, - ManglerPrefixTy PrefixTy = Mangler::Default); + ManglerPrefixTy PrefixTy = Mangler::Default) const; }; } // End llvm namespace diff --git a/lib/IR/Mangler.cpp b/lib/IR/Mangler.cpp index bc1362dc80..9c18e6f300 100644 --- a/lib/IR/Mangler.cpp +++ b/lib/IR/Mangler.cpp @@ -44,13 +44,14 @@ static void getNameWithPrefixx(raw_ostream &OS, const Twine &GVName, OS << Name; } -void Mangler::getNameWithPrefix(raw_ostream &OS, - const Twine &GVName, ManglerPrefixTy PrefixTy) { +void Mangler::getNameWithPrefix(raw_ostream &OS, const Twine &GVName, + ManglerPrefixTy PrefixTy) const { return getNameWithPrefixx(OS, GVName, PrefixTy, *DL, false); } void Mangler::getNameWithPrefix(SmallVectorImpl &OutName, - const Twine &GVName, ManglerPrefixTy PrefixTy) { + const Twine &GVName, + ManglerPrefixTy PrefixTy) const { raw_svector_ostream OS(OutName); return getNameWithPrefix(OS, GVName, PrefixTy); } @@ -75,7 +76,7 @@ static void AddFastCallStdCallSuffix(raw_ostream &OS, const Function *F, OS << '@' << ArgWords; } -void Mangler::getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV) { +void Mangler::getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV) const { ManglerPrefixTy PrefixTy = Mangler::Default; if (GV->hasPrivateLinkage()) PrefixTy = Mangler::Private; @@ -133,7 +134,7 @@ void Mangler::getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV) { } void Mangler::getNameWithPrefix(SmallVectorImpl &OutName, - const GlobalValue *GV) { + const GlobalValue *GV) const { raw_svector_ostream OS(OutName); getNameWithPrefix(OS, GV); } -- cgit v1.2.3