From 2d680824e3a5272e386aa6c1d2a66676de7899fd Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 25 Jul 2013 02:50:08 +0000 Subject: [PATCH] Make these methods const correct. Thanks to Nick Lewycky for noticing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187098 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/Module.h | 13 ++++++++++--- lib/IR/Module.cpp | 3 +-- lib/Transforms/IPO/GlobalOpt.cpp | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/include/llvm/IR/Module.h b/include/llvm/IR/Module.h index 2514be4faa3..3dbc5ffde74 100644 --- a/include/llvm/IR/Module.h +++ b/include/llvm/IR/Module.h @@ -352,15 +352,22 @@ public: /// symbol table. If it does not exist, return null. If AllowInternal is set /// to true, this function will return types that have InternalLinkage. By /// default, these types are not returned. - GlobalVariable *getGlobalVariable(StringRef Name, - bool AllowInternal = false) const; + const GlobalVariable *getGlobalVariable(StringRef Name, + bool AllowInternal = false) const { + return const_cast(this)->getGlobalVariable(Name, AllowInternal); + } + + GlobalVariable *getGlobalVariable(StringRef Name, bool AllowInternal = false); /// getNamedGlobal - Return the global variable in the module with the /// specified name, of arbitrary type. This method returns null if a global /// with the specified name is not found. - GlobalVariable *getNamedGlobal(StringRef Name) const { + GlobalVariable *getNamedGlobal(StringRef Name) { return getGlobalVariable(Name, true); } + const GlobalVariable *getNamedGlobal(StringRef Name) const { + return const_cast(this)->getNamedGlobal(Name); + } /// getOrInsertGlobal - Look up the specified global in the module symbol /// table. diff --git a/lib/IR/Module.cpp b/lib/IR/Module.cpp index 3d3dc737a1b..968b8f4b904 100644 --- a/lib/IR/Module.cpp +++ b/lib/IR/Module.cpp @@ -233,8 +233,7 @@ Function *Module::getFunction(StringRef Name) const { /// If AllowLocal is set to true, this function will return types that /// have an local. By default, these types are not returned. /// -GlobalVariable *Module::getGlobalVariable(StringRef Name, - bool AllowLocal) const { +GlobalVariable *Module::getGlobalVariable(StringRef Name, bool AllowLocal) { if (GlobalVariable *Result = dyn_cast_or_null(getNamedValue(Name))) if (AllowLocal || !Result->hasLocalLinkage()) diff --git a/lib/Transforms/IPO/GlobalOpt.cpp b/lib/Transforms/IPO/GlobalOpt.cpp index 183a599bc12..6250cc5ec45 100644 --- a/lib/Transforms/IPO/GlobalOpt.cpp +++ b/lib/Transforms/IPO/GlobalOpt.cpp @@ -3043,7 +3043,7 @@ bool GlobalOpt::OptimizeGlobalCtorsList(GlobalVariable *&GCL) { /// \brief Given "llvm.used" or "llvm.compiler.used" as a global name, collect /// the initializer elements of that global in Set and return the global itself. static GlobalVariable * -collectUsedGlobalVariables(const Module &M, const char *Name, +collectUsedGlobalVariables(Module &M, const char *Name, SmallPtrSet &Set) { GlobalVariable *GV = M.getGlobalVariable(Name); if (!GV || !GV->hasInitializer()) @@ -3106,7 +3106,7 @@ class LLVMUsed { GlobalVariable *CompilerUsedV; public: - LLVMUsed(const Module &M) { + LLVMUsed(Module &M) { UsedV = collectUsedGlobalVariables(M, "llvm.used", Used); CompilerUsedV = collectUsedGlobalVariables(M, "llvm.compiler.used", CompilerUsed);