aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Driver/OptTable.cpp7
-rw-r--r--lib/Driver/Option.cpp1
2 files changed, 5 insertions, 3 deletions
diff --git a/lib/Driver/OptTable.cpp b/lib/Driver/OptTable.cpp
index 5caaace3ad..00a949f086 100644
--- a/lib/Driver/OptTable.cpp
+++ b/lib/Driver/OptTable.cpp
@@ -46,6 +46,7 @@ static Info &getInfo(unsigned id) {
}
OptTable::OptTable() : Options(new Option*[numOptions]) {
+ memset(Options, 0, sizeof(*Options) * numOptions);
}
OptTable::~OptTable() {
@@ -108,11 +109,11 @@ Option *OptTable::constructOption(options::ID id) const {
for (const char *s = info.Flags; *s; ++s) {
switch (*s) {
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;
+ case 'i': Opt->setNoOptAsInput(true); break;
+ case 'l': Opt->setLinkerInput(true); break;
+ case 'u': Opt->setUnsupported(true); break;
}
}
diff --git a/lib/Driver/Option.cpp b/lib/Driver/Option.cpp
index 7a53009455..083eb8e9da 100644
--- a/lib/Driver/Option.cpp
+++ b/lib/Driver/Option.cpp
@@ -190,6 +190,7 @@ MultiArgOption::MultiArgOption(options::ID ID, const char *Name,
const OptionGroup *Group, const Option *Alias,
unsigned _NumArgs)
: Option(Option::MultiArgClass, ID, Name, Group, Alias), NumArgs(_NumArgs) {
+ assert(NumArgs > 1 && "Invalid MultiArgOption!");
}
Arg *MultiArgOption::accept(const ArgList &Args, unsigned &Index) const {