diff options
| author | Akira Hatanaka <ahatanaka@mips.com> | 2013-07-19 18:58:48 +0000 |
|---|---|---|
| committer | Akira Hatanaka <ahatanaka@mips.com> | 2013-07-19 18:58:48 +0000 |
| commit | 0aa60efe9cf04588d46055a9a8dbd78a4c47d5ee (patch) | |
| tree | 43c0e6a9bdcc494ef62b46870da3220a806dadc8 | |
| parent | 47b1517c52c229f50f76b86a99904e00a77901f8 (diff) | |
| download | bcm5719-llvm-0aa60efe9cf04588d46055a9a8dbd78a4c47d5ee.tar.gz bcm5719-llvm-0aa60efe9cf04588d46055a9a8dbd78a4c47d5ee.zip | |
[mips] Add support for command-line options -mno-check-zero-division and
-mcheck-zero-division.
llvm-svn: 186710
| -rw-r--r-- | clang/include/clang/Driver/Options.td | 3 | ||||
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 8 | ||||
| -rw-r--r-- | clang/test/Driver/mips-features.c | 12 |
3 files changed, 23 insertions, 0 deletions
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index fb37228a4f8..2035bf8b768 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -1009,6 +1009,9 @@ def mxgot : Flag<["-"], "mxgot">, Group<m_Group>; def mno_xgot : Flag<["-"], "mno-xgot">, Group<m_Group>; def mldc1_sdc1 : Flag<["-"], "mldc1-sdc1">, Group<m_Group>; def mno_ldc1_sdc1 : Flag<["-"], "mno-ldc1-sdc1">, Group<m_Group>; +def mcheck_zero_division : Flag<["-"], "mcheck-zero-division">, Group<m_Group>; +def mno_check_zero_division : Flag<["-"], "mno-check-zero-division">, + Group<m_Group>; def mdsp : Flag<["-"], "mdsp">, Group<m_Group>; def mno_dsp : Flag<["-"], "mno-dsp">, Group<m_Group>; def mdspr2 : Flag<["-"], "mdspr2">, Group<m_Group>; diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index c2a0205b727..83aab8db4d7 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -1039,6 +1039,14 @@ void Clang::AddMIPSTargetArgs(const ArgList &Args, } } + if (Arg *A = Args.getLastArg(options::OPT_mcheck_zero_division, + options::OPT_mno_check_zero_division)) { + if (A->getOption().matches(options::OPT_mno_check_zero_division)) { + CmdArgs.push_back("-mllvm"); + CmdArgs.push_back("-mno-check-zero-division"); + } + } + if (Arg *A = Args.getLastArg(options::OPT_G)) { StringRef v = A->getValue(); CmdArgs.push_back("-mllvm"); diff --git a/clang/test/Driver/mips-features.c b/clang/test/Driver/mips-features.c index 3c1cea5178b..ffa4dcd5aae 100644 --- a/clang/test/Driver/mips-features.c +++ b/clang/test/Driver/mips-features.c @@ -72,6 +72,18 @@ // RUN: | FileCheck --check-prefix=CHECK-NOLDC1SDC1 %s // CHECK-NOLDC1SDC1: "-mllvm" "-mno-ldc1-sdc1" // +// -mcheck-zero-division +// RUN: %clang -target mips-linux-gnu -### -c %s \ +// RUN: -mno-check-zero-division -mcheck-zero-division 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-ZERODIV %s +// CHECK-ZERODIV-NOT: "-mllvm" "-mno-check-zero-division" +// +// -mno-check-zero-division +// RUN: %clang -target mips-linux-gnu -### -c %s \ +// RUN: -mcheck-zero-division -mno-check-zero-division 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-NOZERODIV %s +// CHECK-NOZERODIV: "-mllvm" "-mno-check-zero-division" +// // -G // RUN: %clang -target mips-linux-gnu -### -c %s \ // RUN: -G 16 2>&1 \ |

