Index: cfe/trunk/lib/Driver/Driver.cpp =================================================================== --- cfe/trunk/lib/Driver/Driver.cpp +++ cfe/trunk/lib/Driver/Driver.cpp @@ -2180,7 +2180,7 @@ Diag(clang::diag::err_drv_unknown_language) << A->getValue(); InputType = types::TY_Object; } - } else if (A->getOption().getID() == options::OPT__SLASH_U) { + } else if (A->getOption().getID() == options::OPT_U) { assert(A->getNumValues() == 1 && "The /U option has one value."); StringRef Val = A->getValue(0); if (Val.find_first_of("/\\") != StringRef::npos) { Index: lld/trunk/COFF/Driver.cpp =================================================================== --- lld/trunk/COFF/Driver.cpp +++ lld/trunk/COFF/Driver.cpp @@ -332,7 +332,7 @@ } for (auto *Arg : Args) { - switch (Arg->getOption().getUnaliasedOption().getID()) { + switch (Arg->getOption().getID()) { case OPT_aligncomm: parseAligncomm(Arg->getValue()); break; Index: lld/trunk/ELF/Driver.cpp =================================================================== --- lld/trunk/ELF/Driver.cpp +++ lld/trunk/ELF/Driver.cpp @@ -1112,7 +1112,7 @@ // Iterate over argv to process input files and positional arguments. for (auto *Arg : Args) { - switch (Arg->getOption().getUnaliasedOption().getID()) { + switch (Arg->getOption().getID()) { case OPT_library: addLibrary(Arg->getValue()); break; Index: lld/trunk/ELF/DriverUtils.cpp =================================================================== --- lld/trunk/ELF/DriverUtils.cpp +++ lld/trunk/ELF/DriverUtils.cpp @@ -172,7 +172,7 @@ // Copy the command line to the output while rewriting paths. for (auto *Arg : Args) { - switch (Arg->getOption().getUnaliasedOption().getID()) { + switch (Arg->getOption().getID()) { case OPT_reproduce: break; case OPT_INPUT: Index: lld/trunk/MinGW/Driver.cpp =================================================================== --- lld/trunk/MinGW/Driver.cpp +++ lld/trunk/MinGW/Driver.cpp @@ -313,7 +313,7 @@ StringRef Prefix = ""; bool Static = false; for (auto *A : Args) { - switch (A->getOption().getUnaliasedOption().getID()) { + switch (A->getOption().getID()) { case OPT_INPUT: if (StringRef(A->getValue()).endswith_lower(".def")) Add("-def:" + StringRef(A->getValue())); Index: lld/trunk/wasm/Driver.cpp =================================================================== --- lld/trunk/wasm/Driver.cpp +++ lld/trunk/wasm/Driver.cpp @@ -271,7 +271,7 @@ void LinkerDriver::createFiles(opt::InputArgList &Args) { for (auto *Arg : Args) { - switch (Arg->getOption().getUnaliasedOption().getID()) { + switch (Arg->getOption().getID()) { case OPT_l: addLibrary(Arg->getValue()); break; @@ -531,7 +531,7 @@ // Copy the command line to the output while rewriting paths. for (auto *Arg : Args) { - switch (Arg->getOption().getUnaliasedOption().getID()) { + switch (Arg->getOption().getID()) { case OPT_reproduce: break; case OPT_INPUT: Index: llvm/trunk/lib/Option/Option.cpp =================================================================== --- llvm/trunk/lib/Option/Option.cpp +++ llvm/trunk/lib/Option/Option.cpp @@ -207,7 +207,7 @@ // FIXME: Avoid strlen. if (ArgSize != strlen(Args.getArgString(Index))) { const char *Value = Args.getArgString(Index) + ArgSize; - return new Arg(*this, Spelling, Index++, Value); + return new Arg(UnaliasedOption, Spelling, Index++, Value); } // Otherwise it must be separate.