diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-12-08 19:49:51 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-12-08 19:49:51 +0000 |
commit | 6cc525b44e9f96e0fd8a1e4075f24ae413889f95 (patch) | |
tree | b26a832f8e599c513ed98f3b0e5bcfcb1a014b65 | |
parent | 888a89ccf2ff745afa67ce8cdf38930bfe8ed903 (diff) | |
download | bcm5719-llvm-6cc525b44e9f96e0fd8a1e4075f24ae413889f95.tar.gz bcm5719-llvm-6cc525b44e9f96e0fd8a1e4075f24ae413889f95.zip |
Unbreak clang-cc handling of -msoft-float / -mfloat-abi=, which I borked.
llvm-svn: 90873
-rw-r--r-- | clang/include/clang/Driver/CC1Options.td | 4 | ||||
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 9 | ||||
-rw-r--r-- | clang/test/Driver/clang-translation.c | 26 |
3 files changed, 34 insertions, 5 deletions
diff --git a/clang/include/clang/Driver/CC1Options.td b/clang/include/clang/Driver/CC1Options.td index aa4d3bfadcc..179e6ddd761 100644 --- a/clang/include/clang/Driver/CC1Options.td +++ b/clang/include/clang/Driver/CC1Options.td @@ -119,13 +119,13 @@ def mdebug_pass : Separate<"-mdebug-pass">, HelpText<"Enable additional debug output">; def mdisable_fp_elim : Flag<"-mdisable-fp-elim">, HelpText<"Disable frame pointer elimination optimization">; -def mfloat_abi : Flag<"-mfloat-abi">, +def mfloat_abi : Separate<"-mfloat-abi">, HelpText<"The float ABI to use">; def mlimit_float_precision : Separate<"-mlimit-float-precision">, HelpText<"Limit float precision to the given value">; def mno_zero_initialized_in_bss : Flag<"-mno-zero-initialized-in-bss">, HelpText<"Do not put zero initialized data in the BSS">; -def msoft_float : Separate<"-msoft-float">, +def msoft_float : Flag<"-msoft-float">, HelpText<"Use software floating point">; def mrelocation_model : Separate<"-mrelocation-model">, HelpText<"The relocation model to use">; diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index a89806a68e6..983018b4a60 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -419,14 +419,17 @@ void Clang::AddARMTargetArgs(const ArgList &Args, // // FIXME: This changes CPP defines, we need -target-soft-float. CmdArgs.push_back("-msoft-float"); - CmdArgs.push_back("-mfloat-abi=soft"); + CmdArgs.push_back("-mfloat-abi"); + CmdArgs.push_back("soft"); } else if (FloatABI == "softfp") { // Floating point operations are hard, but argument passing is soft. - CmdArgs.push_back("-mfloat-abi=soft"); + CmdArgs.push_back("-mfloat-abi"); + CmdArgs.push_back("soft"); } else { // Floating point operations and argument passing are hard. assert(FloatABI == "hard" && "Invalid float abi!"); - CmdArgs.push_back("-mfloat-abi=hard"); + CmdArgs.push_back("-mfloat-abi"); + CmdArgs.push_back("hard"); } } diff --git a/clang/test/Driver/clang-translation.c b/clang/test/Driver/clang-translation.c index bc10e0d627c..a305296fa58 100644 --- a/clang/test/Driver/clang-translation.c +++ b/clang/test/Driver/clang-translation.c @@ -13,3 +13,29 @@ // RUN: grep '"-mcpu" "yonah"' %t.log // RUN: clang -ccc-host-triple x86_64-apple-darwin9 -### -S %s -o %t.s 2> %t.log // RUN: grep '"-mcpu" "core2"' %t.log + +// RUN: clang -ccc-host-triple x86_64-apple-darwin10 -### -S %s 2> %t.log \ +// RUN: -arch armv7 +// RUN: FileCheck -check-prefix=ARMV7_DEFAULT %s < %t.log +// ARMV7_DEFAULT: clang-cc" +// ARMV7_DEFAULT-NOT: "-msoft-float" +// ARMV7_DEFAULT: "-mfloat-abi" "soft" +// ARMV7_DEFAULT-NOT: "-msoft-float" +// ARMV7_DEFAULT: "-x" "c" + +// RUN: clang -ccc-host-triple x86_64-apple-darwin10 -### -S %s 2> %t.log \ +// RUN: -arch armv7 -msoft-float +// RUN: FileCheck -check-prefix=ARMV7_SOFTFLOAT %s < %t.log +// ARMV7_SOFTFLOAT: clang-cc" +// ARMV7_SOFTFLOAT: "-msoft-float" +// ARMV7_SOFTFLOAT: "-mfloat-abi" "soft" +// ARMV7_SOFTFLOAT: "-x" "c" + +// RUN: clang -ccc-host-triple x86_64-apple-darwin10 -### -S %s 2> %t.log \ +// RUN: -arch armv7 -mhard-float +// RUN: FileCheck -check-prefix=ARMV7_HARDFLOAT %s < %t.log +// ARMV7_HARDFLOAT: clang-cc" +// ARMV7_HARDFLOAT-NOT: "-msoft-float" +// ARMV7_HARDFLOAT: "-mfloat-abi" "hard" +// ARMV7_HARDFLOAT-NOT: "-msoft-float" +// ARMV7_HARDFLOAT: "-x" "c" |