diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-11-07 16:02:25 +0000 | 
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-11-07 16:02:25 +0000 | 
| commit | f5fbe436bc8ab1f3373deda47300fa8c080a2f9f (patch) | |
| tree | d9f95a13d7564eb9817b96833369b4cfd0be4a13 /clang/lib/Driver | |
| parent | 76c2e32a8ee74b9c8aea9090f855c39385e11643 (diff) | |
| download | bcm5719-llvm-f5fbe436bc8ab1f3373deda47300fa8c080a2f9f.tar.gz bcm5719-llvm-f5fbe436bc8ab1f3373deda47300fa8c080a2f9f.zip | |
Fix an unsafe use of Twine.
llvm-svn: 143962
Diffstat (limited to 'clang/lib/Driver')
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 9 | 
1 files changed, 4 insertions, 5 deletions
| diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 88d1e5210ac..64b538d1452 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -157,15 +157,14 @@ static void addProfileRT(const ToolChain &TC, const ArgList &Args,    // the link line. We cannot do the same thing because unlike gcov there is a    // libprofile_rt.so. We used to use the -l:libprofile_rt.a syntax, but that is    // not supported by old linkers. -  Twine ProfileRT = -    Twine(TC.getDriver().Dir) + "/../lib/" + "libprofile_rt.a"; +  std::string ProfileRT = +    std::string(TC.getDriver().Dir) + "/../lib/libprofile_rt.a";    if (Triple.isOSDarwin()) {      // On Darwin, if the static library doesn't exist try the dylib.      bool Exists; -    if (llvm::sys::fs::exists(ProfileRT.str(), Exists) || !Exists) -      ProfileRT = -        Twine(TC.getDriver().Dir) + "/../lib/" + "libprofile_rt.dylib"; +    if (llvm::sys::fs::exists(ProfileRT, Exists) || !Exists) +      ProfileRT.replace(ProfileRT.size() - 1, 1, "dylib");    }    CmdArgs.push_back(Args.MakeArgString(ProfileRT)); | 

