aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-03-30 18:13:26 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-03-30 18:13:26 +0000
commit776dbd8b0e4414e5002ffe6e8bd9a7e79879521d (patch)
tree86438a2c577d3a3afb6e3669df891d52e77f8007
parent26c8294dacc2efc83d8d560593ff863e7a32a48f (diff)
Driver: Unbreak ArgList::hasFlag.
- <rdar://problem/6726511> [driver] clang does not have -msoft-float hooked up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68044 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Driver/ArgList.cpp2
-rw-r--r--test/Driver/flags.c9
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/Driver/ArgList.cpp b/lib/Driver/ArgList.cpp
index 2e526ab5d5..6d19f1acc5 100644
--- a/lib/Driver/ArgList.cpp
+++ b/lib/Driver/ArgList.cpp
@@ -51,7 +51,7 @@ Arg *ArgList::getLastArg(options::ID Id0, options::ID Id1, bool Claim) const {
bool ArgList::hasFlag(options::ID Pos, options::ID Neg, bool Default) const {
Arg *PosA = getLastArg(Pos);
- Arg *NegA = getLastArg(Pos);
+ Arg *NegA = getLastArg(Neg);
if (PosA && NegA)
return NegA->getIndex() < PosA->getIndex();
if (PosA) return true;
diff --git a/test/Driver/flags.c b/test/Driver/flags.c
new file mode 100644
index 0000000000..53f3995f39
--- /dev/null
+++ b/test/Driver/flags.c
@@ -0,0 +1,9 @@
+// RUN: clang -ccc-host-triple i386-apple-darwin9 -### -S -msoft-float %s 2> %t.log &&
+// RUN: grep '"--soft-float"' %t.log &&
+
+// RUN: clang -ccc-host-triple i386-apple-darwin9 -### -S -msoft-float -mno-soft-float %s 2> %t.log &&
+// RUN: grep '"--soft-float"' %t.log | count 0 &&
+
+// RUN: clang -ccc-host-triple i386-apple-darwin9 -### -S -mno-soft-float %s -msoft-float 2> %t.log &&
+// RUN: grep '"--soft-float"' %t.log
+