Index: clang/lib/Frontend/CreateInvocationFromCommandLine.cpp =================================================================== --- clang/lib/Frontend/CreateInvocationFromCommandLine.cpp +++ clang/lib/Frontend/CreateInvocationFromCommandLine.cpp @@ -43,8 +43,12 @@ // FIXME: Find a cleaner way to force the driver into restricted modes. Args.push_back("-fsyntax-only"); + void *P = reinterpret_cast(createInvocationFromCommandLine); + std::string ClangExecutable = + llvm::sys::fs::getMainExecutable(Args[0], P); + // FIXME: We shouldn't have to pass in the path info. - driver::Driver TheDriver(Args[0], llvm::sys::getDefaultTargetTriple(), + driver::Driver TheDriver(ClangExecutable, llvm::sys::getDefaultTargetTriple(), *Diags, VFS); // Don't check that inputs exist, they may have been remapped. Index: clang/unittests/libclang/LibclangTest.cpp =================================================================== --- clang/unittests/libclang/LibclangTest.cpp +++ clang/unittests/libclang/LibclangTest.cpp @@ -621,7 +621,10 @@ std::string Clang = "bin/clang"; WriteFile(Clang, ""); + std::string InstalledDir = TestDir + "/bin"; + const char *Argv[] = {Clang.c_str(), "-target", "arm-linux-gnueabi", + "-ccc-install-dir", InstalledDir.c_str(), "-stdlib=libstdc++", "--gcc-toolchain="}; EXPECT_EQ(CXError_Success,