diff --git a/clang/lib/Driver/ArgList.cpp b/clang/lib/Driver/ArgList.cpp index 2e526ab5d545..6d19f1acc59f 100644 --- a/clang/lib/Driver/ArgList.cpp +++ b/clang/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/clang/test/Driver/flags.c b/clang/test/Driver/flags.c new file mode 100644 index 000000000000..53f3995f394d --- /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 +