diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Driver/OptTable.cpp | 19 | ||||
-rw-r--r-- | lib/Driver/Option.cpp | 5 |
2 files changed, 10 insertions, 14 deletions
diff --git a/lib/Driver/OptTable.cpp b/lib/Driver/OptTable.cpp index 731334848a..335d7720bf 100644 --- a/lib/Driver/OptTable.cpp +++ b/lib/Driver/OptTable.cpp @@ -95,21 +95,14 @@ Option *OptTable::constructOption(options::ID id) const { Opt = new JoinedAndSeparateOption(info.Name, Group, Alias); break; } - // FIXME: Set flags. for (const char *s = info.Flags; *s; ++s) { switch (*s) { - default: - assert(0 && "Invalid option flag."); - case 'l': - break; - case 'i': - break; - case 'J': - break; - case 'S': - break; - case 'U': - break; + default: assert(0 && "Invalid option flag."); + case 'l': Opt->setLinkerInput(true); break; + case 'i': Opt->setNoOptAsInput(true); break; + case 'J': Opt->setForceJoinedRender(true); break; + case 'S': Opt->setForceSeparateRender(true); break; + case 'U': Opt->setUnsupported(true); break; } } diff --git a/lib/Driver/Option.cpp b/lib/Driver/Option.cpp index cf5c3eb0fa..368f004b60 100644 --- a/lib/Driver/Option.cpp +++ b/lib/Driver/Option.cpp @@ -15,7 +15,10 @@ using namespace clang::driver; Option::Option(OptionClass _Kind, const char *_Name, const OptionGroup *_Group, const Option *_Alias) - : Kind(_Kind), Name(_Name), Group(_Group), Alias(_Alias) { + : Kind(_Kind), Name(_Name), Group(_Group), Alias(_Alias), + Unsupported(false), LinkerInput(false), NoOptAsInput(false), + ForceSeparateRender(false), ForceJoinedRender(false) +{ // Multi-level aliases are not supported, and alias options cannot // have groups. This just simplifies option tracking, it is not an |