diff options
-rw-r--r-- | include/clang/Driver/OptTable.h | 1 | ||||
-rw-r--r-- | include/clang/Driver/Option.h | 7 | ||||
-rw-r--r-- | lib/Driver/CC1AsOptions.cpp | 2 | ||||
-rw-r--r-- | lib/Driver/DriverOptions.cpp | 2 | ||||
-rw-r--r-- | lib/Driver/OptTable.cpp | 2 | ||||
-rw-r--r-- | lib/Driver/Option.cpp | 6 |
6 files changed, 9 insertions, 11 deletions
diff --git a/include/clang/Driver/OptTable.h b/include/clang/Driver/OptTable.h index 15a22fed20..ea7e57b12b 100644 --- a/include/clang/Driver/OptTable.h +++ b/include/clang/Driver/OptTable.h @@ -34,6 +34,7 @@ namespace driver { const char *Name; const char *HelpText; const char *MetaVar; + unsigned ID; unsigned char Kind; unsigned char Param; unsigned short Flags; diff --git a/include/clang/Driver/Option.h b/include/clang/Driver/Option.h index a149f5b0c4..2adba6b4b7 100644 --- a/include/clang/Driver/Option.h +++ b/include/clang/Driver/Option.h @@ -71,9 +71,6 @@ namespace options { private: const OptTable::Info *Info; - /// The option ID. - OptSpecifier ID; - /// Group this option is a member of, if any. const Option *Group; @@ -81,11 +78,11 @@ namespace options { const Option *Alias; public: - Option(const OptTable::Info *Info, OptSpecifier ID, + Option(const OptTable::Info *Info, const Option *Group, const Option *Alias); ~Option(); - unsigned getID() const { return ID.getID(); } + unsigned getID() const { return Info->ID; } OptionClass getKind() const { return OptionClass(Info->Kind); } StringRef getName() const { return Info->Name; } const Option *getGroup() const { return Group; } diff --git a/lib/Driver/CC1AsOptions.cpp b/lib/Driver/CC1AsOptions.cpp index ea80f5a20e..cc7c7a4fef 100644 --- a/lib/Driver/CC1AsOptions.cpp +++ b/lib/Driver/CC1AsOptions.cpp @@ -18,7 +18,7 @@ using namespace clang::driver::cc1asoptions; static const OptTable::Info CC1AsInfoTable[] = { #define OPTION(NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM, \ HELPTEXT, METAVAR) \ - { NAME, HELPTEXT, METAVAR, Option::KIND##Class, PARAM, FLAGS, \ + { NAME, HELPTEXT, METAVAR, OPT_##ID, Option::KIND##Class, PARAM, FLAGS, \ OPT_##GROUP, OPT_##ALIAS }, #include "clang/Driver/CC1AsOptions.inc" }; diff --git a/lib/Driver/DriverOptions.cpp b/lib/Driver/DriverOptions.cpp index 715819d04b..f9d36cfb5e 100644 --- a/lib/Driver/DriverOptions.cpp +++ b/lib/Driver/DriverOptions.cpp @@ -17,7 +17,7 @@ using namespace clang::driver::options; static const OptTable::Info InfoTable[] = { #define OPTION(NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM, \ HELPTEXT, METAVAR) \ - { NAME, HELPTEXT, METAVAR, Option::KIND##Class, PARAM, FLAGS, \ + { NAME, HELPTEXT, METAVAR, OPT_##ID, Option::KIND##Class, PARAM, FLAGS, \ OPT_##GROUP, OPT_##ALIAS }, #include "clang/Driver/Options.inc" }; diff --git a/lib/Driver/OptTable.cpp b/lib/Driver/OptTable.cpp index 3ebc6d8725..a6d3cb3149 100644 --- a/lib/Driver/OptTable.cpp +++ b/lib/Driver/OptTable.cpp @@ -138,7 +138,7 @@ Option *OptTable::CreateOption(unsigned id) const { const Option *Group = getOption(info.GroupID); const Option *Alias = getOption(info.AliasID); - Option *Opt = new Option(&info, id, Group, Alias); + Option *Opt = new Option(&info, Group, Alias); return Opt; } diff --git a/lib/Driver/Option.cpp b/lib/Driver/Option.cpp index 57eaee2213..3be141e61d 100644 --- a/lib/Driver/Option.cpp +++ b/lib/Driver/Option.cpp @@ -17,9 +17,9 @@ #include <algorithm> using namespace clang::driver; -Option::Option(const OptTable::Info *info, OptSpecifier _ID, +Option::Option(const OptTable::Info *info, const Option *_Group, const Option *_Alias) - : Info(info), ID(_ID.getID()), Group(_Group), Alias(_Alias) { + : Info(info), Group(_Group), Alias(_Alias) { // Multi-level aliases are not supported, and alias options cannot // have groups. This just simplifies option tracking, it is not an @@ -72,7 +72,7 @@ bool Option::matches(OptSpecifier Opt) const { return Alias->matches(Opt); // Check exact match. - if (ID == Opt) + if (getID() == Opt.getID()) return true; if (Group) |