authorgravatar for michael.dusan@gmail.comMichael Dusan <michael.dusan@gmail.com> 2019-09-22 07:18:49-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-09-22 11:21:22-04:00
logc5716715d5e7d7a5eae76df77ed538a48d22f0ba
tree07ceaa9ed53b8005b1e18a793857293dd90c7bfa
parenta11c20e26a6efd977656459710ae3d37fcbb2846

stage1: fix lost argv[0]

- bug presented on FreeBSD when `/proc` filesystem is not mounted - bogus `cc` was used as exename, causing incorrect executable spawn - llvm::sys::fs::getMainExecutable() has platform-specific code to get exename and fallback is to use param argv0 - linux fallback is rare because `/proc` is usually mounted - *BSD fallback is not rare because `/proc` is often not mounted - macOS doesn't ever fallback: bug cannot present - windows doesn't ever fallback: bug cannot present - other Posix will always present

1 files changed, 1 insertions(+), 1 deletions(-)

src/zig_clang_driver.cpp+1-1
......@@ -421,7 +421,7 @@ int ZigClang_main(int argc_, const char **argv_) {
421421 ApplyQAOverride(argv, OverrideStr, SavedStrings);
422422 }
423423
424 std::string Path = GetExecutablePath(argv[0], CanonicalPrefixes);
424 std::string Path = GetExecutablePath(argv_[0], CanonicalPrefixes);
425425
426426 IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts =
427427 CreateAndPopulateDiagOpts(argv);