From: Matheus Almeida Date: Wed, 7 May 2014 16:16:07 +0000 (+0000) Subject: [mips] Pass nan2008 info to the back-end. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b9ec38bf4ef0b4a1781cd53916350dee670df10d;p=clang [mips] Pass nan2008 info to the back-end. Summary: The initial support for NaN2008 was added to the back-end in r206396. Reviewers: atanasyan Reviewed By: atanasyan Differential Revision: http://reviews.llvm.org/D3448 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208220 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 4bcdb37341..0e47d328b7 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -5669,9 +5669,6 @@ public: std::find(Features.begin(), Features.end(), "+soft-float"); if (it != Features.end()) Features.erase(it); - it = std::find(Features.begin(), Features.end(), "+nan2008"); - if (it != Features.end()) - Features.erase(it); setDescriptionString(); diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index b86df2acdb..2ab7ea3fde 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1037,8 +1037,14 @@ static void getMIPSTargetFeatures(const Driver &D, const ArgList &Args, } if (Arg *A = Args.getLastArg(options::OPT_mnan_EQ)) { - if (StringRef(A->getValue()) == "2008") + StringRef Val = StringRef(A->getValue()); + if (Val == "2008") Features.push_back("+nan2008"); + else if (Val == "legacy") + Features.push_back("-nan2008"); + else + D.Diag(diag::err_drv_unsupported_option_argument) + << A->getOption().getName() << Val; } AddTargetFeature(Args, Features, options::OPT_msingle_float, diff --git a/test/Driver/mips-features.c b/test/Driver/mips-features.c index d663e6651e..c21e9750b9 100644 --- a/test/Driver/mips-features.c +++ b/test/Driver/mips-features.c @@ -72,6 +72,18 @@ // RUN: | FileCheck --check-prefix=CHECK-NOMFP64 %s // CHECK-NOMFP64: "-target-feature" "-fp64" // +// -mnan=2008 +// RUN: %clang -target mips-linux-gnu -### -c %s \ +// RUN: -mnan=legacy -mnan=2008 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-NAN2008 %s +// CHECK-NAN2008: "-target-feature" "+nan2008" +// +// -mnan=legacy +// RUN: %clang -target mips-linux-gnu -### -c %s \ +// RUN: -mnan=2008 -mnan=legacy 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-NANLEGACY %s +// CHECK-NANLEGACY: "-target-feature" "-nan2008" +// // -mxgot // RUN: %clang -target mips-linux-gnu -### -c %s \ // RUN: -mno-xgot -mxgot 2>&1 \