void LinkerDriver::createFiles(opt::InputArgList &Args) {
for (auto *Arg : Args) {
- switch (Arg->getOption().getUnaliasedOption().getID()) {
+ unsigned ID = Arg->getOption().getUnaliasedOption().getID();
+ switch (ID) {
case OPT_library:
addLibrary(Arg->getValue());
break;
error(Twine("cannot find linker script ") + Arg->getValue());
break;
case OPT_as_needed:
- Config->AsNeeded = true;
+ case OPT_no_as_needed:
+ Config->AsNeeded = (ID == OPT_as_needed);
break;
case OPT_format:
InBinary = getBinaryOption(Arg->getValue());
break;
- case OPT_no_as_needed:
- Config->AsNeeded = false;
- break;
case OPT_Bstatic:
- Config->Static = true;
- break;
case OPT_Bdynamic:
- Config->Static = false;
+ Config->Static = (ID == OPT_Bstatic);
break;
case OPT_whole_archive:
- InWholeArchive = true;
- break;
case OPT_no_whole_archive:
- InWholeArchive = false;
+ InWholeArchive = (ID == OPT_whole_archive);
break;
case OPT_just_symbols:
if (Optional<MemoryBufferRef> MB = readFile(Arg->getValue())) {
}
break;
case OPT_start_lib:
- InLib = true;
- break;
case OPT_end_lib:
- InLib = false;
+ InLib = (ID == OPT_start_lib);
break;
}
}