[cfe-commits] [PATCH] Remove several .c_str() to be forward-compatible with StringRef (issue161053)

Daniel Dunbar daniel at zuster.org
Mon Dec 7 16:50:43 PST 2009


LGTM.

 - Daniel

On Mon, Dec 7, 2009 at 2:42 PM,  <jyasskin at gmail.com> wrote:
> Reviewers: ,
>
> Message:
> This patch is fairly trivial, but it changes the Driver interface, so I
> figured I'd run it by the list before committing.
>
> Description:
> I have a change to make several Path methods return StringRef instead of
> string. This patch fixes the resulting breakage, but still compiles
> without the Path change.
>
> Please review this at http://codereview.appspot.com/161053
>
> Affected files:
>   M     include/clang/Driver/Driver.h
>   M     lib/CodeGen/CGDebugInfo.cpp
>   M     lib/Driver/Driver.cpp
>   M     lib/Frontend/ASTUnit.cpp
>   M     tools/driver/driver.cpp
>
>
> Index: include/clang/Driver/Driver.h
> ===================================================================
> --- include/clang/Driver/Driver.h       (revision 90805)
> +++ include/clang/Driver/Driver.h       (working copy)
> @@ -15,6 +15,7 @@
>  #include "clang/Driver/Phases.h"
>  #include "clang/Driver/Util.h"
>
> +#include "llvm/ADT/StringRef.h"
>  #include "llvm/ADT/Triple.h"
>  #include "llvm/System/Path.h" // FIXME: Kill when CompilationInfo
>                                // lands.
> @@ -112,9 +113,9 @@
>    std::list<std::string> ResultFiles;
>
>  public:
> -  Driver(const char *_Name, const char *_Dir,
> -         const char *_DefaultHostTriple,
> -         const char *_DefaultImageName,
> +  Driver(llvm::StringRef _Name, llvm::StringRef _Dir,
> +         llvm::StringRef _DefaultHostTriple,
> +         llvm::StringRef _DefaultImageName,
>           bool IsProduction, Diagnostic &_Diags);
>    ~Driver();
>
> Index: tools/driver/driver.cpp
> ===================================================================
> --- tools/driver/driver.cpp     (revision 90805)
> +++ tools/driver/driver.cpp     (working copy)
> @@ -212,8 +212,8 @@
>  #else
>    bool IsProduction = false;
>  #endif
> -  Driver TheDriver(Path.getBasename().c_str(), Path.getDirname().c_str(),
> -                   llvm::sys::getHostTriple().c_str(),
> +  Driver TheDriver(Path.getBasename(), Path.getDirname(),
> +                   llvm::sys::getHostTriple(),
>                     "a.out", IsProduction, Diags);
>
>    // Check for ".*++" or ".*++-[^-]*" to determine if we are a C++
> Index: lib/Frontend/ASTUnit.cpp
> ===================================================================
> --- lib/Frontend/ASTUnit.cpp    (revision 90805)
> +++ lib/Frontend/ASTUnit.cpp    (working copy)
> @@ -300,8 +300,8 @@
>    Args.push_back("-fsyntax-only");
>
>    llvm::sys::Path Path = llvm::sys::Path::GetMainExecutable(Argv0,
> MainAddr);
> -  driver::Driver
> TheDriver(Path.getBasename().c_str(),Path.getDirname().c_str(),
> -                           llvm::sys::getHostTriple().c_str(),
> +  driver::Driver TheDriver(Path.getBasename(), Path.getDirname(),
> +                           llvm::sys::getHostTriple(),
>                             "a.out", false, Diags);
>    llvm::OwningPtr<driver::Compilation> C(
>      TheDriver.BuildCompilation(Args.size(), Args.data()));
> Index: lib/CodeGen/CGDebugInfo.cpp
> ===================================================================
> --- lib/CodeGen/CGDebugInfo.cpp (revision 90805)
> +++ lib/CodeGen/CGDebugInfo.cpp (working copy)
> @@ -137,8 +137,8 @@
>
>    // Create new compile unit.
>    return Unit = DebugFactory.CreateCompileUnit(LangTag,
> -
> AbsFileName.getLast().c_str(),
> -
> AbsFileName.getDirname().c_str(),
> +                                               AbsFileName.getLast(),
> +                                               AbsFileName.getDirname(),
>                                                 Producer.c_str(), isMain,
>                                                 isOptimized, Flags,
> RuntimeVers);
>  }
> Index: lib/Driver/Driver.cpp
> ===================================================================
> --- lib/Driver/Driver.cpp       (revision 90805)
> +++ lib/Driver/Driver.cpp       (working copy)
> @@ -41,9 +41,9 @@
>  // Used to set values for "production" clang, for releases.
>  // #define USE_PRODUCTION_CLANG
>
> -Driver::Driver(const char *_Name, const char *_Dir,
> -               const char *_DefaultHostTriple,
> -               const char *_DefaultImageName,
> +Driver::Driver(llvm::StringRef _Name, llvm::StringRef _Dir,
> +               llvm::StringRef _DefaultHostTriple,
> +               llvm::StringRef _DefaultImageName,
>                 bool IsProduction, Diagnostic &_Diags)
>    : Opts(createDriverOptTable()), Diags(_Diags),
>      Name(_Name), Dir(_Dir), DefaultHostTriple(_DefaultHostTriple),
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>




More information about the cfe-commits mailing list