Index: lib/Driver/Driver.cpp =================================================================== --- lib/Driver/Driver.cpp +++ lib/Driver/Driver.cpp @@ -2271,6 +2271,8 @@ BaseInput); if (CCCPrintBindings && !CCGenDiagnostics) { + // FIXME: We should use the effective triple here, but it breaks a test + // on Darwin. llvm::errs() << "# \"" << T->getToolChain().getTripleString() << '"' << " - \"" << T->getName() << "\", inputs: ["; for (unsigned i = 0, e = InputInfos.size(); i != e; ++i) { Index: lib/Driver/Tools.cpp =================================================================== --- lib/Driver/Tools.cpp +++ lib/Driver/Tools.cpp @@ -8726,9 +8726,13 @@ claimNoWarnArgs(Args); ArgStringList CmdArgs; + // FIXME: We should be able to use the effective triple here, but there is an + // inconsistency between the ARM target parser and the expected output. + const llvm::Triple &Triple = getToolChain().getTriple(); + // GNU as needs different flags for creating the correct output format // on architectures with different ABIs or optional feature sets. - switch (getToolChain().getArch()) { + switch (Triple.getArch()) { case llvm::Triple::x86: CmdArgs.push_back("--32"); break; @@ -8738,8 +8742,7 @@ case llvm::Triple::thumbeb: { StringRef MArch, MCPU; getARMArchCPUFromArgs(Args, MArch, MCPU, /*FromAs*/ true); - std::string Arch = - arm::getARMTargetCPU(MCPU, MArch, getToolChain().getTriple()); + std::string Arch = arm::getARMTargetCPU(MCPU, MArch, Triple); CmdArgs.push_back(Args.MakeArgString("-mcpu=" + Arch)); break; } @@ -8750,7 +8753,7 @@ case llvm::Triple::mips64el: { StringRef CPUName; StringRef ABIName; - mips::getMipsCPUAndABI(Args, getToolChain().getTriple(), CPUName, ABIName); + mips::getMipsCPUAndABI(Args, Triple, CPUName, ABIName); CmdArgs.push_back("-march"); CmdArgs.push_back(CPUName.data()); @@ -8758,8 +8761,8 @@ CmdArgs.push_back("-mabi"); CmdArgs.push_back(getGnuCompatibleMipsABIName(ABIName).data()); - if (getToolChain().getArch() == llvm::Triple::mips || - getToolChain().getArch() == llvm::Triple::mips64) + if (Triple.getArch() == llvm::Triple::mips || + Triple.getArch() == llvm::Triple::mips64) CmdArgs.push_back("-EB"); else CmdArgs.push_back("-EL"); @@ -8771,16 +8774,16 @@ case llvm::Triple::sparc: case llvm::Triple::sparcel: { CmdArgs.push_back("-32"); - std::string CPU = getCPUName(Args, getToolChain().getTriple()); - CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); + std::string CPU = getCPUName(Args, Triple); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, Triple)); AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; } case llvm::Triple::sparcv9: { CmdArgs.push_back("-64"); - std::string CPU = getCPUName(Args, getToolChain().getTriple()); - CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); + std::string CPU = getCPUName(Args, Triple); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, Triple)); AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; } @@ -9076,6 +9079,8 @@ case llvm::Triple::armeb: case llvm::Triple::thumb: case llvm::Triple::thumbeb: { + // FIXME: We should be able to use the effective triple here, but it breaks + // a test for the linux assembler. const llvm::Triple &Triple2 = getToolChain().getTriple(); switch (Triple2.getSubArch()) { case llvm::Triple::ARMSubArch_v7: