diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:07:40 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:07:40 +0000 | 
| commit | bfef399519ca9b8a4b4c6b563253bad7e0eeffe0 (patch) | |
| tree | df8df0b0067b381eab470a3b8f28d14a552a6340 /examples/clang-interpreter | |
| parent | 6a0372513edbc473b538d2f724efac50405d6fef (diff) | |
Diffstat (limited to 'examples/clang-interpreter')
| -rw-r--r-- | examples/clang-interpreter/Makefile | 4 | ||||
| -rw-r--r-- | examples/clang-interpreter/main.cpp | 13 | 
2 files changed, 9 insertions, 8 deletions
diff --git a/examples/clang-interpreter/Makefile b/examples/clang-interpreter/Makefile index 0c4d35c8ebd2c..55a8e6fb0f48c 100644 --- a/examples/clang-interpreter/Makefile +++ b/examples/clang-interpreter/Makefile @@ -15,8 +15,8 @@ NO_INSTALL = 1  # No plugins, optimize startup time.  TOOL_NO_EXPORTS = 1 -LINK_COMPONENTS := jit interpreter nativecodegen bitreader bitwriter ipo \ -	linker selectiondag asmparser instrumentation +LINK_COMPONENTS := jit interpreter nativecodegen bitreader bitwriter irreader \ +	ipo linker selectiondag asmparser instrumentation option  USEDLIBS = clangFrontend.a clangSerialization.a clangDriver.a clangCodeGen.a \             clangParse.a clangSema.a clangStaticAnalyzerFrontend.a \             clangStaticAnalyzerCheckers.a clangStaticAnalyzerCore.a \ diff --git a/examples/clang-interpreter/main.cpp b/examples/clang-interpreter/main.cpp index 3d0d6409d90ec..e00583d1a1ab5 100644 --- a/examples/clang-interpreter/main.cpp +++ b/examples/clang-interpreter/main.cpp @@ -21,6 +21,7 @@  #include "llvm/ExecutionEngine/ExecutionEngine.h"  #include "llvm/ExecutionEngine/JIT.h"  #include "llvm/IR/Module.h" +#include "llvm/Support/FileSystem.h"  #include "llvm/Support/Host.h"  #include "llvm/Support/ManagedStatic.h"  #include "llvm/Support/Path.h" @@ -34,11 +35,11 @@ using namespace clang::driver;  // GetMainExecutable (since some platforms don't support taking the  // address of main, and some platforms can't implement GetMainExecutable  // without being given the address of a function in the main executable). -llvm::sys::Path GetExecutablePath(const char *Argv0) { +std::string GetExecutablePath(const char *Argv0) {    // This just needs to be some symbol in the binary; C++ doesn't    // allow taking the address of ::main however.    void *MainAddr = (void*) (intptr_t) GetExecutablePath; -  return llvm::sys::Path::GetMainExecutable(Argv0, MainAddr); +  return llvm::sys::fs::getMainExecutable(Argv0, MainAddr);  }  static int Execute(llvm::Module *Mod, char * const *envp) { @@ -67,14 +68,14 @@ static int Execute(llvm::Module *Mod, char * const *envp) {  int main(int argc, const char **argv, char * const *envp) {    void *MainAddr = (void*) (intptr_t) GetExecutablePath; -  llvm::sys::Path Path = GetExecutablePath(argv[0]); +  std::string Path = GetExecutablePath(argv[0]);    IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions();    TextDiagnosticPrinter *DiagClient =      new TextDiagnosticPrinter(llvm::errs(), &*DiagOpts);    IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());    DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagClient); -  Driver TheDriver(Path.str(), llvm::sys::getProcessTriple(), "a.out", Diags); +  Driver TheDriver(Path, llvm::sys::getProcessTriple(), "a.out", Diags);    TheDriver.setTitle("clang interpreter");    // FIXME: This is a hack to try to force the driver to do something we can @@ -94,7 +95,7 @@ int main(int argc, const char **argv, char * const *envp) {    if (Jobs.size() != 1 || !isa<driver::Command>(*Jobs.begin())) {      SmallString<256> Msg;      llvm::raw_svector_ostream OS(Msg); -    C->PrintJob(OS, C->getJobs(), "; ", true); +    Jobs.Print(OS, "; ", true);      Diags.Report(diag::err_fe_expected_compiler_job) << OS.str();      return 1;    } @@ -117,7 +118,7 @@ int main(int argc, const char **argv, char * const *envp) {    // Show the invocation, with -v.    if (CI->getHeaderSearchOpts().Verbose) {      llvm::errs() << "clang invocation:\n"; -    C->PrintJob(llvm::errs(), C->getJobs(), "\n", true); +    Jobs.Print(llvm::errs(), "\n", true);      llvm::errs() << "\n";    }  | 
