diff --git a/include/llvm/IR/Mangler.h b/include/llvm/IR/Mangler.h index 9229dd8446c..07f4feda7e8 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 bc1362dc80b..9c18e6f3001 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); }