diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-03-30 18:13:26 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-03-30 18:13:26 +0000 |
commit | 776dbd8b0e4414e5002ffe6e8bd9a7e79879521d (patch) | |
tree | 86438a2c577d3a3afb6e3669df891d52e77f8007 | |
parent | 26c8294dacc2efc83d8d560593ff863e7a32a48f (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.cpp | 2 | ||||
-rw-r--r-- | test/Driver/flags.c | 9 |
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 + |