[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