Driver: Unbreak ArgList::hasFlag.
 - <rdar://problem/6726511> [driver] clang does not have -msoft-float
   hooked up.

llvm-svn: 68044
diff --git a/clang/lib/Driver/ArgList.cpp b/clang/lib/Driver/ArgList.cpp
index 2e526ab..6d19f1a 100644
--- a/clang/lib/Driver/ArgList.cpp
+++ b/clang/lib/Driver/ArgList.cpp
@@ -51,7 +51,7 @@
 
 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/clang/test/Driver/flags.c b/clang/test/Driver/flags.c
new file mode 100644
index 0000000..53f3995
--- /dev/null
+++ b/clang/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
+