zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit c5716715d5e7d7a5eae76df77ed538a48d22f0ba (tree)
parent a11c20e26a6efd977656459710ae3d37fcbb2846
Author: Michael Dusan <michael.dusan@gmail.com>
Date:   Sun, 22 Sep 2019 07:18:49 -0400

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

Diffstat:
Msrc/zig_clang_driver.cpp | 2+-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/zig_clang_driver.cpp b/src/zig_clang_driver.cpp @@ -421,7 +421,7 @@ int ZigClang_main(int argc_, const char **argv_) { ApplyQAOverride(argv, OverrideStr, SavedStrings); } - std::string Path = GetExecutablePath(argv[0], CanonicalPrefixes); + std::string Path = GetExecutablePath(argv_[0], CanonicalPrefixes); IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = CreateAndPopulateDiagOpts(argv);