r240791 - clang-format some of the files in lib/Driver. NFC
Nico Weber
thakis at chromium.org
Mon Jun 29 07:57:50 PDT 2015
On Mon, Jun 29, 2015 at 12:45 AM, Daniel Jasper <djasper at google.com> wrote:
> From what I understand, the people send out such a CL if they plan to make
> a reasonable amount of changes and use clang-format going forward.
>
Yes, this makes sense to me. But http://reviews.llvm.org/D10609 touched on
the order of 50 lines in a 3000 line file, so I'm not sure that applies
here.
> Now, the alternative would be to just reformat the lines affected by a
> patch (e.g. use git-clang-format). The latter has two disadvantages:
> 1. The actual patch is harder to understand as there are more formatting
> changes mixed into it.
> 2. If the state of the file is significantly different from what
> clang-format does, the lines affected by a patch might look quite
> inconsistent.
>
> I not trying to argue either way, just saying that the value of this patch
> is not in making the file more readable, but to ease further changes to it.
>
> On Sun, Jun 28, 2015 at 2:00 PM, Rafael EspĂndola <
> rafael.espindola at gmail.com> wrote:
>
>> For what it is worth, I find clang-format an awesome tool for *fixing*
>> conflicts: just clang-format both ends before you merge.
>> On Jun 27, 2015 12:34 PM, "Nico Weber" <thakis at chromium.org> wrote:
>>
>>> Can we please not land CLs like this in the future? They screw up `svn
>>> blame` output, cause tons of local conflicts, and don't add all that much.
>>>
>>> On Fri, Jun 26, 2015 at 8:47 AM, Douglas Katzman <dougk at google.com>
>>> wrote:
>>>
>>>> Author: dougk
>>>> Date: Fri Jun 26 10:47:46 2015
>>>> New Revision: 240791
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=240791&view=rev
>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D240791-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=HQQNmbImUf4F-mcwxbN9TPWVeRmDPUPU4dZwwCB61Pk&s=ehuiDRVzsaoAEE_Xwi0aZYBuWJWAIKpF0BvdqTqpOj8&e=>
>>>> Log:
>>>> clang-format some of the files in lib/Driver. NFC
>>>>
>>>> Nothing was hand edited afterward except a few literal strings
>>>> and comments that were poorly broken.
>>>>
>>>> Differential Revision: http://reviews.llvm.org/D10689
>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D10689&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=HQQNmbImUf4F-mcwxbN9TPWVeRmDPUPU4dZwwCB61Pk&s=KjQXFMmiibw0_SEtTwJ4CMCZ4f51wZJxUXrCis-mLJI&e=>
>>>>
>>>> Modified:
>>>> cfe/trunk/lib/Driver/Driver.cpp
>>>> cfe/trunk/lib/Driver/ToolChains.cpp
>>>> cfe/trunk/lib/Driver/ToolChains.h
>>>> cfe/trunk/lib/Driver/Tools.cpp
>>>>
>>>> Modified: cfe/trunk/lib/Driver/Driver.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=240791&r1=240790&r2=240791&view=diff
>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Driver_Driver.cpp-3Frev-3D240791-26r1-3D240790-26r2-3D240791-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=HQQNmbImUf4F-mcwxbN9TPWVeRmDPUPU4dZwwCB61Pk&s=iFEgxCqDJj7sKJnBBLfAOJtr4_JAVx3j2I3JOxCPna8&e=>
>>>>
>>>> ==============================================================================
>>>> --- cfe/trunk/lib/Driver/Driver.cpp (original)
>>>> +++ cfe/trunk/lib/Driver/Driver.cpp Fri Jun 26 10:47:46 2015
>>>> @@ -58,7 +58,7 @@ Driver::Driver(StringRef ClangExecutable
>>>> CCCUsePCH(true), SuppressMissingInputWarning(false) {
>>>>
>>>> Name = llvm::sys::path::filename(ClangExecutable);
>>>> - Dir = llvm::sys::path::parent_path(ClangExecutable);
>>>> + Dir = llvm::sys::path::parent_path(ClangExecutable);
>>>>
>>>> // Compute the path to the resource directory.
>>>> StringRef ClangResourceDir(CLANG_RESOURCE_DIR);
>>>> @@ -81,7 +81,7 @@ Driver::~Driver() {
>>>>
>>>> void Driver::ParseDriverMode(ArrayRef<const char *> Args) {
>>>> const std::string OptName =
>>>> - getOpts().getOption(options::OPT_driver_mode).getPrefixedName();
>>>> + getOpts().getOption(options::OPT_driver_mode).getPrefixedName();
>>>>
>>>> for (const char *ArgPtr : Args) {
>>>> // Ingore nullptrs, they are response file's EOL markers
>>>> @@ -93,11 +93,11 @@ void Driver::ParseDriverMode(ArrayRef<co
>>>>
>>>> const StringRef Value = Arg.drop_front(OptName.size());
>>>> const unsigned M = llvm::StringSwitch<unsigned>(Value)
>>>> - .Case("gcc", GCCMode)
>>>> - .Case("g++", GXXMode)
>>>> - .Case("cpp", CPPMode)
>>>> - .Case("cl", CLMode)
>>>> - .Default(~0U);
>>>> + .Case("gcc", GCCMode)
>>>> + .Case("g++", GXXMode)
>>>> + .Case("cpp", CPPMode)
>>>> + .Case("cl", CLMode)
>>>> + .Default(~0U);
>>>>
>>>> if (M != ~0U)
>>>> Mode = static_cast<DriverMode>(M);
>>>> @@ -112,7 +112,7 @@ InputArgList Driver::ParseArgStrings(Arr
>>>> unsigned IncludedFlagsBitmask;
>>>> unsigned ExcludedFlagsBitmask;
>>>> std::tie(IncludedFlagsBitmask, ExcludedFlagsBitmask) =
>>>> - getIncludeExcludeOptionFlagMasks();
>>>> + getIncludeExcludeOptionFlagMasks();
>>>>
>>>> unsigned MissingArgIndex, MissingArgCount;
>>>> InputArgList Args =
>>>> @@ -132,8 +132,7 @@ InputArgList Driver::ParseArgStrings(Arr
>>>> }
>>>>
>>>> // Warn about -mcpu= without an argument.
>>>> - if (A->getOption().matches(options::OPT_mcpu_EQ) &&
>>>> - A->containsValue("")) {
>>>> + if (A->getOption().matches(options::OPT_mcpu_EQ) &&
>>>> A->containsValue("")) {
>>>> Diag(clang::diag::warn_drv_empty_joined_argument) <<
>>>> A->getAsString(Args);
>>>> }
>>>> }
>>>> @@ -147,14 +146,13 @@ InputArgList Driver::ParseArgStrings(Arr
>>>> // Determine which compilation mode we are in. We look for options
>>>> which
>>>> // affect the phase, starting with the earliest phases, and record
>>>> which
>>>> // option we used to determine the final phase.
>>>> -phases::ID Driver::getFinalPhase(const DerivedArgList &DAL, Arg
>>>> **FinalPhaseArg)
>>>> -const {
>>>> +phases::ID Driver::getFinalPhase(const DerivedArgList &DAL,
>>>> + Arg **FinalPhaseArg) const {
>>>> Arg *PhaseArg = nullptr;
>>>> phases::ID FinalPhase;
>>>>
>>>> // -{E,EP,P,M,MM} only run the preprocessor.
>>>> - if (CCCIsCPP() ||
>>>> - (PhaseArg = DAL.getLastArg(options::OPT_E)) ||
>>>> + if (CCCIsCPP() || (PhaseArg = DAL.getLastArg(options::OPT_E)) ||
>>>> (PhaseArg = DAL.getLastArg(options::OPT__SLASH_EP)) ||
>>>> (PhaseArg = DAL.getLastArg(options::OPT_M, options::OPT_MM)) ||
>>>> (PhaseArg = DAL.getLastArg(options::OPT__SLASH_P))) {
>>>> @@ -190,7 +188,7 @@ const {
>>>> return FinalPhase;
>>>> }
>>>>
>>>> -static Arg* MakeInputArg(DerivedArgList &Args, OptTable *Opts,
>>>> +static Arg *MakeInputArg(DerivedArgList &Args, OptTable *Opts,
>>>> StringRef Value) {
>>>> Arg *A = new Arg(Opts->getOption(options::OPT_INPUT), Value,
>>>> Args.getBaseArgs().MakeIndex(Value), Value.data());
>>>> @@ -248,15 +246,13 @@ DerivedArgList *Driver::TranslateInputAr
>>>>
>>>> // Rewrite unless -nostdlib is present.
>>>> if (!HasNostdlib && Value == "stdc++") {
>>>> - DAL->AddFlagArg(A, Opts->getOption(
>>>> - options::OPT_Z_reserved_lib_stdcxx));
>>>> + DAL->AddFlagArg(A,
>>>> Opts->getOption(options::OPT_Z_reserved_lib_stdcxx));
>>>> continue;
>>>> }
>>>>
>>>> // Rewrite unconditionally.
>>>> if (Value == "cc_kext") {
>>>> - DAL->AddFlagArg(A, Opts->getOption(
>>>> - options::OPT_Z_reserved_lib_cckext));
>>>> + DAL->AddFlagArg(A,
>>>> Opts->getOption(options::OPT_Z_reserved_lib_cckext));
>>>> continue;
>>>> }
>>>> }
>>>> @@ -272,8 +268,8 @@ DerivedArgList *Driver::TranslateInputAr
>>>> DAL->append(A);
>>>> }
>>>>
>>>> - // Add a default value of -mlinker-version=, if one was given and
>>>> the user
>>>> - // didn't specify one.
>>>> +// Add a default value of -mlinker-version=, if one was given and the
>>>> user
>>>> +// didn't specify one.
>>>> #if defined(HOST_LINK_VERSION)
>>>> if (!Args.hasArg(options::OPT_mlinker_version_EQ) &&
>>>> strlen(HOST_LINK_VERSION) > 0) {
>>>> @@ -295,8 +291,8 @@ Compilation *Driver::BuildCompilation(Ar
>>>> if (char *env = ::getenv("COMPILER_PATH")) {
>>>> StringRef CompilerPath = env;
>>>> while (!CompilerPath.empty()) {
>>>> - std::pair<StringRef, StringRef> Split
>>>> - = CompilerPath.split(llvm::sys::EnvPathSeparator);
>>>> + std::pair<StringRef, StringRef> Split =
>>>> + CompilerPath.split(llvm::sys::EnvPathSeparator);
>>>> PrefixDirs.push_back(Split.first);
>>>> CompilerPath = Split.second;
>>>> }
>>>> @@ -387,8 +383,8 @@ Compilation *Driver::BuildCompilation(Ar
>>>> // Construct the list of abstract actions to perform for this
>>>> compilation. On
>>>> // MachO targets this uses the driver-driver and universal actions.
>>>> if (TC.getTriple().isOSBinFormatMachO())
>>>> - BuildUniversalActions(C->getDefaultToolChain(), C->getArgs(),
>>>> - Inputs, C->getActions());
>>>> + BuildUniversalActions(C->getDefaultToolChain(), C->getArgs(),
>>>> Inputs,
>>>> + C->getActions());
>>>> else
>>>> BuildActions(C->getDefaultToolChain(), C->getArgs(), Inputs,
>>>> C->getActions());
>>>> @@ -420,8 +416,8 @@ void Driver::generateCompilationDiagnost
>>>> PrintVersion(C, llvm::errs());
>>>>
>>>> Diag(clang::diag::note_drv_command_failed_diag_msg)
>>>> - << "PLEASE submit a bug report to " BUG_REPORT_URL " and include
>>>> the "
>>>> - "crash backtrace, preprocessed source, and associated run script.";
>>>> + << "PLEASE submit a bug report to " BUG_REPORT_URL " and include
>>>> the "
>>>> + "crash backtrace, preprocessed source, and associated run
>>>> script.";
>>>>
>>>> // Suppress driver output and emit preprocessor output to temp file.
>>>> Mode = CPPMode;
>>>> @@ -446,12 +442,12 @@ void Driver::generateCompilationDiagnost
>>>>
>>>> // Ignore input from stdin or any inputs that cannot be
>>>> preprocessed.
>>>> // Check type first as not all linker inputs have a value.
>>>> - if (types::getPreprocessedType(it->first) == types::TY_INVALID) {
>>>> + if (types::getPreprocessedType(it->first) == types::TY_INVALID) {
>>>> IgnoreInput = true;
>>>> } else if (!strcmp(it->second->getValue(), "-")) {
>>>> Diag(clang::diag::note_drv_command_failed_diag_msg)
>>>> - << "Error generating preprocessed source(s) - ignoring input
>>>> from stdin"
>>>> - ".";
>>>> + << "Error generating preprocessed source(s) - "
>>>> + "ignoring input from stdin.";
>>>> IgnoreInput = true;
>>>> }
>>>>
>>>> @@ -465,7 +461,8 @@ void Driver::generateCompilationDiagnost
>>>>
>>>> if (Inputs.empty()) {
>>>> Diag(clang::diag::note_drv_command_failed_diag_msg)
>>>> - << "Error generating preprocessed source(s) - no preprocessable
>>>> inputs.";
>>>> + << "Error generating preprocessed source(s) - "
>>>> + "no preprocessable inputs.";
>>>> return;
>>>> }
>>>>
>>>> @@ -480,8 +477,8 @@ void Driver::generateCompilationDiagnost
>>>> }
>>>> if (ArchNames.size() > 1) {
>>>> Diag(clang::diag::note_drv_command_failed_diag_msg)
>>>> - << "Error generating preprocessed source(s) - cannot generate "
>>>> - "preprocessed source with multiple -arch options.";
>>>> + << "Error generating preprocessed source(s) - cannot generate "
>>>> + "preprocessed source with multiple -arch options.";
>>>> return;
>>>> }
>>>>
>>>> @@ -498,7 +495,7 @@ void Driver::generateCompilationDiagnost
>>>> // If there were errors building the compilation, quit now.
>>>> if (Trap.hasErrorOccurred()) {
>>>> Diag(clang::diag::note_drv_command_failed_diag_msg)
>>>> - << "Error generating preprocessed source(s).";
>>>> + << "Error generating preprocessed source(s).";
>>>> return;
>>>> }
>>>>
>>>> @@ -512,14 +509,14 @@ void Driver::generateCompilationDiagnost
>>>> C.CleanupFileList(C.getTempFiles(), true);
>>>>
>>>> Diag(clang::diag::note_drv_command_failed_diag_msg)
>>>> - << "Error generating preprocessed source(s).";
>>>> + << "Error generating preprocessed source(s).";
>>>> return;
>>>> }
>>>>
>>>> const ArgStringList &TempFiles = C.getTempFiles();
>>>> if (TempFiles.empty()) {
>>>> Diag(clang::diag::note_drv_command_failed_diag_msg)
>>>> - << "Error generating preprocessed source(s).";
>>>> + << "Error generating preprocessed source(s).";
>>>> return;
>>>> }
>>>>
>>>> @@ -583,12 +580,13 @@ void Driver::setUpResponseFiles(Compilat
>>>> return;
>>>>
>>>> std::string TmpName = GetTemporaryPath("response", "txt");
>>>> - CurCommand->setResponseFile(C.addTempFile(C.getArgs().MakeArgString(
>>>> - TmpName.c_str())));
>>>> + CurCommand->setResponseFile(
>>>> + C.addTempFile(C.getArgs().MakeArgString(TmpName.c_str())));
>>>> }
>>>>
>>>> -int Driver::ExecuteCompilation(Compilation &C,
>>>> - SmallVectorImpl< std::pair<int, const Command *> >
>>>> &FailingCommands) {
>>>> +int Driver::ExecuteCompilation(
>>>> + Compilation &C,
>>>> + SmallVectorImpl<std::pair<int, const Command *>> &FailingCommands)
>>>> {
>>>> // Just print if -### was present.
>>>> if (C.getArgs().hasArg(options::OPT__HASH_HASH_HASH)) {
>>>> C.getJobs().Print(llvm::errs(), "\n", true);
>>>> @@ -640,10 +638,10 @@ int Driver::ExecuteCompilation(Compilati
>>>> // FIXME: See FIXME above regarding result code interpretation.
>>>> if (Res < 0)
>>>> Diag(clang::diag::err_drv_command_signalled)
>>>> - << FailingTool.getShortName();
>>>> + << FailingTool.getShortName();
>>>> else
>>>> - Diag(clang::diag::err_drv_command_failed)
>>>> - << FailingTool.getShortName() << Res;
>>>> + Diag(clang::diag::err_drv_command_failed) <<
>>>> FailingTool.getShortName()
>>>> + << Res;
>>>> }
>>>> }
>>>> return 0;
>>>> @@ -653,7 +651,7 @@ void Driver::PrintHelp(bool ShowHidden)
>>>> unsigned IncludedFlagsBitmask;
>>>> unsigned ExcludedFlagsBitmask;
>>>> std::tie(IncludedFlagsBitmask, ExcludedFlagsBitmask) =
>>>> - getIncludeExcludeOptionFlagMasks();
>>>> + getIncludeExcludeOptionFlagMasks();
>>>>
>>>> ExcludedFlagsBitmask |= options::NoDriverOption;
>>>> if (!ShowHidden)
>>>> @@ -684,8 +682,8 @@ void Driver::PrintVersion(const Compilat
>>>> /// option.
>>>> static void PrintDiagnosticCategories(raw_ostream &OS) {
>>>> // Skip the empty category.
>>>> - for (unsigned i = 1, max = DiagnosticIDs::getNumberOfCategories();
>>>> - i != max; ++i)
>>>> + for (unsigned i = 1, max = DiagnosticIDs::getNumberOfCategories(); i
>>>> != max;
>>>> + ++i)
>>>> OS << i << ',' << DiagnosticIDs::getCategoryNameFromID(i) << '\n';
>>>> }
>>>>
>>>> @@ -741,7 +739,8 @@ bool Driver::HandleImmediateArgs(const C
>>>> llvm::outs() << "programs: =";
>>>> bool separator = false;
>>>> for (const std::string &Path : TC.getProgramPaths()) {
>>>> - if (separator) llvm::outs() << ':';
>>>> + if (separator)
>>>> + llvm::outs() << ':';
>>>> llvm::outs() << Path;
>>>> separator = true;
>>>> }
>>>> @@ -817,7 +816,7 @@ bool Driver::HandleImmediateArgs(const C
>>>> // and latest-occuring action. Traversal is in pre-order, visiting the
>>>> // inputs to each action before printing the action itself.
>>>> static unsigned PrintActions1(const Compilation &C, Action *A,
>>>> - std::map<Action*, unsigned> &Ids) {
>>>> + std::map<Action *, unsigned> &Ids) {
>>>> if (Ids.count(A)) // A was already visited.
>>>> return Ids[A];
>>>>
>>>> @@ -858,8 +857,7 @@ void Driver::PrintActions(const Compilat
>>>> /// \brief Check whether the given input tree contains any compilation
>>>> or
>>>> /// assembly actions.
>>>> static bool ContainsCompileOrAssembleAction(const Action *A) {
>>>> - if (isa<CompileJobAction>(A) ||
>>>> - isa<BackendJobAction>(A) ||
>>>> + if (isa<CompileJobAction>(A) || isa<BackendJobAction>(A) ||
>>>> isa<AssembleJobAction>(A))
>>>> return true;
>>>>
>>>> @@ -870,8 +868,7 @@ static bool ContainsCompileOrAssembleAct
>>>> return false;
>>>> }
>>>>
>>>> -void Driver::BuildUniversalActions(const ToolChain &TC,
>>>> - DerivedArgList &Args,
>>>> +void Driver::BuildUniversalActions(const ToolChain &TC, DerivedArgList
>>>> &Args,
>>>> const InputList &BAInputs,
>>>> ActionList &Actions) const {
>>>> llvm::PrettyStackTraceString CrashInfo("Building universal build
>>>> actions");
>>>> @@ -884,10 +881,9 @@ void Driver::BuildUniversalActions(const
>>>> // Validate the option here; we don't save the type here because
>>>> its
>>>> // particular spelling may participate in other driver choices.
>>>> llvm::Triple::ArchType Arch =
>>>> - tools::darwin::getArchTypeForMachOArchName(A->getValue());
>>>> + tools::darwin::getArchTypeForMachOArchName(A->getValue());
>>>> if (Arch == llvm::Triple::UnknownArch) {
>>>> - Diag(clang::diag::err_drv_invalid_arch_name)
>>>> - << A->getAsString(Args);
>>>> + Diag(clang::diag::err_drv_invalid_arch_name) <<
>>>> A->getAsString(Args);
>>>> continue;
>>>> }
>>>>
>>>> @@ -918,7 +914,7 @@ void Driver::BuildUniversalActions(const
>>>>
>>>> if (Archs.size() > 1 && !types::canLipoType(Act->getType()))
>>>> Diag(clang::diag::err_drv_invalid_output_with_multiple_archs)
>>>> - << types::getTypeName(Act->getType());
>>>> + << types::getTypeName(Act->getType());
>>>>
>>>> ActionList Inputs;
>>>> for (unsigned i = 0, e = Archs.size(); i != e; ++i) {
>>>> @@ -1008,10 +1004,11 @@ void Driver::BuildInputs(const ToolChain
>>>> options::OPT__SLASH_TP)) {
>>>> InputTypeArg = TCTP;
>>>> InputType = TCTP->getOption().matches(options::OPT__SLASH_TC)
>>>> - ? types::TY_C : types::TY_CXX;
>>>> + ? types::TY_C
>>>> + : types::TY_CXX;
>>>>
>>>> - arg_iterator it = Args.filtered_begin(options::OPT__SLASH_TC,
>>>> - options::OPT__SLASH_TP);
>>>> + arg_iterator it =
>>>> + Args.filtered_begin(options::OPT__SLASH_TC,
>>>> options::OPT__SLASH_TP);
>>>> const arg_iterator ie = Args.filtered_end();
>>>> Arg *Previous = *it++;
>>>> bool ShowNote = false;
>>>> @@ -1073,7 +1070,7 @@ void Driver::BuildInputs(const ToolChain
>>>>
>>>> if (Ty != OldTy)
>>>> Diag(clang::diag::warn_drv_treating_input_as_cxx)
>>>> - << getTypeName(OldTy) << getTypeName(Ty);
>>>> + << getTypeName(OldTy) << getTypeName(Ty);
>>>> }
>>>> }
>>>>
>>>> @@ -1175,7 +1172,7 @@ void Driver::BuildActions(const ToolChai
>>>> !llvm::sys::path::is_separator(V.back())) {
>>>> // Check whether /Fo tries to name an output file for multiple
>>>> inputs.
>>>>
>>>> Diag(clang::diag::err_drv_out_file_argument_with_multiple_sources)
>>>> - << A->getSpelling() << V;
>>>> + << A->getSpelling() << V;
>>>> Args.eraseArg(options::OPT__SLASH_Fo);
>>>> }
>>>> }
>>>> @@ -1187,7 +1184,7 @@ void Driver::BuildActions(const ToolChai
>>>> !llvm::sys::path::is_separator(V.back())) {
>>>> // Check whether /Fa tries to name an asm file for multiple
>>>> inputs.
>>>>
>>>> Diag(clang::diag::err_drv_out_file_argument_with_multiple_sources)
>>>> - << A->getSpelling() << V;
>>>> + << A->getSpelling() << V;
>>>> Args.eraseArg(options::OPT__SLASH_Fa);
>>>> }
>>>> }
>>>> @@ -1227,30 +1224,27 @@ void Driver::BuildActions(const ToolChai
>>>> // by a command-line argument with a corresponding Arg.
>>>> if (CCCIsCPP())
>>>> Diag(clang::diag::warn_drv_input_file_unused_by_cpp)
>>>> - << InputArg->getAsString(Args)
>>>> - << getPhaseName(InitialPhase);
>>>> + << InputArg->getAsString(Args) <<
>>>> getPhaseName(InitialPhase);
>>>> // Special case '-E' warning on a previously preprocessed file
>>>> to make
>>>> // more sense.
>>>> else if (InitialPhase == phases::Compile &&
>>>> FinalPhase == phases::Preprocess &&
>>>> getPreprocessedType(InputType) == types::TY_INVALID)
>>>> Diag(clang::diag::warn_drv_preprocessed_input_file_unused)
>>>> - << InputArg->getAsString(Args)
>>>> - << !!FinalPhaseArg
>>>> - << (FinalPhaseArg ? FinalPhaseArg->getOption().getName() :
>>>> "");
>>>> + << InputArg->getAsString(Args) << !!FinalPhaseArg
>>>> + << (FinalPhaseArg ? FinalPhaseArg->getOption().getName() :
>>>> "");
>>>> else
>>>> Diag(clang::diag::warn_drv_input_file_unused)
>>>> - << InputArg->getAsString(Args)
>>>> - << getPhaseName(InitialPhase)
>>>> - << !!FinalPhaseArg
>>>> - << (FinalPhaseArg ? FinalPhaseArg->getOption().getName() :
>>>> "");
>>>> + << InputArg->getAsString(Args) <<
>>>> getPhaseName(InitialPhase)
>>>> + << !!FinalPhaseArg
>>>> + << (FinalPhaseArg ? FinalPhaseArg->getOption().getName() :
>>>> "");
>>>> continue;
>>>> }
>>>>
>>>> // Build the pipeline for this file.
>>>> std::unique_ptr<Action> Current(new InputAction(*InputArg,
>>>> InputType));
>>>> - for (SmallVectorImpl<phases::ID>::iterator
>>>> - i = PL.begin(), e = PL.end(); i != e; ++i) {
>>>> + for (SmallVectorImpl<phases::ID>::iterator i = PL.begin(), e =
>>>> PL.end();
>>>> + i != e; ++i) {
>>>> phases::ID Phase = *i;
>>>>
>>>> // We are done if this step is past what the user requested.
>>>> @@ -1303,7 +1297,8 @@ Driver::ConstructPhaseAction(const ToolC
>>>> llvm::PrettyStackTraceString CrashInfo("Constructing phase actions");
>>>> // Build the appropriate action.
>>>> switch (Phase) {
>>>> - case phases::Link: llvm_unreachable("link action invalid here.");
>>>> + case phases::Link:
>>>> + llvm_unreachable("link action invalid here.");
>>>> case phases::Preprocess: {
>>>> types::ID OutputTy;
>>>> // -{M, MM} alter the output type.
>>>> @@ -1359,12 +1354,12 @@ Driver::ConstructPhaseAction(const ToolC
>>>> case phases::Backend: {
>>>> if (IsUsingLTO(Args)) {
>>>> types::ID Output =
>>>> - Args.hasArg(options::OPT_S) ? types::TY_LTO_IR :
>>>> types::TY_LTO_BC;
>>>> + Args.hasArg(options::OPT_S) ? types::TY_LTO_IR :
>>>> types::TY_LTO_BC;
>>>> return llvm::make_unique<BackendJobAction>(std::move(Input),
>>>> Output);
>>>> }
>>>> if (Args.hasArg(options::OPT_emit_llvm)) {
>>>> types::ID Output =
>>>> - Args.hasArg(options::OPT_S) ? types::TY_LLVM_IR :
>>>> types::TY_LLVM_BC;
>>>> + Args.hasArg(options::OPT_S) ? types::TY_LLVM_IR :
>>>> types::TY_LLVM_BC;
>>>> return llvm::make_unique<BackendJobAction>(std::move(Input),
>>>> Output);
>>>> }
>>>> return llvm::make_unique<BackendJobAction>(std::move(Input),
>>>> @@ -1425,11 +1420,10 @@ void Driver::BuildJobs(Compilation &C) c
>>>>
>>>> InputInfo II;
>>>> BuildJobsForAction(C, A, &C.getDefaultToolChain(),
>>>> - /*BoundArch*/nullptr,
>>>> + /*BoundArch*/ nullptr,
>>>> /*AtTopLevel*/ true,
>>>> /*MultipleArchs*/ ArchNames.size() > 1,
>>>> - /*LinkingOutput*/ LinkingOutput,
>>>> - II);
>>>> + /*LinkingOutput*/ LinkingOutput, II);
>>>> }
>>>>
>>>> // If the user passed -Qunused-arguments or there were errors, don't
>>>> warn
>>>> @@ -1439,10 +1433,10 @@ void Driver::BuildJobs(Compilation &C) c
>>>> return;
>>>>
>>>> // Claim -### here.
>>>> - (void) C.getArgs().hasArg(options::OPT__HASH_HASH_HASH);
>>>> + (void)C.getArgs().hasArg(options::OPT__HASH_HASH_HASH);
>>>>
>>>> // Claim --driver-mode, it was handled earlier.
>>>> - (void) C.getArgs().hasArg(options::OPT_driver_mode);
>>>> + (void)C.getArgs().hasArg(options::OPT_driver_mode);
>>>>
>>>> for (Arg *A : C.getArgs()) {
>>>> // FIXME: It would be nice to be able to send the argument to the
>>>> @@ -1470,7 +1464,7 @@ void Driver::BuildJobs(Compilation &C) c
>>>> }
>>>>
>>>> Diag(clang::diag::warn_drv_unused_argument)
>>>> - << A->getAsString(C.getArgs());
>>>> + << A->getAsString(C.getArgs());
>>>> }
>>>> }
>>>> }
>>>> @@ -1484,13 +1478,12 @@ static const Tool *SelectToolForJob(Comp
>>>> // bottom up, so what we are actually looking for is an assembler
>>>> job with a
>>>> // compiler input.
>>>>
>>>> - if (TC->useIntegratedAs() &&
>>>> - !SaveTemps &&
>>>> + if (TC->useIntegratedAs() && !SaveTemps &&
>>>> !C.getArgs().hasArg(options::OPT_via_file_asm) &&
>>>> !C.getArgs().hasArg(options::OPT__SLASH_FA) &&
>>>> !C.getArgs().hasArg(options::OPT__SLASH_Fa) &&
>>>> - isa<AssembleJobAction>(JA) &&
>>>> - Inputs->size() == 1 && isa<BackendJobAction>(*Inputs->begin())) {
>>>> + isa<AssembleJobAction>(JA) && Inputs->size() == 1 &&
>>>> + isa<BackendJobAction>(*Inputs->begin())) {
>>>> // A BackendJob is always preceded by a CompileJob, and without
>>>> // -save-temps they will always get combined together, so instead
>>>> of
>>>> // checking the backend tool, check if the tool for the CompileJob
>>>> @@ -1531,8 +1524,7 @@ static const Tool *SelectToolForJob(Comp
>>>> // (irrelevant since we don't support combine yet).
>>>> if (Inputs->size() == 1 &&
>>>> isa<PreprocessJobAction>(*Inputs->begin()) &&
>>>> !C.getArgs().hasArg(options::OPT_no_integrated_cpp) &&
>>>> - !C.getArgs().hasArg(options::OPT_traditional_cpp) &&
>>>> - !SaveTemps &&
>>>> + !C.getArgs().hasArg(options::OPT_traditional_cpp) && !SaveTemps
>>>> &&
>>>> !C.getArgs().hasArg(options::OPT_rewrite_objc) &&
>>>> ToolForJob->hasIntegratedCPP())
>>>> Inputs = &(*Inputs)[0]->getInputs();
>>>> @@ -1540,12 +1532,9 @@ static const Tool *SelectToolForJob(Comp
>>>> return ToolForJob;
>>>> }
>>>>
>>>> -void Driver::BuildJobsForAction(Compilation &C,
>>>> - const Action *A,
>>>> - const ToolChain *TC,
>>>> - const char *BoundArch,
>>>> - bool AtTopLevel,
>>>> - bool MultipleArchs,
>>>> +void Driver::BuildJobsForAction(Compilation &C, const Action *A,
>>>> + const ToolChain *TC, const char
>>>> *BoundArch,
>>>> + bool AtTopLevel, bool MultipleArchs,
>>>> const char *LinkingOutput,
>>>> InputInfo &Result) const {
>>>> llvm::PrettyStackTraceString CrashInfo("Building compilation jobs");
>>>> @@ -1573,8 +1562,8 @@ void Driver::BuildJobsForAction(Compilat
>>>> else
>>>> TC = &C.getDefaultToolChain();
>>>>
>>>> - BuildJobsForAction(C, *BAA->begin(), TC, BAA->getArchName(),
>>>> - AtTopLevel, MultipleArchs, LinkingOutput,
>>>> Result);
>>>> + BuildJobsForAction(C, *BAA->begin(), TC, BAA->getArchName(),
>>>> AtTopLevel,
>>>> + MultipleArchs, LinkingOutput, Result);
>>>> return;
>>>> }
>>>>
>>>> @@ -1642,7 +1631,8 @@ const char *Driver::getDefaultImageName(
>>>> /// does not provide a filename, then use BaseName, and use the
>>>> extension
>>>> /// suitable for FileType.
>>>> static const char *MakeCLOutputFilename(const ArgList &Args, StringRef
>>>> ArgValue,
>>>> - StringRef BaseName, types::ID
>>>> FileType) {
>>>> + StringRef BaseName,
>>>> + types::ID FileType) {
>>>> SmallString<128> Filename = ArgValue;
>>>>
>>>> if (ArgValue.empty()) {
>>>> @@ -1669,16 +1659,13 @@ static const char *MakeCLOutputFilename(
>>>> return Args.MakeArgString(Filename.c_str());
>>>> }
>>>>
>>>> -const char *Driver::GetNamedOutputPath(Compilation &C,
>>>> - const JobAction &JA,
>>>> +const char *Driver::GetNamedOutputPath(Compilation &C, const JobAction
>>>> &JA,
>>>> const char *BaseInput,
>>>> - const char *BoundArch,
>>>> - bool AtTopLevel,
>>>> + const char *BoundArch, bool
>>>> AtTopLevel,
>>>> bool MultipleArchs) const {
>>>> llvm::PrettyStackTraceString CrashInfo("Computing output path");
>>>> // Output to a user requested destination?
>>>> - if (AtTopLevel && !isa<DsymutilJobAction>(JA) &&
>>>> - !isa<VerifyJobAction>(JA)) {
>>>> + if (AtTopLevel && !isa<DsymutilJobAction>(JA) &&
>>>> !isa<VerifyJobAction>(JA)) {
>>>> if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o))
>>>> return C.addResultFile(FinalOutput->getValue(), &JA);
>>>> }
>>>> @@ -1690,8 +1677,9 @@ const char *Driver::GetNamedOutputPath(C
>>>> StringRef NameArg;
>>>> if (Arg *A = C.getArgs().getLastArg(options::OPT__SLASH_Fi))
>>>> NameArg = A->getValue();
>>>> - return C.addResultFile(MakeCLOutputFilename(C.getArgs(), NameArg,
>>>> BaseName,
>>>> - types::TY_PP_C), &JA);
>>>> + return C.addResultFile(
>>>> + MakeCLOutputFilename(C.getArgs(), NameArg, BaseName,
>>>> types::TY_PP_C),
>>>> + &JA);
>>>> }
>>>>
>>>> // Default to writing to stdout?
>>>> @@ -1706,19 +1694,19 @@ const char *Driver::GetNamedOutputPath(C
>>>> // Use /Fa and the input filename to determine the asm file name.
>>>> StringRef BaseName = llvm::sys::path::filename(BaseInput);
>>>> StringRef FaValue =
>>>> C.getArgs().getLastArgValue(options::OPT__SLASH_Fa);
>>>> - return C.addResultFile(MakeCLOutputFilename(C.getArgs(), FaValue,
>>>> BaseName,
>>>> - JA.getType()), &JA);
>>>> + return C.addResultFile(
>>>> + MakeCLOutputFilename(C.getArgs(), FaValue, BaseName,
>>>> JA.getType()),
>>>> + &JA);
>>>> }
>>>>
>>>> // Output to a temporary file?
>>>> if ((!AtTopLevel && !isSaveTempsEnabled() &&
>>>> - !C.getArgs().hasArg(options::OPT__SLASH_Fo)) ||
>>>> + !C.getArgs().hasArg(options::OPT__SLASH_Fo)) ||
>>>> CCGenDiagnostics) {
>>>> StringRef Name = llvm::sys::path::filename(BaseInput);
>>>> std::pair<StringRef, StringRef> Split = Name.split('.');
>>>> - std::string TmpName =
>>>> - GetTemporaryPath(Split.first,
>>>> - types::getTypeTempSuffix(JA.getType(), IsCLMode()));
>>>> + std::string TmpName = GetTemporaryPath(
>>>> + Split.first, types::getTypeTempSuffix(JA.getType(),
>>>> IsCLMode()));
>>>> return C.addTempFile(C.getArgs().MakeArgString(TmpName.c_str()));
>>>> }
>>>>
>>>> @@ -1737,22 +1725,27 @@ const char *Driver::GetNamedOutputPath(C
>>>> if (JA.getType() == types::TY_Object &&
>>>> C.getArgs().hasArg(options::OPT__SLASH_Fo,
>>>> options::OPT__SLASH_o)) {
>>>> // The /Fo or /o flag decides the object filename.
>>>> - StringRef Val = C.getArgs().getLastArg(options::OPT__SLASH_Fo,
>>>> -
>>>> options::OPT__SLASH_o)->getValue();
>>>> - NamedOutput = MakeCLOutputFilename(C.getArgs(), Val, BaseName,
>>>> - types::TY_Object);
>>>> + StringRef Val =
>>>> + C.getArgs()
>>>> + .getLastArg(options::OPT__SLASH_Fo, options::OPT__SLASH_o)
>>>> + ->getValue();
>>>> + NamedOutput =
>>>> + MakeCLOutputFilename(C.getArgs(), Val, BaseName,
>>>> types::TY_Object);
>>>> } else if (JA.getType() == types::TY_Image &&
>>>> - C.getArgs().hasArg(options::OPT__SLASH_Fe,
>>>> options::OPT__SLASH_o)) {
>>>> + C.getArgs().hasArg(options::OPT__SLASH_Fe,
>>>> + options::OPT__SLASH_o)) {
>>>> // The /Fe or /o flag names the linked file.
>>>> - StringRef Val = C.getArgs().getLastArg(options::OPT__SLASH_Fe,
>>>> -
>>>> options::OPT__SLASH_o)->getValue();
>>>> - NamedOutput = MakeCLOutputFilename(C.getArgs(), Val, BaseName,
>>>> - types::TY_Image);
>>>> + StringRef Val =
>>>> + C.getArgs()
>>>> + .getLastArg(options::OPT__SLASH_Fe, options::OPT__SLASH_o)
>>>> + ->getValue();
>>>> + NamedOutput =
>>>> + MakeCLOutputFilename(C.getArgs(), Val, BaseName,
>>>> types::TY_Image);
>>>> } else if (JA.getType() == types::TY_Image) {
>>>> if (IsCLMode()) {
>>>> // clang-cl uses BaseName for the executable name.
>>>> - NamedOutput = MakeCLOutputFilename(C.getArgs(), "", BaseName,
>>>> - types::TY_Image);
>>>> + NamedOutput =
>>>> + MakeCLOutputFilename(C.getArgs(), "", BaseName,
>>>> types::TY_Image);
>>>> } else if (MultipleArchs && BoundArch) {
>>>> SmallString<128> Output(getDefaultImageName());
>>>> Output += "-";
>>>> @@ -1806,9 +1799,8 @@ const char *Driver::GetNamedOutputPath(C
>>>> if (SameFile) {
>>>> StringRef Name = llvm::sys::path::filename(BaseInput);
>>>> std::pair<StringRef, StringRef> Split = Name.split('.');
>>>> - std::string TmpName =
>>>> - GetTemporaryPath(Split.first,
>>>> - types::getTypeTempSuffix(JA.getType(), IsCLMode()));
>>>> + std::string TmpName = GetTemporaryPath(
>>>> + Split.first, types::getTypeTempSuffix(JA.getType(),
>>>> IsCLMode()));
>>>> return C.addTempFile(C.getArgs().MakeArgString(TmpName.c_str()));
>>>> }
>>>> }
>>>> @@ -1855,9 +1847,9 @@ std::string Driver::GetFilePath(const ch
>>>> return Name;
>>>> }
>>>>
>>>> -void
>>>> -Driver::generatePrefixedToolNames(const char *Tool, const ToolChain
>>>> &TC,
>>>> - SmallVectorImpl<std::string> &Names)
>>>> const {
>>>> +void Driver::generatePrefixedToolNames(
>>>> + const char *Tool, const ToolChain &TC,
>>>> + SmallVectorImpl<std::string> &Names) const {
>>>> // FIXME: Needs a better variable than DefaultTargetTriple
>>>> Names.emplace_back(DefaultTargetTriple + "-" + Tool);
>>>> Names.emplace_back(Tool);
>>>> @@ -1909,8 +1901,8 @@ std::string Driver::GetProgramPath(const
>>>> return Name;
>>>> }
>>>>
>>>> -std::string Driver::GetTemporaryPath(StringRef Prefix, const char
>>>> *Suffix)
>>>> - const {
>>>> +std::string Driver::GetTemporaryPath(StringRef Prefix,
>>>> + const char *Suffix) const {
>>>> SmallString<128> Path;
>>>> std::error_code EC = llvm::sys::fs::createTemporaryFile(Prefix,
>>>> Suffix, Path);
>>>> if (EC) {
>>>> @@ -1984,7 +1976,7 @@ static llvm::Triple computeTargetTriple(
>>>> if (Target.getEnvironment() == llvm::Triple::GNUX32)
>>>> Target.setEnvironment(llvm::Triple::GNU);
>>>> } else if (A->getOption().matches(options::OPT_mx32) &&
>>>> - Target.get64BitArchVariant().getArch() ==
>>>> llvm::Triple::x86_64) {
>>>> + Target.get64BitArchVariant().getArch() ==
>>>> llvm::Triple::x86_64) {
>>>> AT = llvm::Triple::x86_64;
>>>> Target.setEnvironment(llvm::Triple::GNUX32);
>>>> } else if (A->getOption().matches(options::OPT_m32)) {
>>>> @@ -1992,7 +1984,7 @@ static llvm::Triple computeTargetTriple(
>>>> if (Target.getEnvironment() == llvm::Triple::GNUX32)
>>>> Target.setEnvironment(llvm::Triple::GNU);
>>>> } else if (A->getOption().matches(options::OPT_m16) &&
>>>> - Target.get32BitArchVariant().getArch() ==
>>>> llvm::Triple::x86) {
>>>> + Target.get32BitArchVariant().getArch() ==
>>>> llvm::Triple::x86) {
>>>> AT = llvm::Triple::x86;
>>>> Target.setEnvironment(llvm::Triple::CODE16);
>>>> }
>>>> @@ -2102,8 +2094,7 @@ const ToolChain &Driver::getToolChain(co
>>>>
>>>> bool Driver::ShouldUseClangCompiler(const JobAction &JA) const {
>>>> // Say "no" if there is not exactly one input of a type clang
>>>> understands.
>>>> - if (JA.size() != 1 ||
>>>> - !types::isAcceptedByClang((*JA.begin())->getType()))
>>>> + if (JA.size() != 1 ||
>>>> !types::isAcceptedByClang((*JA.begin())->getType()))
>>>> return false;
>>>>
>>>> // And say "no" if this is not a kind of action clang understands.
>>>> @@ -2129,21 +2120,21 @@ bool Driver::GetReleaseVersion(const cha
>>>> return false;
>>>>
>>>> char *End;
>>>> - Major = (unsigned) strtol(Str, &End, 10);
>>>> + Major = (unsigned)strtol(Str, &End, 10);
>>>> if (*Str != '\0' && *End == '\0')
>>>> return true;
>>>> if (*End != '.')
>>>> return false;
>>>>
>>>> - Str = End+1;
>>>> - Minor = (unsigned) strtol(Str, &End, 10);
>>>> + Str = End + 1;
>>>> + Minor = (unsigned)strtol(Str, &End, 10);
>>>> if (*Str != '\0' && *End == '\0')
>>>> return true;
>>>> if (*End != '.')
>>>> return false;
>>>>
>>>> - Str = End+1;
>>>> - Micro = (unsigned) strtol(Str, &End, 10);
>>>> + Str = End + 1;
>>>> + Micro = (unsigned)strtol(Str, &End, 10);
>>>> if (*Str != '\0' && *End == '\0')
>>>> return true;
>>>> if (Str == End)
>>>>
>>>> Modified: cfe/trunk/lib/Driver/ToolChains.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=240791&r1=240790&r2=240791&view=diff
>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Driver_ToolChains.cpp-3Frev-3D240791-26r1-3D240790-26r2-3D240791-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=HQQNmbImUf4F-mcwxbN9TPWVeRmDPUPU4dZwwCB61Pk&s=WLNsTtev5Ph5hub_OPpO99miSigv8DxizT62UyJWRCc&e=>
>>>>
>>>> ==============================================================================
>>>> --- cfe/trunk/lib/Driver/ToolChains.cpp (original)
>>>> +++ cfe/trunk/lib/Driver/ToolChains.cpp Fri Jun 26 10:47:46 2015
>>>> @@ -39,9 +39,8 @@ using namespace clang::driver::toolchain
>>>> using namespace clang;
>>>> using namespace llvm::opt;
>>>>
>>>> -MachO::MachO(const Driver &D, const llvm::Triple &Triple,
>>>> - const ArgList &Args)
>>>> - : ToolChain(D, Triple, Args) {
>>>> +MachO::MachO(const Driver &D, const llvm::Triple &Triple, const
>>>> ArgList &Args)
>>>> + : ToolChain(D, Triple, Args) {
>>>> // We expect 'as', 'ld', etc. to be adjacent to our install dir.
>>>> getProgramPaths().push_back(getDriver().getInstalledDir());
>>>> if (getDriver().getInstalledDir() != getDriver().Dir)
>>>> @@ -62,9 +61,7 @@ types::ID MachO::LookupTypeForExtension(
>>>> return Ty;
>>>> }
>>>>
>>>> -bool MachO::HasNativeLLVMSupport() const {
>>>> - return true;
>>>> -}
>>>> +bool MachO::HasNativeLLVMSupport() const { return true; }
>>>>
>>>> /// Darwin provides an ARC runtime starting in MacOS X 10.7 and iOS
>>>> 5.0.
>>>> ObjCRuntime Darwin::getDefaultObjCRuntime(bool isNonFragile) const {
>>>> @@ -90,20 +87,20 @@ bool Darwin::hasBlocksRuntime() const {
>>>> // other assumptions. Maybe MachO should consider standardising
>>>> // their nomenclature.
>>>> static const char *ArmMachOArchName(StringRef Arch) {
>>>> - return llvm::StringSwitch<const char*>(Arch)
>>>> - .Case("armv6k", "armv6")
>>>> - .Case("armv6m", "armv6m")
>>>> - .Case("armv5tej", "armv5")
>>>> - .Case("xscale", "xscale")
>>>> - .Case("armv4t", "armv4t")
>>>> - .Case("armv7", "armv7")
>>>> - .Cases("armv7a", "armv7-a", "armv7")
>>>> - .Cases("armv7r", "armv7-r", "armv7")
>>>> - .Cases("armv7em", "armv7e-m", "armv7em")
>>>> - .Cases("armv7k", "armv7-k", "armv7k")
>>>> - .Cases("armv7m", "armv7-m", "armv7m")
>>>> - .Cases("armv7s", "armv7-s", "armv7s")
>>>> - .Default(nullptr);
>>>> + return llvm::StringSwitch<const char *>(Arch)
>>>> + .Case("armv6k", "armv6")
>>>> + .Case("armv6m", "armv6m")
>>>> + .Case("armv5tej", "armv5")
>>>> + .Case("xscale", "xscale")
>>>> + .Case("armv4t", "armv4t")
>>>> + .Case("armv7", "armv7")
>>>> + .Cases("armv7a", "armv7-a", "armv7")
>>>> + .Cases("armv7r", "armv7-r", "armv7")
>>>> + .Cases("armv7em", "armv7e-m", "armv7em")
>>>> + .Cases("armv7k", "armv7-k", "armv7k")
>>>> + .Cases("armv7m", "armv7-m", "armv7m")
>>>> + .Cases("armv7s", "armv7-s", "armv7s")
>>>> + .Default(nullptr);
>>>> }
>>>>
>>>> static const char *ArmMachOArchNameCPU(StringRef CPU) {
>>>> @@ -159,15 +156,12 @@ StringRef MachO::getMachOArchName(const
>>>> }
>>>> }
>>>>
>>>> -Darwin::~Darwin() {
>>>> -}
>>>> -
>>>> -MachO::~MachO() {
>>>> -}
>>>> +Darwin::~Darwin() {}
>>>>
>>>> +MachO::~MachO() {}
>>>>
>>>> std::string MachO::ComputeEffectiveClangTriple(const ArgList &Args,
>>>> - types::ID
>>>> InputType) const {
>>>> + types::ID InputType)
>>>> const {
>>>> llvm::Triple Triple(ComputeLLVMTriple(Args, InputType));
>>>>
>>>> return Triple.getTriple();
>>>> @@ -305,7 +299,7 @@ void MachO::AddLinkRuntimeLib(const ArgL
>>>> }
>>>>
>>>> void Darwin::addProfileRTLibs(const ArgList &Args,
>>>> - ArgStringList &CmdArgs) const {
>>>> + ArgStringList &CmdArgs) const {
>>>> if (!(Args.hasFlag(options::OPT_fprofile_arcs,
>>>> options::OPT_fno_profile_arcs,
>>>> false) ||
>>>> Args.hasArg(options::OPT_fprofile_generate) ||
>>>> @@ -334,10 +328,11 @@ void DarwinClang::AddLinkSanitizerLibArg
>>>> }
>>>> assert(isTargetMacOS() || isTargetIOSSimulator());
>>>> StringRef OS = isTargetMacOS() ? "osx" : "iossim";
>>>> - AddLinkRuntimeLib(Args, CmdArgs, (Twine("libclang_rt.") + Sanitizer
>>>> + "_" +
>>>> - OS + "_dynamic.dylib").str(),
>>>> - /*AlwaysLink*/ true, /*IsEmbedded*/ false,
>>>> - /*AddRPath*/ true);
>>>> + AddLinkRuntimeLib(
>>>> + Args, CmdArgs,
>>>> + (Twine("libclang_rt.") + Sanitizer + "_" + OS +
>>>> "_dynamic.dylib").str(),
>>>> + /*AlwaysLink*/ true, /*IsEmbedded*/ false,
>>>> + /*AddRPath*/ true);
>>>>
>>>> if (GetCXXStdlibType(Args) == ToolChain::CST_Libcxx) {
>>>> // Add explicit dependcy on -lc++abi, as -lc++ doesn't re-export
>>>> @@ -354,7 +349,7 @@ void DarwinClang::AddLinkRuntimeLibArgs(
>>>> break;
>>>> default:
>>>> getDriver().Diag(diag::err_drv_unsupported_rtlib_for_platform)
>>>> - << Args.getLastArg(options::OPT_rtlib_EQ)->getValue() <<
>>>> "darwin";
>>>> + << Args.getLastArg(options::OPT_rtlib_EQ)->getValue() <<
>>>> "darwin";
>>>> return;
>>>> }
>>>>
>>>> @@ -369,12 +364,10 @@ void DarwinClang::AddLinkRuntimeLibArgs(
>>>> // cares. This is useful in situations where someone wants to
>>>> statically link
>>>> // something like libstdc++, and needs its runtime support routines.
>>>> if (const Arg *A = Args.getLastArg(options::OPT_static_libgcc)) {
>>>> - getDriver().Diag(diag::err_drv_unsupported_opt)
>>>> - << A->getAsString(Args);
>>>> + getDriver().Diag(diag::err_drv_unsupported_opt) <<
>>>> A->getAsString(Args);
>>>> return;
>>>> }
>>>>
>>>> -
>>>> const SanitizerArgs &Sanitize = getSanitizerArgs();
>>>> if (Sanitize.needsAsanRt())
>>>> AddLinkSanitizerLibArgs(Args, CmdArgs, "asan");
>>>> @@ -440,7 +433,7 @@ void Darwin::AddDeploymentTarget(Derived
>>>> if (llvm::sys::path::is_absolute(env) &&
>>>> llvm::sys::fs::exists(env) &&
>>>> StringRef(env) != "/") {
>>>> Args.append(Args.MakeSeparateArg(
>>>> - nullptr, Opts.getOption(options::OPT_isysroot),
>>>> env));
>>>> + nullptr, Opts.getOption(options::OPT_isysroot), env));
>>>> }
>>>> }
>>>> }
>>>> @@ -450,8 +443,7 @@ void Darwin::AddDeploymentTarget(Derived
>>>>
>>>> if (OSXVersion && iOSVersion) {
>>>> getDriver().Diag(diag::err_drv_argument_not_allowed_with)
>>>> - << OSXVersion->getAsString(Args)
>>>> - << iOSVersion->getAsString(Args);
>>>> + << OSXVersion->getAsString(Args) <<
>>>> iOSVersion->getAsString(Args);
>>>> iOSVersion = nullptr;
>>>> } else if (!OSXVersion && !iOSVersion) {
>>>> // If no deployment target was specified on the command line,
>>>> check for
>>>> @@ -547,18 +539,18 @@ void Darwin::AddDeploymentTarget(Derived
>>>> bool HadExtra;
>>>> if (Platform == MacOS) {
>>>> assert(!iOSVersion && "Unknown target platform!");
>>>> - if (!Driver::GetReleaseVersion(OSXVersion->getValue(), Major,
>>>> Minor,
>>>> - Micro, HadExtra) || HadExtra ||
>>>> - Major != 10 || Minor >= 100 || Micro >= 100)
>>>> + if (!Driver::GetReleaseVersion(OSXVersion->getValue(), Major,
>>>> Minor, Micro,
>>>> + HadExtra) ||
>>>> + HadExtra || Major != 10 || Minor >= 100 || Micro >= 100)
>>>> getDriver().Diag(diag::err_drv_invalid_version_number)
>>>> - << OSXVersion->getAsString(Args);
>>>> + << OSXVersion->getAsString(Args);
>>>> } else if (Platform == IPhoneOS) {
>>>> assert(iOSVersion && "Unknown target platform!");
>>>> - if (!Driver::GetReleaseVersion(iOSVersion->getValue(), Major,
>>>> Minor,
>>>> - Micro, HadExtra) || HadExtra ||
>>>> - Major >= 10 || Minor >= 100 || Micro >= 100)
>>>> + if (!Driver::GetReleaseVersion(iOSVersion->getValue(), Major,
>>>> Minor, Micro,
>>>> + HadExtra) ||
>>>> + HadExtra || Major >= 10 || Minor >= 100 || Micro >= 100)
>>>> getDriver().Diag(diag::err_drv_invalid_version_number)
>>>> - << iOSVersion->getAsString(Args);
>>>> + << iOSVersion->getAsString(Args);
>>>> } else
>>>> llvm_unreachable("unknown kind of Darwin platform");
>>>>
>>>> @@ -658,10 +650,11 @@ DerivedArgList *MachO::TranslateArgs(con
>>>> // Skip this argument unless the architecture matches either the
>>>> toolchain
>>>> // triple arch, or the arch being bound.
>>>> llvm::Triple::ArchType XarchArch =
>>>> - tools::darwin::getArchTypeForMachOArchName(A->getValue(0));
>>>> - if (!(XarchArch == getArch() ||
>>>> - (BoundArch && XarchArch ==
>>>> - tools::darwin::getArchTypeForMachOArchName(BoundArch))))
>>>> + tools::darwin::getArchTypeForMachOArchName(A->getValue(0));
>>>> + if (!(XarchArch == getArch() ||
>>>> + (BoundArch &&
>>>> + XarchArch ==
>>>> +
>>>> tools::darwin::getArchTypeForMachOArchName(BoundArch))))
>>>> continue;
>>>>
>>>> Arg *OriginalArg = A;
>>>> @@ -679,11 +672,11 @@ DerivedArgList *MachO::TranslateArgs(con
>>>> // like -O4 are going to slip through.
>>>> if (!XarchArg || Index > Prev + 1) {
>>>>
>>>> getDriver().Diag(diag::err_drv_invalid_Xarch_argument_with_args)
>>>> - << A->getAsString(Args);
>>>> + << A->getAsString(Args);
>>>> continue;
>>>> } else if (XarchArg->getOption().hasFlag(options::DriverOption))
>>>> {
>>>> getDriver().Diag(diag::err_drv_invalid_Xarch_argument_isdriver)
>>>> - << A->getAsString(Args);
>>>> + << A->getAsString(Args);
>>>> continue;
>>>> }
>>>>
>>>> @@ -708,7 +701,7 @@ DerivedArgList *MachO::TranslateArgs(con
>>>> // Sob. These is strictly gcc compatible for the time being. Apple
>>>> // gcc translates options twice, which means that self-expanding
>>>> // options add duplicates.
>>>> - switch ((options::ID) A->getOption().getID()) {
>>>> + switch ((options::ID)A->getOption().getID()) {
>>>> default:
>>>> DAL->append(A);
>>>> break;
>>>> @@ -720,20 +713,19 @@ DerivedArgList *MachO::TranslateArgs(con
>>>> break;
>>>>
>>>> case options::OPT_dependency_file:
>>>> - DAL->AddSeparateArg(A, Opts.getOption(options::OPT_MF),
>>>> - A->getValue());
>>>> + DAL->AddSeparateArg(A, Opts.getOption(options::OPT_MF),
>>>> A->getValue());
>>>> break;
>>>>
>>>> case options::OPT_gfull:
>>>> DAL->AddFlagArg(A, Opts.getOption(options::OPT_g_Flag));
>>>> - DAL->AddFlagArg(A,
>>>> -
>>>> Opts.getOption(options::OPT_fno_eliminate_unused_debug_symbols));
>>>> + DAL->AddFlagArg(
>>>> + A,
>>>> Opts.getOption(options::OPT_fno_eliminate_unused_debug_symbols));
>>>> break;
>>>>
>>>> case options::OPT_gused:
>>>> DAL->AddFlagArg(A, Opts.getOption(options::OPT_g_Flag));
>>>> - DAL->AddFlagArg(A,
>>>> -
>>>> Opts.getOption(options::OPT_feliminate_unused_debug_symbols));
>>>> + DAL->AddFlagArg(
>>>> + A,
>>>> Opts.getOption(options::OPT_feliminate_unused_debug_symbols));
>>>> break;
>>>>
>>>> case options::OPT_shared:
>>>> @@ -754,8 +746,8 @@ DerivedArgList *MachO::TranslateArgs(con
>>>> break;
>>>>
>>>> case options::OPT_Wno_nonportable_cfstrings:
>>>> - DAL->AddFlagArg(A,
>>>> -
>>>> Opts.getOption(options::OPT_mno_warn_nonportable_cfstrings));
>>>> + DAL->AddFlagArg(
>>>> + A,
>>>> Opts.getOption(options::OPT_mno_warn_nonportable_cfstrings));
>>>> break;
>>>>
>>>> case options::OPT_fpascal_strings:
>>>> @@ -871,7 +863,6 @@ void MachO::AddLinkRuntimeLibArgs(const
>>>> AddLinkRuntimeLib(Args, CmdArgs, CompilerRT, false, true);
>>>> }
>>>>
>>>> -
>>>> DerivedArgList *Darwin::TranslateArgs(const DerivedArgList &Args,
>>>> const char *BoundArch) const {
>>>> // First get the generic Apple args, before moving onto
>>>> Darwin-specific ones.
>>>> @@ -892,7 +883,7 @@ DerivedArgList *Darwin::TranslateArgs(co
>>>> // but we can't check the deployment target in the translation code
>>>> until
>>>> // it is set here.
>>>> if (isTargetIOSBased() && !isIPhoneOSVersionLT(6, 0)) {
>>>> - for (ArgList::iterator it = DAL->begin(), ie = DAL->end(); it !=
>>>> ie; ) {
>>>> + for (ArgList::iterator it = DAL->begin(), ie = DAL->end(); it !=
>>>> ie;) {
>>>> Arg *A = *it;
>>>> ++it;
>>>> if (A->getOption().getID() != options::OPT_mkernel &&
>>>> @@ -924,8 +915,7 @@ DerivedArgList *Darwin::TranslateArgs(co
>>>> where = "iOS 5.0";
>>>>
>>>> if (where != StringRef()) {
>>>> - getDriver().Diag(clang::diag::err_drv_invalid_libcxx_deployment)
>>>> - << where;
>>>> + getDriver().Diag(clang::diag::err_drv_invalid_libcxx_deployment)
>>>> << where;
>>>> }
>>>> }
>>>>
>>>> @@ -948,13 +938,9 @@ bool Darwin::UseSjLjExceptions() const {
>>>> getTriple().getArch() == llvm::Triple::thumb);
>>>> }
>>>>
>>>> -bool MachO::isPICDefault() const {
>>>> - return true;
>>>> -}
>>>> +bool MachO::isPICDefault() const { return true; }
>>>>
>>>> -bool MachO::isPIEDefault() const {
>>>> - return false;
>>>> -}
>>>> +bool MachO::isPIEDefault() const { return false; }
>>>>
>>>> bool MachO::isPICDefaultForced() const {
>>>> return (getArch() == llvm::Triple::x86_64 ||
>>>> @@ -1068,12 +1054,10 @@ void Darwin::addStartObjectFileArgs(cons
>>>> }
>>>> }
>>>>
>>>> -bool Darwin::SupportsObjCGC() const {
>>>> - return isTargetMacOS();
>>>> -}
>>>> +bool Darwin::SupportsObjCGC() const { return isTargetMacOS(); }
>>>>
>>>> void Darwin::CheckObjCARC() const {
>>>> - if (isTargetIOSBased()|| (isTargetMacOS() && !isMacosxVersionLT(10,
>>>> 6)))
>>>> + if (isTargetIOSBased() || (isTargetMacOS() && !isMacosxVersionLT(10,
>>>> 6)))
>>>> return;
>>>> getDriver().Diag(diag::err_arc_unsupported_on_toolchain);
>>>> }
>>>> @@ -1099,17 +1083,15 @@ SanitizerMask Darwin::getSupportedSaniti
>>>> /// This is the primary means of forming GCCVersion objects.
>>>> /*static*/
>>>> Generic_GCC::GCCVersion Linux::GCCVersion::Parse(StringRef
>>>> VersionText) {
>>>> - const GCCVersion BadVersion = { VersionText.str(), -1, -1, -1, "",
>>>> "", "" };
>>>> + const GCCVersion BadVersion = {VersionText.str(), -1, -1, -1, "",
>>>> "", ""};
>>>> std::pair<StringRef, StringRef> First = VersionText.split('.');
>>>> std::pair<StringRef, StringRef> Second = First.second.split('.');
>>>>
>>>> - GCCVersion GoodVersion = { VersionText.str(), -1, -1, -1, "", "", ""
>>>> };
>>>> - if (First.first.getAsInteger(10, GoodVersion.Major) ||
>>>> - GoodVersion.Major < 0)
>>>> + GCCVersion GoodVersion = {VersionText.str(), -1, -1, -1, "", "", ""};
>>>> + if (First.first.getAsInteger(10, GoodVersion.Major) ||
>>>> GoodVersion.Major < 0)
>>>> return BadVersion;
>>>> GoodVersion.MajorStr = First.first.str();
>>>> - if (Second.first.getAsInteger(10, GoodVersion.Minor) ||
>>>> - GoodVersion.Minor < 0)
>>>> + if (Second.first.getAsInteger(10, GoodVersion.Minor) ||
>>>> GoodVersion.Minor < 0)
>>>> return BadVersion;
>>>> GoodVersion.MinorStr = Second.first.str();
>>>>
>>>> @@ -1186,12 +1168,11 @@ static llvm::StringRef getGCCToolchainDi
>>>> /// should instead pull the target out of the driver. This is currently
>>>> /// necessary because the driver doesn't store the final version of
>>>> the target
>>>> /// triple.
>>>> -void
>>>> -Generic_GCC::GCCInstallationDetector::init(
>>>> +void Generic_GCC::GCCInstallationDetector::init(
>>>> const Driver &D, const llvm::Triple &TargetTriple, const ArgList
>>>> &Args) {
>>>> - llvm::Triple BiarchVariantTriple =
>>>> - TargetTriple.isArch32Bit() ? TargetTriple.get64BitArchVariant()
>>>> - : TargetTriple.get32BitArchVariant();
>>>> + llvm::Triple BiarchVariantTriple = TargetTriple.isArch32Bit()
>>>> + ?
>>>> TargetTriple.get64BitArchVariant()
>>>> + :
>>>> TargetTriple.get32BitArchVariant();
>>>> // The library directories which may contain GCC installations.
>>>> SmallVector<StringRef, 4> CandidateLibDirs, CandidateBiarchLibDirs;
>>>> // The compatible GCC triples for this particular architecture.
>>>> @@ -1281,91 +1262,82 @@ bool Generic_GCC::GCCInstallationDetecto
>>>> // Declare a bunch of static data sets that we'll select between
>>>> below. These
>>>> // are specifically designed to always refer to string literals to
>>>> avoid any
>>>> // lifetime or initialization issues.
>>>> - static const char *const AArch64LibDirs[] = { "/lib64", "/lib" };
>>>> - static const char *const AArch64Triples[] = {
>>>> "aarch64-none-linux-gnu",
>>>> - "aarch64-linux-gnu",
>>>> -
>>>> "aarch64-linux-android",
>>>> - "aarch64-redhat-linux"
>>>> };
>>>> - static const char *const AArch64beLibDirs[] = { "/lib" };
>>>> - static const char *const AArch64beTriples[] = {
>>>> "aarch64_be-none-linux-gnu",
>>>> -
>>>> "aarch64_be-linux-gnu" };
>>>> -
>>>> - static const char *const ARMLibDirs[] = { "/lib" };
>>>> - static const char *const ARMTriples[] = { "arm-linux-gnueabi",
>>>> - "arm-linux-androideabi" };
>>>> - static const char *const ARMHFTriples[] = { "arm-linux-gnueabihf",
>>>> -
>>>> "armv7hl-redhat-linux-gnueabi" };
>>>> - static const char *const ARMebLibDirs[] = { "/lib" };
>>>> - static const char *const ARMebTriples[] = { "armeb-linux-gnueabi",
>>>> -
>>>> "armeb-linux-androideabi" };
>>>> - static const char *const ARMebHFTriples[] = {
>>>> "armeb-linux-gnueabihf",
>>>> -
>>>> "armebv7hl-redhat-linux-gnueabi" };
>>>> + static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};
>>>> + static const char *const AArch64Triples[] = {
>>>> + "aarch64-none-linux-gnu", "aarch64-linux-gnu",
>>>> "aarch64-linux-android",
>>>> + "aarch64-redhat-linux"};
>>>> + static const char *const AArch64beLibDirs[] = {"/lib"};
>>>> + static const char *const AArch64beTriples[] =
>>>> {"aarch64_be-none-linux-gnu",
>>>> +
>>>> "aarch64_be-linux-gnu"};
>>>> +
>>>> + static const char *const ARMLibDirs[] = {"/lib"};
>>>> + static const char *const ARMTriples[] = {"arm-linux-gnueabi",
>>>> + "arm-linux-androideabi"};
>>>> + static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
>>>> +
>>>> "armv7hl-redhat-linux-gnueabi"};
>>>> + static const char *const ARMebLibDirs[] = {"/lib"};
>>>> + static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
>>>> +
>>>> "armeb-linux-androideabi"};
>>>> + static const char *const ARMebHFTriples[] = {
>>>> + "armeb-linux-gnueabihf", "armebv7hl-redhat-linux-gnueabi"};
>>>>
>>>> - static const char *const X86_64LibDirs[] = { "/lib64", "/lib" };
>>>> + static const char *const X86_64LibDirs[] = {"/lib64", "/lib"};
>>>> static const char *const X86_64Triples[] = {
>>>> - "x86_64-linux-gnu", "x86_64-unknown-linux-gnu",
>>>> "x86_64-pc-linux-gnu",
>>>> - "x86_64-redhat-linux6E", "x86_64-redhat-linux",
>>>> "x86_64-suse-linux",
>>>> - "x86_64-manbo-linux-gnu", "x86_64-linux-gnu",
>>>> "x86_64-slackware-linux",
>>>> - "x86_64-linux-android", "x86_64-unknown-linux"
>>>> - };
>>>> - static const char *const X32LibDirs[] = { "/libx32" };
>>>> - static const char *const X86LibDirs[] = { "/lib32", "/lib" };
>>>> + "x86_64-linux-gnu", "x86_64-unknown-linux-gnu",
>>>> + "x86_64-pc-linux-gnu", "x86_64-redhat-linux6E",
>>>> + "x86_64-redhat-linux", "x86_64-suse-linux",
>>>> + "x86_64-manbo-linux-gnu", "x86_64-linux-gnu",
>>>> + "x86_64-slackware-linux", "x86_64-linux-android",
>>>> + "x86_64-unknown-linux"};
>>>> + static const char *const X32LibDirs[] = {"/libx32"};
>>>> + static const char *const X86LibDirs[] = {"/lib32", "/lib"};
>>>> static const char *const X86Triples[] = {
>>>> - "i686-linux-gnu", "i686-pc-linux-gnu", "i486-linux-gnu",
>>>> "i386-linux-gnu",
>>>> - "i386-redhat-linux6E", "i686-redhat-linux", "i586-redhat-linux",
>>>> - "i386-redhat-linux", "i586-suse-linux", "i486-slackware-linux",
>>>> - "i686-montavista-linux", "i686-linux-android", "i586-linux-gnu"
>>>> - };
>>>> -
>>>> - static const char *const MIPSLibDirs[] = { "/lib" };
>>>> - static const char *const MIPSTriples[] = { "mips-linux-gnu",
>>>> - "mips-mti-linux-gnu",
>>>> - "mips-img-linux-gnu" };
>>>> - static const char *const MIPSELLibDirs[] = { "/lib" };
>>>> - static const char *const MIPSELTriples[] = { "mipsel-linux-gnu",
>>>> - "mipsel-linux-android",
>>>> - "mips-img-linux-gnu" };
>>>> -
>>>> - static const char *const MIPS64LibDirs[] = { "/lib64", "/lib" };
>>>> - static const char *const MIPS64Triples[] = { "mips64-linux-gnu",
>>>> - "mips-mti-linux-gnu",
>>>> - "mips-img-linux-gnu",
>>>> - "mips64-linux-gnuabi64"
>>>> };
>>>> - static const char *const MIPS64ELLibDirs[] = { "/lib64", "/lib" };
>>>> - static const char *const MIPS64ELTriples[] = { "mips64el-linux-gnu",
>>>> - "mips-mti-linux-gnu",
>>>> - "mips-img-linux-gnu",
>>>> -
>>>> "mips64el-linux-android",
>>>> -
>>>> "mips64el-linux-gnuabi64" };
>>>> + "i686-linux-gnu", "i686-pc-linux-gnu",
>>>> "i486-linux-gnu",
>>>> + "i386-linux-gnu", "i386-redhat-linux6E",
>>>> "i686-redhat-linux",
>>>> + "i586-redhat-linux", "i386-redhat-linux",
>>>> "i586-suse-linux",
>>>> + "i486-slackware-linux", "i686-montavista-linux",
>>>> "i686-linux-android",
>>>> + "i586-linux-gnu"};
>>>> +
>>>> + static const char *const MIPSLibDirs[] = {"/lib"};
>>>> + static const char *const MIPSTriples[] = {
>>>> + "mips-linux-gnu", "mips-mti-linux-gnu", "mips-img-linux-gnu"};
>>>> + static const char *const MIPSELLibDirs[] = {"/lib"};
>>>> + static const char *const MIPSELTriples[] = {
>>>> + "mipsel-linux-gnu", "mipsel-linux-android",
>>>> "mips-img-linux-gnu"};
>>>> +
>>>> + static const char *const MIPS64LibDirs[] = {"/lib64", "/lib"};
>>>> + static const char *const MIPS64Triples[] = {
>>>> + "mips64-linux-gnu", "mips-mti-linux-gnu", "mips-img-linux-gnu",
>>>> + "mips64-linux-gnuabi64"};
>>>> + static const char *const MIPS64ELLibDirs[] = {"/lib64", "/lib"};
>>>> + static const char *const MIPS64ELTriples[] = {
>>>> + "mips64el-linux-gnu", "mips-mti-linux-gnu", "mips-img-linux-gnu",
>>>> + "mips64el-linux-android", "mips64el-linux-gnuabi64"};
>>>>
>>>> - static const char *const PPCLibDirs[] = { "/lib32", "/lib" };
>>>> + static const char *const PPCLibDirs[] = {"/lib32", "/lib"};
>>>> static const char *const PPCTriples[] = {
>>>> - "powerpc-linux-gnu", "powerpc-unknown-linux-gnu",
>>>> "powerpc-linux-gnuspe",
>>>> - "powerpc-suse-linux", "powerpc-montavista-linuxspe"
>>>> - };
>>>> - static const char *const PPC64LibDirs[] = { "/lib64", "/lib" };
>>>> - static const char *const PPC64Triples[] = { "powerpc64-linux-gnu",
>>>> -
>>>> "powerpc64-unknown-linux-gnu",
>>>> - "powerpc64-suse-linux",
>>>> - "ppc64-redhat-linux" };
>>>> - static const char *const PPC64LELibDirs[] = { "/lib64", "/lib" };
>>>> - static const char *const PPC64LETriples[] = {
>>>> "powerpc64le-linux-gnu",
>>>> -
>>>> "powerpc64le-unknown-linux-gnu",
>>>> -
>>>> "powerpc64le-suse-linux",
>>>> - "ppc64le-redhat-linux"
>>>> };
>>>> -
>>>> - static const char *const SPARCv8LibDirs[] = { "/lib32", "/lib" };
>>>> - static const char *const SPARCv8Triples[] = { "sparc-linux-gnu",
>>>> - "sparcv8-linux-gnu" };
>>>> - static const char *const SPARCv9LibDirs[] = { "/lib64", "/lib" };
>>>> - static const char *const SPARCv9Triples[] = { "sparc64-linux-gnu",
>>>> - "sparcv9-linux-gnu" };
>>>> + "powerpc-linux-gnu", "powerpc-unknown-linux-gnu",
>>>> "powerpc-linux-gnuspe",
>>>> + "powerpc-suse-linux", "powerpc-montavista-linuxspe"};
>>>> + static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
>>>> + static const char *const PPC64Triples[] = {
>>>> + "powerpc64-linux-gnu", "powerpc64-unknown-linux-gnu",
>>>> + "powerpc64-suse-linux", "ppc64-redhat-linux"};
>>>> + static const char *const PPC64LELibDirs[] = {"/lib64", "/lib"};
>>>> + static const char *const PPC64LETriples[] = {
>>>> + "powerpc64le-linux-gnu", "powerpc64le-unknown-linux-gnu",
>>>> + "powerpc64le-suse-linux", "ppc64le-redhat-linux"};
>>>> +
>>>> + static const char *const SPARCv8LibDirs[] = {"/lib32", "/lib"};
>>>> + static const char *const SPARCv8Triples[] = {"sparc-linux-gnu",
>>>> + "sparcv8-linux-gnu"};
>>>> + static const char *const SPARCv9LibDirs[] = {"/lib64", "/lib"};
>>>> + static const char *const SPARCv9Triples[] = {"sparc64-linux-gnu",
>>>> + "sparcv9-linux-gnu"};
>>>>
>>>> - static const char *const SystemZLibDirs[] = { "/lib64", "/lib" };
>>>> + static const char *const SystemZLibDirs[] = {"/lib64", "/lib"};
>>>> static const char *const SystemZTriples[] = {
>>>> - "s390x-linux-gnu", "s390x-unknown-linux-gnu",
>>>> "s390x-ibm-linux-gnu",
>>>> - "s390x-suse-linux", "s390x-redhat-linux"
>>>> - };
>>>> + "s390x-linux-gnu", "s390x-unknown-linux-gnu",
>>>> "s390x-ibm-linux-gnu",
>>>> + "s390x-suse-linux", "s390x-redhat-linux"};
>>>>
>>>> using std::begin;
>>>> using std::end;
>>>> @@ -1533,14 +1505,12 @@ static bool isMipsEL(llvm::Triple::ArchT
>>>> }
>>>>
>>>> static bool isMips16(const ArgList &Args) {
>>>> - Arg *A = Args.getLastArg(options::OPT_mips16,
>>>> - options::OPT_mno_mips16);
>>>> + Arg *A = Args.getLastArg(options::OPT_mips16,
>>>> options::OPT_mno_mips16);
>>>> return A && A->getOption().matches(options::OPT_mips16);
>>>> }
>>>>
>>>> static bool isMicroMips(const ArgList &Args) {
>>>> - Arg *A = Args.getLastArg(options::OPT_mmicromips,
>>>> - options::OPT_mno_micromips);
>>>> + Arg *A = Args.getLastArg(options::OPT_mmicromips,
>>>> options::OPT_mno_micromips);
>>>> return A && A->getOption().matches(options::OPT_mmicromips);
>>>> }
>>>>
>>>> @@ -1561,8 +1531,7 @@ static Multilib makeMultilib(StringRef c
>>>> }
>>>>
>>>> static bool findMIPSMultilibs(const llvm::Triple &TargetTriple,
>>>> StringRef Path,
>>>> - const ArgList &Args,
>>>> - DetectedMultilibs &Result) {
>>>> + const ArgList &Args, DetectedMultilibs
>>>> &Result) {
>>>> // Some MIPS toolchains put libraries and object files compiled
>>>> // using different options in to the sub-directoris which names
>>>> // reflects the flags used for compilation. For example sysroot
>>>> @@ -1594,181 +1563,182 @@ static bool findMIPSMultilibs(const llvm
>>>> MultilibSet FSFMipsMultilibs;
>>>> {
>>>> auto MArchMips32 = makeMultilib("/mips32")
>>>> -
>>>> .flag("+m32").flag("-m64").flag("-mmicromips").flag("+march=mips32");
>>>> + .flag("+m32")
>>>> + .flag("-m64")
>>>> + .flag("-mmicromips")
>>>> + .flag("+march=mips32");
>>>>
>>>> auto MArchMicroMips = makeMultilib("/micromips")
>>>> - .flag("+m32").flag("-m64").flag("+mmicromips");
>>>> + .flag("+m32")
>>>> + .flag("-m64")
>>>> + .flag("+mmicromips");
>>>>
>>>> auto MArchMips64r2 = makeMultilib("/mips64r2")
>>>> - .flag("-m32").flag("+m64").flag("+march=mips64r2");
>>>> + .flag("-m32")
>>>> + .flag("+m64")
>>>> + .flag("+march=mips64r2");
>>>>
>>>> - auto MArchMips64 = makeMultilib("/mips64")
>>>> - .flag("-m32").flag("+m64").flag("-march=mips64r2");
>>>> + auto MArchMips64 =
>>>> makeMultilib("/mips64").flag("-m32").flag("+m64").flag(
>>>> + "-march=mips64r2");
>>>>
>>>> auto MArchDefault = makeMultilib("")
>>>> -
>>>> .flag("+m32").flag("-m64").flag("-mmicromips").flag("+march=mips32r2");
>>>> -
>>>> - auto Mips16 = makeMultilib("/mips16")
>>>> - .flag("+mips16");
>>>> -
>>>> - auto UCLibc = makeMultilib("/uclibc")
>>>> - .flag("+muclibc");
>>>> -
>>>> - auto MAbi64 = makeMultilib("/64")
>>>> - .flag("+mabi=n64").flag("-mabi=n32").flag("-m32");
>>>> -
>>>> - auto BigEndian = makeMultilib("")
>>>> - .flag("+EB").flag("-EL");
>>>> -
>>>> - auto LittleEndian = makeMultilib("/el")
>>>> - .flag("+EL").flag("-EB");
>>>> -
>>>> - auto SoftFloat = makeMultilib("/sof")
>>>> - .flag("+msoft-float");
>>>> -
>>>> - auto Nan2008 = makeMultilib("/nan2008")
>>>> - .flag("+mnan=2008");
>>>> -
>>>> - FSFMipsMultilibs = MultilibSet()
>>>> - .Either(MArchMips32, MArchMicroMips,
>>>> - MArchMips64r2, MArchMips64, MArchDefault)
>>>> - .Maybe(UCLibc)
>>>> - .Maybe(Mips16)
>>>> - .FilterOut("/mips64/mips16")
>>>> - .FilterOut("/mips64r2/mips16")
>>>> - .FilterOut("/micromips/mips16")
>>>> - .Maybe(MAbi64)
>>>> - .FilterOut("/micromips/64")
>>>> - .FilterOut("/mips32/64")
>>>> - .FilterOut("^/64")
>>>> - .FilterOut("/mips16/64")
>>>> - .Either(BigEndian, LittleEndian)
>>>> - .Maybe(SoftFloat)
>>>> - .Maybe(Nan2008)
>>>> - .FilterOut(".*sof/nan2008")
>>>> - .FilterOut(NonExistent)
>>>> - .setIncludeDirsCallback([](
>>>> - StringRef InstallDir, StringRef TripleStr, const Multilib
>>>> &M) {
>>>> - std::vector<std::string> Dirs;
>>>> - Dirs.push_back((InstallDir + "/include").str());
>>>> - std::string SysRootInc = InstallDir.str() +
>>>> "/../../../../sysroot";
>>>> - if (StringRef(M.includeSuffix()).startswith("/uclibc"))
>>>> - Dirs.push_back(SysRootInc + "/uclibc/usr/include");
>>>> - else
>>>> - Dirs.push_back(SysRootInc + "/usr/include");
>>>> - return Dirs;
>>>> - });
>>>> + .flag("+m32")
>>>> + .flag("-m64")
>>>> + .flag("-mmicromips")
>>>> + .flag("+march=mips32r2");
>>>> +
>>>> + auto Mips16 = makeMultilib("/mips16").flag("+mips16");
>>>> +
>>>> + auto UCLibc = makeMultilib("/uclibc").flag("+muclibc");
>>>> +
>>>> + auto MAbi64 =
>>>> +
>>>> makeMultilib("/64").flag("+mabi=n64").flag("-mabi=n32").flag("-m32");
>>>> +
>>>> + auto BigEndian = makeMultilib("").flag("+EB").flag("-EL");
>>>> +
>>>> + auto LittleEndian = makeMultilib("/el").flag("+EL").flag("-EB");
>>>> +
>>>> + auto SoftFloat = makeMultilib("/sof").flag("+msoft-float");
>>>> +
>>>> + auto Nan2008 = makeMultilib("/nan2008").flag("+mnan=2008");
>>>> +
>>>> + FSFMipsMultilibs =
>>>> + MultilibSet()
>>>> + .Either(MArchMips32, MArchMicroMips, MArchMips64r2,
>>>> MArchMips64,
>>>> + MArchDefault)
>>>> + .Maybe(UCLibc)
>>>> + .Maybe(Mips16)
>>>> + .FilterOut("/mips64/mips16")
>>>> + .FilterOut("/mips64r2/mips16")
>>>> + .FilterOut("/micromips/mips16")
>>>> + .Maybe(MAbi64)
>>>> + .FilterOut("/micromips/64")
>>>> + .FilterOut("/mips32/64")
>>>> + .FilterOut("^/64")
>>>> + .FilterOut("/mips16/64")
>>>> + .Either(BigEndian, LittleEndian)
>>>> + .Maybe(SoftFloat)
>>>> + .Maybe(Nan2008)
>>>> + .FilterOut(".*sof/nan2008")
>>>> + .FilterOut(NonExistent)
>>>> + .setIncludeDirsCallback([](StringRef InstallDir,
>>>> + StringRef TripleStr, const
>>>> Multilib &M) {
>>>> + std::vector<std::string> Dirs;
>>>> + Dirs.push_back((InstallDir + "/include").str());
>>>> + std::string SysRootInc =
>>>> + InstallDir.str() + "/../../../../sysroot";
>>>> + if (StringRef(M.includeSuffix()).startswith("/uclibc"))
>>>> + Dirs.push_back(SysRootInc + "/uclibc/usr/include");
>>>> + else
>>>> + Dirs.push_back(SysRootInc + "/usr/include");
>>>> + return Dirs;
>>>> + });
>>>> }
>>>>
>>>> // Check for Code Sourcery toolchain multilibs
>>>> MultilibSet CSMipsMultilibs;
>>>> {
>>>> - auto MArchMips16 = makeMultilib("/mips16")
>>>> - .flag("+m32").flag("+mips16");
>>>> + auto MArchMips16 =
>>>> makeMultilib("/mips16").flag("+m32").flag("+mips16");
>>>>
>>>> - auto MArchMicroMips = makeMultilib("/micromips")
>>>> - .flag("+m32").flag("+mmicromips");
>>>> + auto MArchMicroMips =
>>>> + makeMultilib("/micromips").flag("+m32").flag("+mmicromips");
>>>>
>>>> - auto MArchDefault = makeMultilib("")
>>>> - .flag("-mips16").flag("-mmicromips");
>>>> + auto MArchDefault =
>>>> makeMultilib("").flag("-mips16").flag("-mmicromips");
>>>>
>>>> - auto UCLibc = makeMultilib("/uclibc")
>>>> - .flag("+muclibc");
>>>> + auto UCLibc = makeMultilib("/uclibc").flag("+muclibc");
>>>>
>>>> - auto SoftFloat = makeMultilib("/soft-float")
>>>> - .flag("+msoft-float");
>>>> + auto SoftFloat = makeMultilib("/soft-float").flag("+msoft-float");
>>>>
>>>> - auto Nan2008 = makeMultilib("/nan2008")
>>>> - .flag("+mnan=2008");
>>>> + auto Nan2008 = makeMultilib("/nan2008").flag("+mnan=2008");
>>>>
>>>> - auto DefaultFloat = makeMultilib("")
>>>> - .flag("-msoft-float").flag("-mnan=2008");
>>>> + auto DefaultFloat =
>>>> + makeMultilib("").flag("-msoft-float").flag("-mnan=2008");
>>>>
>>>> - auto BigEndian = makeMultilib("")
>>>> - .flag("+EB").flag("-EL");
>>>> + auto BigEndian = makeMultilib("").flag("+EB").flag("-EL");
>>>>
>>>> - auto LittleEndian = makeMultilib("/el")
>>>> - .flag("+EL").flag("-EB");
>>>> + auto LittleEndian = makeMultilib("/el").flag("+EL").flag("-EB");
>>>>
>>>> // Note that this one's osSuffix is ""
>>>> auto MAbi64 = makeMultilib("")
>>>> - .gccSuffix("/64")
>>>> - .includeSuffix("/64")
>>>> - .flag("+mabi=n64").flag("-mabi=n32").flag("-m32");
>>>> -
>>>> - CSMipsMultilibs = MultilibSet()
>>>> - .Either(MArchMips16, MArchMicroMips, MArchDefault)
>>>> - .Maybe(UCLibc)
>>>> - .Either(SoftFloat, Nan2008, DefaultFloat)
>>>> - .FilterOut("/micromips/nan2008")
>>>> - .FilterOut("/mips16/nan2008")
>>>> - .Either(BigEndian, LittleEndian)
>>>> - .Maybe(MAbi64)
>>>> - .FilterOut("/mips16.*/64")
>>>> - .FilterOut("/micromips.*/64")
>>>> - .FilterOut(NonExistent)
>>>> - .setIncludeDirsCallback([](
>>>> - StringRef InstallDir, StringRef TripleStr, const Multilib
>>>> &M) {
>>>> - std::vector<std::string> Dirs;
>>>> - Dirs.push_back((InstallDir + "/include").str());
>>>> - std::string SysRootInc =
>>>> - InstallDir.str() + "/../../../../" + TripleStr.str();
>>>> - if (StringRef(M.includeSuffix()).startswith("/uclibc"))
>>>> - Dirs.push_back(SysRootInc + "/libc/uclibc/usr/include");
>>>> - else
>>>> - Dirs.push_back(SysRootInc + "/libc/usr/include");
>>>> - return Dirs;
>>>> - });
>>>> - }
>>>> -
>>>> - MultilibSet AndroidMipsMultilibs = MultilibSet()
>>>> - .Maybe(Multilib("/mips-r2").flag("+march=mips32r2"))
>>>> - .Maybe(Multilib("/mips-r6").flag("+march=mips32r6"))
>>>> - .FilterOut(NonExistent);
>>>> + .gccSuffix("/64")
>>>> + .includeSuffix("/64")
>>>> + .flag("+mabi=n64")
>>>> + .flag("-mabi=n32")
>>>> + .flag("-m32");
>>>> +
>>>> + CSMipsMultilibs =
>>>> + MultilibSet()
>>>> + .Either(MArchMips16, MArchMicroMips, MArchDefault)
>>>> + .Maybe(UCLibc)
>>>> + .Either(SoftFloat, Nan2008, DefaultFloat)
>>>> + .FilterOut("/micromips/nan2008")
>>>> + .FilterOut("/mips16/nan2008")
>>>> + .Either(BigEndian, LittleEndian)
>>>> + .Maybe(MAbi64)
>>>> + .FilterOut("/mips16.*/64")
>>>> + .FilterOut("/micromips.*/64")
>>>> + .FilterOut(NonExistent)
>>>> + .setIncludeDirsCallback([](StringRef InstallDir,
>>>> + StringRef TripleStr, const
>>>> Multilib &M) {
>>>> + std::vector<std::string> Dirs;
>>>> + Dirs.push_back((InstallDir + "/include").str());
>>>> + std::string SysRootInc =
>>>> + InstallDir.str() + "/../../../../" + TripleStr.str();
>>>> + if (StringRef(M.includeSuffix()).startswith("/uclibc"))
>>>> + Dirs.push_back(SysRootInc +
>>>> "/libc/uclibc/usr/include");
>>>> + else
>>>> + Dirs.push_back(SysRootInc + "/libc/usr/include");
>>>> + return Dirs;
>>>> + });
>>>> + }
>>>> +
>>>> + MultilibSet AndroidMipsMultilibs =
>>>> + MultilibSet()
>>>> + .Maybe(Multilib("/mips-r2").flag("+march=mips32r2"))
>>>> + .Maybe(Multilib("/mips-r6").flag("+march=mips32r6"))
>>>> + .FilterOut(NonExistent);
>>>>
>>>> MultilibSet DebianMipsMultilibs;
>>>> {
>>>> - Multilib MAbiN32 = Multilib()
>>>> - .gccSuffix("/n32")
>>>> - .includeSuffix("/n32")
>>>> - .flag("+mabi=n32");
>>>> + Multilib MAbiN32 =
>>>> +
>>>> Multilib().gccSuffix("/n32").includeSuffix("/n32").flag("+mabi=n32");
>>>>
>>>> Multilib M64 = Multilib()
>>>> - .gccSuffix("/64")
>>>> - .includeSuffix("/64")
>>>> - .flag("+m64").flag("-m32").flag("-mabi=n32");
>>>> -
>>>> - Multilib M32 = Multilib()
>>>> - .flag("-m64").flag("+m32").flag("-mabi=n32");
>>>> -
>>>> - DebianMipsMultilibs = MultilibSet()
>>>> - .Either(M32, M64, MAbiN32)
>>>> - .FilterOut(NonExistent);
>>>> + .gccSuffix("/64")
>>>> + .includeSuffix("/64")
>>>> + .flag("+m64")
>>>> + .flag("-m32")
>>>> + .flag("-mabi=n32");
>>>> +
>>>> + Multilib M32 =
>>>> Multilib().flag("-m64").flag("+m32").flag("-mabi=n32");
>>>> +
>>>> + DebianMipsMultilibs =
>>>> + MultilibSet().Either(M32, M64, MAbiN32).FilterOut(NonExistent);
>>>> }
>>>>
>>>> MultilibSet ImgMultilibs;
>>>> {
>>>> - auto Mips64r6 = makeMultilib("/mips64r6")
>>>> - .flag("+m64").flag("-m32");
>>>> + auto Mips64r6 =
>>>> makeMultilib("/mips64r6").flag("+m64").flag("-m32");
>>>>
>>>> - auto LittleEndian = makeMultilib("/el")
>>>> - .flag("+EL").flag("-EB");
>>>> + auto LittleEndian = makeMultilib("/el").flag("+EL").flag("-EB");
>>>>
>>>> - auto MAbi64 = makeMultilib("/64")
>>>> - .flag("+mabi=n64").flag("-mabi=n32").flag("-m32");
>>>> + auto MAbi64 =
>>>> +
>>>> makeMultilib("/64").flag("+mabi=n64").flag("-mabi=n32").flag("-m32");
>>>>
>>>> - ImgMultilibs = MultilibSet()
>>>> - .Maybe(Mips64r6)
>>>> - .Maybe(MAbi64)
>>>> - .Maybe(LittleEndian)
>>>> - .FilterOut(NonExistent)
>>>> - .setIncludeDirsCallback([](
>>>> - StringRef InstallDir, StringRef TripleStr, const Multilib
>>>> &M) {
>>>> - std::vector<std::string> Dirs;
>>>> - Dirs.push_back((InstallDir + "/include").str());
>>>> - Dirs.push_back((InstallDir +
>>>> "/../../../../sysroot/usr/include").str());
>>>> - return Dirs;
>>>> - });
>>>> + ImgMultilibs =
>>>> + MultilibSet()
>>>> + .Maybe(Mips64r6)
>>>> + .Maybe(MAbi64)
>>>> + .Maybe(LittleEndian)
>>>> + .FilterOut(NonExistent)
>>>> + .setIncludeDirsCallback([](StringRef InstallDir,
>>>> + StringRef TripleStr, const
>>>> Multilib &M) {
>>>> + std::vector<std::string> Dirs;
>>>> + Dirs.push_back((InstallDir + "/include").str());
>>>> + Dirs.push_back(
>>>> + (InstallDir +
>>>> "/../../../../sysroot/usr/include").str());
>>>> + return Dirs;
>>>> + });
>>>> }
>>>>
>>>> StringRef CPUName;
>>>> @@ -1823,8 +1793,8 @@ static bool findMIPSMultilibs(const llvm
>>>>
>>>> // Sort candidates. Toolchain that best meets the directories goes
>>>> first.
>>>> // Then select the first toolchains matches command line flags.
>>>> - MultilibSet *candidates[] = { &DebianMipsMultilibs,
>>>> &FSFMipsMultilibs,
>>>> - &CSMipsMultilibs };
>>>> + MultilibSet *candidates[] = {&DebianMipsMultilibs, &FSFMipsMultilibs,
>>>> + &CSMipsMultilibs};
>>>> std::sort(
>>>> std::begin(candidates), std::end(candidates),
>>>> [](MultilibSet *a, MultilibSet *b) { return a->size() >
>>>> b->size(); });
>>>> @@ -1866,17 +1836,23 @@ static bool findBiarchMultilibs(const ll
>>>>
>>>> Multilib Default;
>>>> Multilib Alt64 = Multilib()
>>>> - .gccSuffix("/64")
>>>> - .includeSuffix("/64")
>>>> - .flag("-m32").flag("+m64").flag("-mx32");
>>>> + .gccSuffix("/64")
>>>> + .includeSuffix("/64")
>>>> + .flag("-m32")
>>>> + .flag("+m64")
>>>> + .flag("-mx32");
>>>> Multilib Alt32 = Multilib()
>>>> - .gccSuffix("/32")
>>>> - .includeSuffix("/32")
>>>> - .flag("+m32").flag("-m64").flag("-mx32");
>>>> + .gccSuffix("/32")
>>>> + .includeSuffix("/32")
>>>> + .flag("+m32")
>>>> + .flag("-m64")
>>>> + .flag("-mx32");
>>>> Multilib Altx32 = Multilib()
>>>> - .gccSuffix("/x32")
>>>> - .includeSuffix("/x32")
>>>> - .flag("-m32").flag("-m64").flag("+mx32");
>>>> + .gccSuffix("/x32")
>>>> + .includeSuffix("/x32")
>>>> + .flag("-m32")
>>>> + .flag("-m64")
>>>> + .flag("+mx32");
>>>>
>>>> FilterNonExistent NonExistent(Path);
>>>>
>>>> @@ -1923,8 +1899,7 @@ static bool findBiarchMultilibs(const ll
>>>> if (!Result.Multilibs.select(Flags, Result.SelectedMultilib))
>>>> return false;
>>>>
>>>> - if (Result.SelectedMultilib == Alt64 ||
>>>> - Result.SelectedMultilib == Alt32 ||
>>>> + if (Result.SelectedMultilib == Alt64 || Result.SelectedMultilib ==
>>>> Alt32 ||
>>>> Result.SelectedMultilib == Altx32)
>>>> Result.BiarchSibling = Default;
>>>>
>>>> @@ -1940,27 +1915,26 @@ void Generic_GCC::GCCInstallationDetecto
>>>> // check for. We also record what is necessary to walk from each back
>>>> // up to the lib directory.
>>>> const std::string LibSuffixes[] = {
>>>> - "/gcc/" + CandidateTriple.str(),
>>>> - // Debian puts cross-compilers in gcc-cross
>>>> - "/gcc-cross/" + CandidateTriple.str(),
>>>> - "/" + CandidateTriple.str() + "/gcc/" + CandidateTriple.str(),
>>>> -
>>>> - // The Freescale PPC SDK has the gcc libraries in
>>>> - // <sysroot>/usr/lib/<triple>/x.y.z so have a look there as well.
>>>> - "/" + CandidateTriple.str(),
>>>> -
>>>> - // Ubuntu has a strange mis-matched pair of triples that this
>>>> happens to
>>>> - // match.
>>>> - // FIXME: It may be worthwhile to generalize this and look for a
>>>> second
>>>> - // triple.
>>>> - "/i386-linux-gnu/gcc/" + CandidateTriple.str()
>>>> - };
>>>> + "/gcc/" + CandidateTriple.str(),
>>>> + // Debian puts cross-compilers in gcc-cross
>>>> + "/gcc-cross/" + CandidateTriple.str(),
>>>> + "/" + CandidateTriple.str() + "/gcc/" + CandidateTriple.str(),
>>>> +
>>>> + // The Freescale PPC SDK has the gcc libraries in
>>>> + // <sysroot>/usr/lib/<triple>/x.y.z so have a look there as well.
>>>> + "/" + CandidateTriple.str(),
>>>> +
>>>> + // Ubuntu has a strange mis-matched pair of triples that this
>>>> happens to
>>>> + // match.
>>>> + // FIXME: It may be worthwhile to generalize this and look for a
>>>> second
>>>> + // triple.
>>>> + "/i386-linux-gnu/gcc/" + CandidateTriple.str()};
>>>> const std::string InstallSuffixes[] = {
>>>> - "/../../..", // gcc/
>>>> - "/../../..", // gcc-cross/
>>>> - "/../../../..", // <triple>/gcc/
>>>> - "/../..", // <triple>/
>>>> - "/../../../.." // i386-linux-gnu/gcc/<triple>/
>>>> + "/../../..", // gcc/
>>>> + "/../../..", // gcc-cross/
>>>> + "/../../../..", // <triple>/gcc/
>>>> + "/../..", // <triple>/
>>>> + "/../../../.." // i386-linux-gnu/gcc/<triple>/
>>>> };
>>>> // Only look at the final, weird Ubuntu suffix for i386-linux-gnu.
>>>> const unsigned NumLibSuffixes =
>>>> @@ -2007,16 +1981,15 @@ void Generic_GCC::GCCInstallationDetecto
>>>> }
>>>> }
>>>>
>>>> -Generic_GCC::Generic_GCC(const Driver &D, const llvm::Triple& Triple,
>>>> +Generic_GCC::Generic_GCC(const Driver &D, const llvm::Triple &Triple,
>>>> const ArgList &Args)
>>>> - : ToolChain(D, Triple, Args), GCCInstallation() {
>>>> + : ToolChain(D, Triple, Args), GCCInstallation() {
>>>> getProgramPaths().push_back(getDriver().getInstalledDir());
>>>> if (getDriver().getInstalledDir() != getDriver().Dir)
>>>> getProgramPaths().push_back(getDriver().Dir);
>>>> }
>>>>
>>>> -Generic_GCC::~Generic_GCC() {
>>>> -}
>>>> +Generic_GCC::~Generic_GCC() {}
>>>>
>>>> Tool *Generic_GCC::getTool(Action::ActionClass AC) const {
>>>> switch (AC) {
>>>> @@ -2048,17 +2021,11 @@ bool Generic_GCC::IsUnwindTablesDefault(
>>>> return getArch() == llvm::Triple::x86_64;
>>>> }
>>>>
>>>> -bool Generic_GCC::isPICDefault() const {
>>>> - return false;
>>>> -}
>>>> +bool Generic_GCC::isPICDefault() const { return false; }
>>>>
>>>> -bool Generic_GCC::isPIEDefault() const {
>>>> - return false;
>>>> -}
>>>> +bool Generic_GCC::isPIEDefault() const { return false; }
>>>>
>>>> -bool Generic_GCC::isPICDefaultForced() const {
>>>> - return false;
>>>> -}
>>>> +bool Generic_GCC::isPICDefaultForced() const { return false; }
>>>>
>>>> bool Generic_GCC::IsIntegratedAssemblerDefault() const {
>>>> switch (getTriple().getArch()) {
>>>> @@ -2097,8 +2064,7 @@ void Generic_ELF::addClangTargetOptions(
>>>> getTriple().getOS() == llvm::Triple::NaCl;
>>>>
>>>> if (DriverArgs.hasFlag(options::OPT_fuse_init_array,
>>>> - options::OPT_fno_use_init_array,
>>>> - UseInitArrayDefault))
>>>> + options::OPT_fno_use_init_array,
>>>> UseInitArrayDefault))
>>>> CC1Args.push_back("-fuse-init-array");
>>>> }
>>>>
>>>> @@ -2124,18 +2090,15 @@ std::string Hexagon_TC::GetGnuDir(const
>>>> return InstallRelDir;
>>>> }
>>>>
>>>> -const char *Hexagon_TC::GetSmallDataThreshold(const ArgList &Args)
>>>> -{
>>>> +const char *Hexagon_TC::GetSmallDataThreshold(const ArgList &Args) {
>>>> Arg *A;
>>>>
>>>> - A = Args.getLastArg(options::OPT_G,
>>>> - options::OPT_G_EQ,
>>>> + A = Args.getLastArg(options::OPT_G, options::OPT_G_EQ,
>>>> options::OPT_msmall_data_threshold_EQ);
>>>> if (A)
>>>> return A->getValue();
>>>>
>>>> - A = Args.getLastArg(options::OPT_shared,
>>>> - options::OPT_fpic,
>>>> + A = Args.getLastArg(options::OPT_shared, options::OPT_fpic,
>>>> options::OPT_fPIC);
>>>> if (A)
>>>> return "0";
>>>> @@ -2143,18 +2106,14 @@ const char *Hexagon_TC::GetSmallDataThre
>>>> return 0;
>>>> }
>>>>
>>>> -bool Hexagon_TC::UsesG0(const char* smallDataThreshold)
>>>> -{
>>>> +bool Hexagon_TC::UsesG0(const char *smallDataThreshold) {
>>>> return smallDataThreshold && smallDataThreshold[0] == '0';
>>>> }
>>>>
>>>> -static void GetHexagonLibraryPaths(
>>>> - const ArgList &Args,
>>>> - const std::string &Ver,
>>>> - const std::string &MarchString,
>>>> - const std::string &InstalledDir,
>>>> - ToolChain::path_list *LibPaths)
>>>> -{
>>>> +static void GetHexagonLibraryPaths(const ArgList &Args, const
>>>> std::string &Ver,
>>>> + const std::string &MarchString,
>>>> + const std::string &InstalledDir,
>>>> + ToolChain::path_list *LibPaths) {
>>>> bool build
>>>
>>> ...
>>
>> [Message clipped]
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150629/ed06dab1/attachment.html>
More information about the cfe-commits
mailing list