diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-03-12 01:36:44 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-03-12 01:36:44 +0000 |
commit | d8cadd4f250d1b69373fc80477f67375d2c54820 (patch) | |
tree | a7d8879b3b8368e46f9c2276f092c4a2ac31fb1e | |
parent | cf0dd156e7b9d6a70b7290f5af9646859631bd9a (diff) |
Driver: Add ArgList::hasArg, for testing for the presence of an
argument matching some Option::ID.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66758 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Driver/ArgList.h | 7 | ||||
-rw-r--r-- | lib/Driver/ArgList.cpp | 11 |
2 files changed, 17 insertions, 1 deletions
diff --git a/include/clang/Driver/ArgList.h b/include/clang/Driver/ArgList.h index c4f3bbc1a4..4131ff4d16 100644 --- a/include/clang/Driver/ArgList.h +++ b/include/clang/Driver/ArgList.h @@ -10,7 +10,9 @@ #ifndef CLANG_DRIVER_ARGLIST_H_ #define CLANG_DRIVER_ARGLIST_H_ -#include "Util.h" +#include "clang/Driver/Options.h" + +#include "clang/Driver/Util.h" #include "llvm/ADT/SmallVector.h" namespace clang { @@ -54,6 +56,9 @@ namespace driver { /// getArgString - Return the input argument string at \arg Index. const char *getArgString(unsigned Index) const { return ArgStrings[Index]; } + + /// hasArg - Does the arg list contain any option matching \arg Id. + bool hasArg(options::ID Id) const; }; } // end namespace driver } // end namespace clang diff --git a/lib/Driver/ArgList.cpp b/lib/Driver/ArgList.cpp index a45e9d67b2..6a056074b7 100644 --- a/lib/Driver/ArgList.cpp +++ b/lib/Driver/ArgList.cpp @@ -29,3 +29,14 @@ void ArgList::append(Arg *A) { Args.push_back(A); } + +bool ArgList::hasArg(options::ID Id) const { + // FIXME: Make search efficient? + + // FIXME: This needs to not require loading of the option. + for (const_iterator it = begin(), ie = end(); it != ie; ++ie) + if ((*it)->getOption().matches(Id)) + return true; + + return false; +} |