diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2012-08-21 18:51:17 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2012-08-21 18:51:17 +0000 |
commit | d492219e59dfde40bc22084e5e687848005f0558 (patch) | |
tree | 17eb4ec0b60b11b2355b1b29be84bca307ba5010 /clang/lib/Driver/OptTable.cpp | |
parent | 2c064483605bf103d2dbb67993a70ec955db9356 (diff) | |
download | llvm-d492219e59dfde40bc22084e5e687848005f0558.zip llvm-d492219e59dfde40bc22084e5e687848005f0558.tar.gz llvm-d492219e59dfde40bc22084e5e687848005f0558.tar.bz2 |
Reduce the amount of state in the Option class by relying on the data from OptTable::Info.
llvm-svn: 162299
Diffstat (limited to 'clang/lib/Driver/OptTable.cpp')
-rw-r--r-- | clang/lib/Driver/OptTable.cpp | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/clang/lib/Driver/OptTable.cpp b/clang/lib/Driver/OptTable.cpp index f8fe059..3ebc6d8 100644 --- a/clang/lib/Driver/OptTable.cpp +++ b/clang/lib/Driver/OptTable.cpp @@ -129,38 +129,16 @@ OptTable::~OptTable() { delete[] Options; } +bool OptTable::isOptionHelpHidden(OptSpecifier id) const { + return getInfo(id).Flags & options::HelpHidden; +} + Option *OptTable::CreateOption(unsigned id) const { const Info &info = getInfo(id); const Option *Group = getOption(info.GroupID); const Option *Alias = getOption(info.AliasID); - Option *Opt = new Option(Option::OptionClass(info.Kind), - id, info.Name, Group, Alias, info.Param); - - if (info.Flags & DriverOption) - Opt->setDriverOption(true); - if (info.Flags & LinkerInput) - Opt->setLinkerInput(true); - if (info.Flags & NoArgumentUnused) - Opt->setNoArgumentUnused(true); - if (info.Flags & NoForward) - Opt->setNoForward(true); - if (info.Flags & RenderAsInput) - Opt->setNoOptAsInput(true); - if (info.Flags & RenderJoined) { - assert((info.Kind == Option::JoinedOrSeparateClass || - info.Kind == Option::SeparateClass) && "Invalid option."); - Opt->setRenderStyle(Option::RenderJoinedStyle); - } - if (info.Flags & RenderSeparate) { - assert((info.Kind == Option::JoinedOrSeparateClass || - info.Kind == Option::JoinedClass) && "Invalid option."); - Opt->setRenderStyle(Option::RenderSeparateStyle); - } - if (info.Flags & Unsupported) - Opt->setUnsupported(true); - if (info.Flags & CC1Option) - Opt->setIsCC1Option(true); + Option *Opt = new Option(&info, id, Group, Alias); return Opt; } |