diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -1770,7 +1770,7 @@ // don't expect inconsistencies w.r.t. that to matter in practice. if (C.getArgs().hasArg(options::OPT_dumpmachine)) { - llvm::outs() << C.getDefaultToolChain().getTripleString() << '\n'; + llvm::outs() << C.getDriver().getTargetTriple() << '\n'; return false; } diff --git a/clang/test/Driver/dumpmachine.c b/clang/test/Driver/dumpmachine.c new file mode 100644 --- /dev/null +++ b/clang/test/Driver/dumpmachine.c @@ -0,0 +1,16 @@ +/// Test that -dumpmachine prints the triple without normalization. + +/// config.guess may prefer x86_64-pc-linux-gnu, but we respect --target= verbatim. +// RUN: %clang --target=x86_64-linux-gnu -dumpmachine | FileCheck %s --check-prefix=X86_64 +// X86_64: x86_64-linux-gnu + +/// Note: GCC doesn't convert -dumpmachine output for multilib -m32/-mx32/-m64. +// RUN: %clang --target=x86_64-redhat-linux -m32 -dumpmachine | FileCheck %s --check-prefix=X86_64_M32 +// X86_64_M32: i386-redhat-linux + +// RUN: %clang --target=xxx-pc-freebsd -dumpmachine | FileCheck %s --check-prefix=XXX +// XXX: xxx-pc-freebsd + +/// Fuchsia prefers normalization. +// RUN: %clang --target=aarch64-fuchsia -dumpmachine | FileCheck %s --check-prefix=FUCHSIA +// FUCHSIA: aarch64-unknown-fuchsia