[cfe-dev] argv[0] in libclang
Benjamin Kramer via cfe-dev
cfe-dev at lists.llvm.org
Thu Oct 15 01:30:54 PDT 2015
Hi,
currently all libclang APIs that get passed a command line expect that
there is no argv[0] in the list, i. e. no binary name at the beginning
of the command line. We later fake one
(clang::createInvocationFromCommandLine) as the invocation gets passed
down into the proper clang machinery.
This is nasty because it changes the behavior if the original clang
invocation would've used a relative path to the standard library:
cmdline: /foo/bar/bin/clang -c test.cc
std lib in: /foo/bar/include/c++
libclang sees: -c test.cc
and the stdlib is lost. This comes up if we're using a compile
database, for example ycm is using it like this.
The only sane solution I see at the moment is to add a new libclang
API that expects a full argv. Any other ideas?
- Ben
More information about the cfe-dev
mailing list