aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/OptTable.cpp
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2012-08-21 18:51:17 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2012-08-21 18:51:17 +0000
commitd492219e59dfde40bc22084e5e687848005f0558 (patch)
tree17eb4ec0b60b11b2355b1b29be84bca307ba5010 /clang/lib/Driver/OptTable.cpp
parent2c064483605bf103d2dbb67993a70ec955db9356 (diff)
downloadllvm-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.cpp32
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;
}