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

jyasskin at gmail.com jyasskin at gmail.com
Mon Dec 7 14:42:49 PST 2009


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),





More information about the cfe-commits mailing list