[libclang] Add entry points that take a full command line including argv[0].
This provides both a more uniform interface and makes libclang behave like clang tooling wrt relative paths against argv[0]. This is necessary for finding paths to a c++ standard library relative to a clang binary given in a compilation database. It can also be used to find paths relative to libclang.so if the full path to it is passed in. Differential Revision: http://reviews.llvm.org/D14695 llvm-svn: 253466
This commit is contained in:
@@ -39,15 +39,13 @@ clang::createInvocationFromCommandLine(ArrayRef<const char *> ArgList,
|
||||
Diags = CompilerInstance::createDiagnostics(new DiagnosticOptions);
|
||||
}
|
||||
|
||||
SmallVector<const char *, 16> Args;
|
||||
Args.push_back("<clang>"); // FIXME: Remove dummy argument.
|
||||
Args.insert(Args.end(), ArgList.begin(), ArgList.end());
|
||||
SmallVector<const char *, 16> Args(ArgList.begin(), ArgList.end());
|
||||
|
||||
// FIXME: Find a cleaner way to force the driver into restricted modes.
|
||||
Args.push_back("-fsyntax-only");
|
||||
|
||||
// FIXME: We shouldn't have to pass in the path info.
|
||||
driver::Driver TheDriver("clang", llvm::sys::getDefaultTargetTriple(),
|
||||
driver::Driver TheDriver(Args[0], llvm::sys::getDefaultTargetTriple(),
|
||||
*Diags);
|
||||
|
||||
// Don't check that inputs exist, they may have been remapped.
|
||||
|
||||
Reference in New Issue
Block a user