forked from OSchip/llvm-project
[Options] Store the option ID in OptTable::Info.
llvm-svn: 164644
This commit is contained in:
parent
15a4bea41e
commit
9d1221a281
|
@ -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;
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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"
|
||||
};
|
||||
|
|
|
@ -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"
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue