Index: clang/tools/c-index-test/core_main.cpp =================================================================== --- clang/tools/c-index-test/core_main.cpp +++ clang/tools/c-index-test/core_main.cpp @@ -20,6 +20,7 @@ #include "clang/Lex/Preprocessor.h" #include "clang/Serialization/ASTReader.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/FileSystem.h" #include "llvm/Support/Signals.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Support/PrettyStackTrace.h" @@ -202,11 +203,13 @@ }); } -static bool printSourceSymbols(ArrayRef Args, - bool dumpModuleImports, - bool indexLocals) { +static bool printSourceSymbols(const char *ProgName, + ArrayRef Args, + bool dumpModuleImports, bool indexLocals) { + void *P = (void*) (intptr_t) indextest_core_main; + std::string Executable = llvm::sys::fs::getMainExecutable(ProgName, P); SmallVector ArgsWithProgName; - ArgsWithProgName.push_back("clang"); + ArgsWithProgName.push_back(Executable.c_str()); ArgsWithProgName.append(Args.begin(), Args.end()); IntrusiveRefCntPtr Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions)); @@ -314,6 +317,7 @@ int indextest_core_main(int argc, const char **argv) { sys::PrintStackTraceOnErrorSignal(argv[0]); PrettyStackTraceProgram X(argc, argv); + const char *ProgName = argv[0]; assert(argv[1] == StringRef("core")); ++argv; @@ -343,7 +347,8 @@ errs() << "error: missing compiler args; pass '-- '\n"; return 1; } - return printSourceSymbols(CompArgs, options::DumpModuleImports, options::IncludeLocals); + return printSourceSymbols(ProgName, CompArgs, options::DumpModuleImports, + options::IncludeLocals); } return 0;