diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2012-08-20 21:41:17 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2012-08-20 21:41:17 +0000 |
commit | 4327557dfafe16c031691ed061f52a708e4c6b7a (patch) | |
tree | 898c3e5acef96a216d0945b4e926fb80e3812968 /lib/Driver/OptTable.cpp | |
parent | d30fb9e2462d3cfe04d4f32cb40bf1edd9e3b383 (diff) |
Make Option non virtual.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162231 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/OptTable.cpp')
-rw-r--r-- | lib/Driver/OptTable.cpp | 28 |
1 files changed, 3 insertions, 25 deletions
diff --git a/lib/Driver/OptTable.cpp b/lib/Driver/OptTable.cpp index a3e38b26f2..f8fe05906b 100644 --- a/lib/Driver/OptTable.cpp +++ b/lib/Driver/OptTable.cpp @@ -131,33 +131,11 @@ OptTable::~OptTable() { Option *OptTable::CreateOption(unsigned id) const { const Info &info = getInfo(id); - const OptionGroup *Group = - cast_or_null<OptionGroup>(getOption(info.GroupID)); + const Option *Group = getOption(info.GroupID); const Option *Alias = getOption(info.AliasID); - Option *Opt = 0; - switch (info.Kind) { - case Option::InputClass: - Opt = new InputOption(id); break; - case Option::UnknownClass: - Opt = new UnknownOption(id); break; - case Option::GroupClass: - Opt = new OptionGroup(id, info.Name, Group); break; - case Option::FlagClass: - Opt = new FlagOption(id, info.Name, Group, Alias); break; - case Option::JoinedClass: - Opt = new JoinedOption(id, info.Name, Group, Alias); break; - case Option::SeparateClass: - Opt = new SeparateOption(id, info.Name, Group, Alias); break; - case Option::CommaJoinedClass: - Opt = new CommaJoinedOption(id, info.Name, Group, Alias); break; - case Option::MultiArgClass: - Opt = new MultiArgOption(id, info.Name, Group, Alias, info.Param); break; - case Option::JoinedOrSeparateClass: - Opt = new JoinedOrSeparateOption(id, info.Name, Group, Alias); break; - case Option::JoinedAndSeparateClass: - Opt = new JoinedAndSeparateOption(id, info.Name, Group, Alias); break; - } + Option *Opt = new Option(Option::OptionClass(info.Kind), + id, info.Name, Group, Alias, info.Param); if (info.Flags & DriverOption) Opt->setDriverOption(true); |