diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 3846d471bbb260e696927f316e957575a23ae893..ebac93c6ec84acd78b8ddd24a888e4621501af10 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1247,7 +1247,7 @@ void Clang::AddSparcTargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const { const Driver &D = getToolChain().getDriver(); - // Select the float ABI as determined by -msoft-float, -mhard-float, and + // Select the float ABI as determined by -msoft-float and -mhard-float. StringRef FloatABI; if (Arg *A = Args.getLastArg(options::OPT_msoft_float, options::OPT_mhard_float)) { @@ -2857,6 +2857,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, break; case llvm::Triple::sparc: + case llvm::Triple::sparcv9: AddSparcTargetArgs(Args, CmdArgs); break; diff --git a/test/Driver/sparc-float.c b/test/Driver/sparc-float.c new file mode 100644 index 0000000000000000000000000000000000000000..36f990417375ff84d33389f597d30284408c8ee0 --- /dev/null +++ b/test/Driver/sparc-float.c @@ -0,0 +1,38 @@ +// Check handling -mhard-float / -msoft-float options +// when build for SPARC platforms. +// +// Default sparc +// RUN: %clang -c %s -### -o %t.o 2>&1 \ +// RUN: -target sparc-linux-gnu \ +// RUN: | FileCheck --check-prefix=CHECK-DEF %s +// CHECK-DEF: "-msoft-float" +// +// -mhard-float +// RUN: %clang -c %s -### -o %t.o 2>&1 \ +// RUN: -target sparc-linux-gnu -mhard-float \ +// RUN: | FileCheck --check-prefix=CHECK-HARD %s +// CHECK-HARD: "-mhard-float" +// +// -msoft-float +// RUN: %clang -c %s -### -o %t.o 2>&1 \ +// RUN: -target sparc-linux-gnu -msoft-float \ +// RUN: | FileCheck --check-prefix=CHECK-SOFT %s +// CHECK-SOFT: "-msoft-float" +// +// Default sparc64 +// RUN: %clang -c %s -### -o %t.o 2>&1 \ +// RUN: -target sparc64-linux-gnu \ +// RUN: | FileCheck --check-prefix=CHECK-DEF-SPARC64 %s +// CHECK-DEF-SPARC64: "-msoft-float" +// +// -mhard-float +// RUN: %clang -c %s -### -o %t.o 2>&1 \ +// RUN: -target sparc64-linux-gnu -mhard-float \ +// RUN: | FileCheck --check-prefix=CHECK-HARD-SPARC64 %s +// CHECK-HARD-SPARC64: "-mhard-float" +// +// -msoft-float +// RUN: %clang -c %s -### -o %t.o 2>&1 \ +// RUN: -target sparc64-linux-gnu -msoft-float \ +// RUN: | FileCheck --check-prefix=CHECK-SOFT-SPARC64 %s +// CHECK-SOFT-MIPS16: "-msoft-float"