Author: Alex Brachet Date: 2022-08-18T20:12:23Z New Revision: 377dddf4a08335a79180dd1d7907cb98ceaa641a
URL: https://github.com/llvm/llvm-project/commit/377dddf4a08335a79180dd1d7907cb98ceaa641a DIFF: https://github.com/llvm/llvm-project/commit/377dddf4a08335a79180dd1d7907cb98ceaa641a.diff LOG: [clang][Driver] Pass correct reproduce flag to lld-link Additionally, the explicit linux target has been removed from the test. Differential Revision: https://reviews.llvm.org/D131214 Added: Modified: clang/lib/Driver/Driver.cpp clang/test/Driver/lld-repro.c Removed: ################################################################################ diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 31cd5865c8168..d00f08d15ae58 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -1631,7 +1631,11 @@ void Driver::generateCompilationDiagnostics( const char *TmpName = CreateTempFile(C, "linker-crash", "tar"); Command NewLLDInvocation = Cmd; llvm::opt::ArgStringList ArgList = NewLLDInvocation.getArguments(); - ArgList.push_back(Saver.save(Twine{"--reproduce="} + TmpName).data()); + StringRef ReproduceOption = + C.getDefaultToolChain().getTriple().isWindowsMSVCEnvironment() + ? "/reproduce:" + : "--reproduce="; + ArgList.push_back(Saver.save(Twine(ReproduceOption) + TmpName).data()); NewLLDInvocation.replaceArguments(std::move(ArgList)); // Redirect stdout/stderr to /dev/null. diff --git a/clang/test/Driver/lld-repro.c b/clang/test/Driver/lld-repro.c index 65d562996e62f..26b5846e8a496 100644 --- a/clang/test/Driver/lld-repro.c +++ b/clang/test/Driver/lld-repro.c @@ -1,6 +1,7 @@ -// REQUIRES: lld, x86-registered-target +// REQUIRES: lld +// UNSUPPORTED: ps4 -// RUN: not %clang %s -target x86_64-linux -nostartfiles -nostdlib -fuse-ld=lld -gen-reproducer=error -fcrash-diagnostics-dir=%t -fcrash-diagnostics=all 2>&1 \ +// RUN: not %clang %s -nostartfiles -nostdlib -fuse-ld=lld -gen-reproducer=error -fcrash-diagnostics-dir=%t -fcrash-diagnostics=all 2>&1 \ // RUN: | FileCheck %s // check that we still get lld's output @@ -13,9 +14,9 @@ // CHECK-NEXT: note: diagnostic msg: // CHECK: ******************** -// RUN: not %clang %s -target x86_64-linux -nostartfiles -nostdlib -fuse-ld=lld -gen-reproducer=error -fcrash-diagnostics-dir=%t -fcrash-diagnostics=compiler 2>&1 \ +// RUN: not %clang %s -nostartfiles -nostdlib -fuse-ld=lld -gen-reproducer=error -fcrash-diagnostics-dir=%t -fcrash-diagnostics=compiler 2>&1 \ // RUN: | FileCheck %s --check-prefix=NO-LINKER -// RUN: not %clang %s -target x86_64-linux -nostartfiles -nostdlib -fuse-ld=lld -gen-reproducer=error -fcrash-diagnostics-dir=%t 2>&1 \ +// RUN: not %clang %s -nostartfiles -nostdlib -fuse-ld=lld -gen-reproducer=error -fcrash-diagnostics-dir=%t 2>&1 \ // RUN: | FileCheck %s --check-prefix=NO-LINKER // NO-LINKER-NOT: Preprocessed source(s) and associated run script(s) are located at: _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits