diff options
Diffstat (limited to 'llvm/lib/Transforms/Utils/SymbolRewriter.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/SymbolRewriter.cpp | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/llvm/lib/Transforms/Utils/SymbolRewriter.cpp b/llvm/lib/Transforms/Utils/SymbolRewriter.cpp index aacf81d83519..ec4ea848a5d4 100644 --- a/llvm/lib/Transforms/Utils/SymbolRewriter.cpp +++ b/llvm/lib/Transforms/Utils/SymbolRewriter.cpp @@ -117,8 +117,9 @@ public: const std::string Target; ExplicitRewriteDescriptor(StringRef S, StringRef T, const bool Naked) - : RewriteDescriptor(DT), Source(Naked ? StringRef("\01" + S.str()) : S), - Target(T) {} + : RewriteDescriptor(DT), + Source(std::string(Naked ? StringRef("\01" + S.str()) : S)), + Target(std::string(T)) {} bool performOnModule(Module &M) override; @@ -159,7 +160,8 @@ public: const std::string Transform; PatternRewriteDescriptor(StringRef P, StringRef T) - : RewriteDescriptor(DT), Pattern(P), Transform(T) { } + : RewriteDescriptor(DT), Pattern(std::string(P)), + Transform(std::string(T)) {} bool performOnModule(Module &M) override; @@ -189,7 +191,7 @@ performOnModule(Module &M) { continue; if (GlobalObject *GO = dyn_cast<GlobalObject>(&C)) - rewriteComdat(M, GO, C.getName(), Name); + rewriteComdat(M, GO, std::string(C.getName()), Name); if (Value *V = (M.*Get)(Name)) C.setValueName(V->getValueName()); @@ -352,19 +354,19 @@ parseRewriteFunctionDescriptor(yaml::Stream &YS, yaml::ScalarNode *K, if (KeyValue.equals("source")) { std::string Error; - Source = Value->getValue(ValueStorage); + Source = std::string(Value->getValue(ValueStorage)); if (!Regex(Source).isValid(Error)) { YS.printError(Field.getKey(), "invalid regex: " + Error); return false; } } else if (KeyValue.equals("target")) { - Target = Value->getValue(ValueStorage); + Target = std::string(Value->getValue(ValueStorage)); } else if (KeyValue.equals("transform")) { - Transform = Value->getValue(ValueStorage); + Transform = std::string(Value->getValue(ValueStorage)); } else if (KeyValue.equals("naked")) { std::string Undecorated; - Undecorated = Value->getValue(ValueStorage); + Undecorated = std::string(Value->getValue(ValueStorage)); Naked = StringRef(Undecorated).lower() == "true" || Undecorated == "1"; } else { YS.printError(Field.getKey(), "unknown key for function"); @@ -421,15 +423,15 @@ parseRewriteGlobalVariableDescriptor(yaml::Stream &YS, yaml::ScalarNode *K, if (KeyValue.equals("source")) { std::string Error; - Source = Value->getValue(ValueStorage); + Source = std::string(Value->getValue(ValueStorage)); if (!Regex(Source).isValid(Error)) { YS.printError(Field.getKey(), "invalid regex: " + Error); return false; } } else if (KeyValue.equals("target")) { - Target = Value->getValue(ValueStorage); + Target = std::string(Value->getValue(ValueStorage)); } else if (KeyValue.equals("transform")) { - Transform = Value->getValue(ValueStorage); + Transform = std::string(Value->getValue(ValueStorage)); } else { YS.printError(Field.getKey(), "unknown Key for Global Variable"); return false; @@ -484,15 +486,15 @@ parseRewriteGlobalAliasDescriptor(yaml::Stream &YS, yaml::ScalarNode *K, if (KeyValue.equals("source")) { std::string Error; - Source = Value->getValue(ValueStorage); + Source = std::string(Value->getValue(ValueStorage)); if (!Regex(Source).isValid(Error)) { YS.printError(Field.getKey(), "invalid regex: " + Error); return false; } } else if (KeyValue.equals("target")) { - Target = Value->getValue(ValueStorage); + Target = std::string(Value->getValue(ValueStorage)); } else if (KeyValue.equals("transform")) { - Transform = Value->getValue(ValueStorage); + Transform = std::string(Value->getValue(ValueStorage)); } else { YS.printError(Field.getKey(), "unknown key for Global Alias"); return false; |