<div dir="ltr">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.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 26, 2015 at 8:47 AM, Douglas Katzman <span dir="ltr"><<a href="mailto:dougk@google.com" target="_blank">dougk@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: dougk<br>
Date: Fri Jun 26 10:47:46 2015<br>
New Revision: 240791<br>
<br>
URL: <a href="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=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=240791&view=rev</a><br>
Log:<br>
clang-format some of the files in lib/Driver. NFC<br>
<br>
Nothing was hand edited afterward except a few literal strings<br>
and comments that were poorly broken.<br>
<br>
Differential Revision: <a href="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=" rel="noreferrer" target="_blank">http://reviews.llvm.org/D10689</a><br>
<br>
Modified:<br>
cfe/trunk/lib/Driver/Driver.cpp<br>
cfe/trunk/lib/Driver/ToolChains.cpp<br>
cfe/trunk/lib/Driver/ToolChains.h<br>
cfe/trunk/lib/Driver/Tools.cpp<br>
<br>
Modified: cfe/trunk/lib/Driver/Driver.cpp<br>
URL: <a href="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=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=240791&r1=240790&r2=240791&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Driver/Driver.cpp (original)<br>
+++ cfe/trunk/lib/Driver/Driver.cpp Fri Jun 26 10:47:46 2015<br>
@@ -58,7 +58,7 @@ Driver::Driver(StringRef ClangExecutable<br>
CCCUsePCH(true), SuppressMissingInputWarning(false) {<br>
<br>
Name = llvm::sys::path::filename(ClangExecutable);<br>
- Dir = llvm::sys::path::parent_path(ClangExecutable);<br>
+ Dir = llvm::sys::path::parent_path(ClangExecutable);<br>
<br>
// Compute the path to the resource directory.<br>
StringRef ClangResourceDir(CLANG_RESOURCE_DIR);<br>
@@ -81,7 +81,7 @@ Driver::~Driver() {<br>
<br>
void Driver::ParseDriverMode(ArrayRef<const char *> Args) {<br>
const std::string OptName =<br>
- getOpts().getOption(options::OPT_driver_mode).getPrefixedName();<br>
+ getOpts().getOption(options::OPT_driver_mode).getPrefixedName();<br>
<br>
for (const char *ArgPtr : Args) {<br>
// Ingore nullptrs, they are response file's EOL markers<br>
@@ -93,11 +93,11 @@ void Driver::ParseDriverMode(ArrayRef<co<br>
<br>
const StringRef Value = Arg.drop_front(OptName.size());<br>
const unsigned M = llvm::StringSwitch<unsigned>(Value)<br>
- .Case("gcc", GCCMode)<br>
- .Case("g++", GXXMode)<br>
- .Case("cpp", CPPMode)<br>
- .Case("cl", CLMode)<br>
- .Default(~0U);<br>
+ .Case("gcc", GCCMode)<br>
+ .Case("g++", GXXMode)<br>
+ .Case("cpp", CPPMode)<br>
+ .Case("cl", CLMode)<br>
+ .Default(~0U);<br>
<br>
if (M != ~0U)<br>
Mode = static_cast<DriverMode>(M);<br>
@@ -112,7 +112,7 @@ InputArgList Driver::ParseArgStrings(Arr<br>
unsigned IncludedFlagsBitmask;<br>
unsigned ExcludedFlagsBitmask;<br>
std::tie(IncludedFlagsBitmask, ExcludedFlagsBitmask) =<br>
- getIncludeExcludeOptionFlagMasks();<br>
+ getIncludeExcludeOptionFlagMasks();<br>
<br>
unsigned MissingArgIndex, MissingArgCount;<br>
InputArgList Args =<br>
@@ -132,8 +132,7 @@ InputArgList Driver::ParseArgStrings(Arr<br>
}<br>
<br>
// Warn about -mcpu= without an argument.<br>
- if (A->getOption().matches(options::OPT_mcpu_EQ) &&<br>
- A->containsValue("")) {<br>
+ if (A->getOption().matches(options::OPT_mcpu_EQ) && A->containsValue("")) {<br>
Diag(clang::diag::warn_drv_empty_joined_argument) << A->getAsString(Args);<br>
}<br>
}<br>
@@ -147,14 +146,13 @@ InputArgList Driver::ParseArgStrings(Arr<br>
// Determine which compilation mode we are in. We look for options which<br>
// affect the phase, starting with the earliest phases, and record which<br>
// option we used to determine the final phase.<br>
-phases::ID Driver::getFinalPhase(const DerivedArgList &DAL, Arg **FinalPhaseArg)<br>
-const {<br>
+phases::ID Driver::getFinalPhase(const DerivedArgList &DAL,<br>
+ Arg **FinalPhaseArg) const {<br>
Arg *PhaseArg = nullptr;<br>
phases::ID FinalPhase;<br>
<br>
// -{E,EP,P,M,MM} only run the preprocessor.<br>
- if (CCCIsCPP() ||<br>
- (PhaseArg = DAL.getLastArg(options::OPT_E)) ||<br>
+ if (CCCIsCPP() || (PhaseArg = DAL.getLastArg(options::OPT_E)) ||<br>
(PhaseArg = DAL.getLastArg(options::OPT__SLASH_EP)) ||<br>
(PhaseArg = DAL.getLastArg(options::OPT_M, options::OPT_MM)) ||<br>
(PhaseArg = DAL.getLastArg(options::OPT__SLASH_P))) {<br>
@@ -190,7 +188,7 @@ const {<br>
return FinalPhase;<br>
}<br>
<br>
-static Arg* MakeInputArg(DerivedArgList &Args, OptTable *Opts,<br>
+static Arg *MakeInputArg(DerivedArgList &Args, OptTable *Opts,<br>
StringRef Value) {<br>
Arg *A = new Arg(Opts->getOption(options::OPT_INPUT), Value,<br>
Args.getBaseArgs().MakeIndex(Value), Value.data());<br>
@@ -248,15 +246,13 @@ DerivedArgList *Driver::TranslateInputAr<br>
<br>
// Rewrite unless -nostdlib is present.<br>
if (!HasNostdlib && Value == "stdc++") {<br>
- DAL->AddFlagArg(A, Opts->getOption(<br>
- options::OPT_Z_reserved_lib_stdcxx));<br>
+ DAL->AddFlagArg(A, Opts->getOption(options::OPT_Z_reserved_lib_stdcxx));<br>
continue;<br>
}<br>
<br>
// Rewrite unconditionally.<br>
if (Value == "cc_kext") {<br>
- DAL->AddFlagArg(A, Opts->getOption(<br>
- options::OPT_Z_reserved_lib_cckext));<br>
+ DAL->AddFlagArg(A, Opts->getOption(options::OPT_Z_reserved_lib_cckext));<br>
continue;<br>
}<br>
}<br>
@@ -272,8 +268,8 @@ DerivedArgList *Driver::TranslateInputAr<br>
DAL->append(A);<br>
}<br>
<br>
- // Add a default value of -mlinker-version=, if one was given and the user<br>
- // didn't specify one.<br>
+// Add a default value of -mlinker-version=, if one was given and the user<br>
+// didn't specify one.<br>
#if defined(HOST_LINK_VERSION)<br>
if (!Args.hasArg(options::OPT_mlinker_version_EQ) &&<br>
strlen(HOST_LINK_VERSION) > 0) {<br>
@@ -295,8 +291,8 @@ Compilation *Driver::BuildCompilation(Ar<br>
if (char *env = ::getenv("COMPILER_PATH")) {<br>
StringRef CompilerPath = env;<br>
while (!CompilerPath.empty()) {<br>
- std::pair<StringRef, StringRef> Split<br>
- = CompilerPath.split(llvm::sys::EnvPathSeparator);<br>
+ std::pair<StringRef, StringRef> Split =<br>
+ CompilerPath.split(llvm::sys::EnvPathSeparator);<br>
PrefixDirs.push_back(Split.first);<br>
CompilerPath = Split.second;<br>
}<br>
@@ -387,8 +383,8 @@ Compilation *Driver::BuildCompilation(Ar<br>
// Construct the list of abstract actions to perform for this compilation. On<br>
// MachO targets this uses the driver-driver and universal actions.<br>
if (TC.getTriple().isOSBinFormatMachO())<br>
- BuildUniversalActions(C->getDefaultToolChain(), C->getArgs(),<br>
- Inputs, C->getActions());<br>
+ BuildUniversalActions(C->getDefaultToolChain(), C->getArgs(), Inputs,<br>
+ C->getActions());<br>
else<br>
BuildActions(C->getDefaultToolChain(), C->getArgs(), Inputs,<br>
C->getActions());<br>
@@ -420,8 +416,8 @@ void Driver::generateCompilationDiagnost<br>
PrintVersion(C, llvm::errs());<br>
<br>
Diag(clang::diag::note_drv_command_failed_diag_msg)<br>
- << "PLEASE submit a bug report to " BUG_REPORT_URL " and include the "<br>
- "crash backtrace, preprocessed source, and associated run script.";<br>
+ << "PLEASE submit a bug report to " BUG_REPORT_URL " and include the "<br>
+ "crash backtrace, preprocessed source, and associated run script.";<br>
<br>
// Suppress driver output and emit preprocessor output to temp file.<br>
Mode = CPPMode;<br>
@@ -446,12 +442,12 @@ void Driver::generateCompilationDiagnost<br>
<br>
// Ignore input from stdin or any inputs that cannot be preprocessed.<br>
// Check type first as not all linker inputs have a value.<br>
- if (types::getPreprocessedType(it->first) == types::TY_INVALID) {<br>
+ if (types::getPreprocessedType(it->first) == types::TY_INVALID) {<br>
IgnoreInput = true;<br>
} else if (!strcmp(it->second->getValue(), "-")) {<br>
Diag(clang::diag::note_drv_command_failed_diag_msg)<br>
- << "Error generating preprocessed source(s) - ignoring input from stdin"<br>
- ".";<br>
+ << "Error generating preprocessed source(s) - "<br>
+ "ignoring input from stdin.";<br>
IgnoreInput = true;<br>
}<br>
<br>
@@ -465,7 +461,8 @@ void Driver::generateCompilationDiagnost<br>
<br>
if (Inputs.empty()) {<br>
Diag(clang::diag::note_drv_command_failed_diag_msg)<br>
- << "Error generating preprocessed source(s) - no preprocessable inputs.";<br>
+ << "Error generating preprocessed source(s) - "<br>
+ "no preprocessable inputs.";<br>
return;<br>
}<br>
<br>
@@ -480,8 +477,8 @@ void Driver::generateCompilationDiagnost<br>
}<br>
if (ArchNames.size() > 1) {<br>
Diag(clang::diag::note_drv_command_failed_diag_msg)<br>
- << "Error generating preprocessed source(s) - cannot generate "<br>
- "preprocessed source with multiple -arch options.";<br>
+ << "Error generating preprocessed source(s) - cannot generate "<br>
+ "preprocessed source with multiple -arch options.";<br>
return;<br>
}<br>
<br>
@@ -498,7 +495,7 @@ void Driver::generateCompilationDiagnost<br>
// If there were errors building the compilation, quit now.<br>
if (Trap.hasErrorOccurred()) {<br>
Diag(clang::diag::note_drv_command_failed_diag_msg)<br>
- << "Error generating preprocessed source(s).";<br>
+ << "Error generating preprocessed source(s).";<br>
return;<br>
}<br>
<br>
@@ -512,14 +509,14 @@ void Driver::generateCompilationDiagnost<br>
C.CleanupFileList(C.getTempFiles(), true);<br>
<br>
Diag(clang::diag::note_drv_command_failed_diag_msg)<br>
- << "Error generating preprocessed source(s).";<br>
+ << "Error generating preprocessed source(s).";<br>
return;<br>
}<br>
<br>
const ArgStringList &TempFiles = C.getTempFiles();<br>
if (TempFiles.empty()) {<br>
Diag(clang::diag::note_drv_command_failed_diag_msg)<br>
- << "Error generating preprocessed source(s).";<br>
+ << "Error generating preprocessed source(s).";<br>
return;<br>
}<br>
<br>
@@ -583,12 +580,13 @@ void Driver::setUpResponseFiles(Compilat<br>
return;<br>
<br>
std::string TmpName = GetTemporaryPath("response", "txt");<br>
- CurCommand->setResponseFile(C.addTempFile(C.getArgs().MakeArgString(<br>
- TmpName.c_str())));<br>
+ CurCommand->setResponseFile(<br>
+ C.addTempFile(C.getArgs().MakeArgString(TmpName.c_str())));<br>
}<br>
<br>
-int Driver::ExecuteCompilation(Compilation &C,<br>
- SmallVectorImpl< std::pair<int, const Command *> > &FailingCommands) {<br>
+int Driver::ExecuteCompilation(<br>
+ Compilation &C,<br>
+ SmallVectorImpl<std::pair<int, const Command *>> &FailingCommands) {<br>
// Just print if -### was present.<br>
if (C.getArgs().hasArg(options::OPT__HASH_HASH_HASH)) {<br>
C.getJobs().Print(llvm::errs(), "\n", true);<br>
@@ -640,10 +638,10 @@ int Driver::ExecuteCompilation(Compilati<br>
// FIXME: See FIXME above regarding result code interpretation.<br>
if (Res < 0)<br>
Diag(clang::diag::err_drv_command_signalled)<br>
- << FailingTool.getShortName();<br>
+ << FailingTool.getShortName();<br>
else<br>
- Diag(clang::diag::err_drv_command_failed)<br>
- << FailingTool.getShortName() << Res;<br>
+ Diag(clang::diag::err_drv_command_failed) << FailingTool.getShortName()<br>
+ << Res;<br>
}<br>
}<br>
return 0;<br>
@@ -653,7 +651,7 @@ void Driver::PrintHelp(bool ShowHidden)<br>
unsigned IncludedFlagsBitmask;<br>
unsigned ExcludedFlagsBitmask;<br>
std::tie(IncludedFlagsBitmask, ExcludedFlagsBitmask) =<br>
- getIncludeExcludeOptionFlagMasks();<br>
+ getIncludeExcludeOptionFlagMasks();<br>
<br>
ExcludedFlagsBitmask |= options::NoDriverOption;<br>
if (!ShowHidden)<br>
@@ -684,8 +682,8 @@ void Driver::PrintVersion(const Compilat<br>
/// option.<br>
static void PrintDiagnosticCategories(raw_ostream &OS) {<br>
// Skip the empty category.<br>
- for (unsigned i = 1, max = DiagnosticIDs::getNumberOfCategories();<br>
- i != max; ++i)<br>
+ for (unsigned i = 1, max = DiagnosticIDs::getNumberOfCategories(); i != max;<br>
+ ++i)<br>
OS << i << ',' << DiagnosticIDs::getCategoryNameFromID(i) << '\n';<br>
}<br>
<br>
@@ -741,7 +739,8 @@ bool Driver::HandleImmediateArgs(const C<br>
llvm::outs() << "programs: =";<br>
bool separator = false;<br>
for (const std::string &Path : TC.getProgramPaths()) {<br>
- if (separator) llvm::outs() << ':';<br>
+ if (separator)<br>
+ llvm::outs() << ':';<br>
llvm::outs() << Path;<br>
separator = true;<br>
}<br>
@@ -817,7 +816,7 @@ bool Driver::HandleImmediateArgs(const C<br>
// and latest-occuring action. Traversal is in pre-order, visiting the<br>
// inputs to each action before printing the action itself.<br>
static unsigned PrintActions1(const Compilation &C, Action *A,<br>
- std::map<Action*, unsigned> &Ids) {<br>
+ std::map<Action *, unsigned> &Ids) {<br>
if (Ids.count(A)) // A was already visited.<br>
return Ids[A];<br>
<br>
@@ -858,8 +857,7 @@ void Driver::PrintActions(const Compilat<br>
/// \brief Check whether the given input tree contains any compilation or<br>
/// assembly actions.<br>
static bool ContainsCompileOrAssembleAction(const Action *A) {<br>
- if (isa<CompileJobAction>(A) ||<br>
- isa<BackendJobAction>(A) ||<br>
+ if (isa<CompileJobAction>(A) || isa<BackendJobAction>(A) ||<br>
isa<AssembleJobAction>(A))<br>
return true;<br>
<br>
@@ -870,8 +868,7 @@ static bool ContainsCompileOrAssembleAct<br>
return false;<br>
}<br>
<br>
-void Driver::BuildUniversalActions(const ToolChain &TC,<br>
- DerivedArgList &Args,<br>
+void Driver::BuildUniversalActions(const ToolChain &TC, DerivedArgList &Args,<br>
const InputList &BAInputs,<br>
ActionList &Actions) const {<br>
llvm::PrettyStackTraceString CrashInfo("Building universal build actions");<br>
@@ -884,10 +881,9 @@ void Driver::BuildUniversalActions(const<br>
// Validate the option here; we don't save the type here because its<br>
// particular spelling may participate in other driver choices.<br>
llvm::Triple::ArchType Arch =<br>
- tools::darwin::getArchTypeForMachOArchName(A->getValue());<br>
+ tools::darwin::getArchTypeForMachOArchName(A->getValue());<br>
if (Arch == llvm::Triple::UnknownArch) {<br>
- Diag(clang::diag::err_drv_invalid_arch_name)<br>
- << A->getAsString(Args);<br>
+ Diag(clang::diag::err_drv_invalid_arch_name) << A->getAsString(Args);<br>
continue;<br>
}<br>
<br>
@@ -918,7 +914,7 @@ void Driver::BuildUniversalActions(const<br>
<br>
if (Archs.size() > 1 && !types::canLipoType(Act->getType()))<br>
Diag(clang::diag::err_drv_invalid_output_with_multiple_archs)<br>
- << types::getTypeName(Act->getType());<br>
+ << types::getTypeName(Act->getType());<br>
<br>
ActionList Inputs;<br>
for (unsigned i = 0, e = Archs.size(); i != e; ++i) {<br>
@@ -1008,10 +1004,11 @@ void Driver::BuildInputs(const ToolChain<br>
options::OPT__SLASH_TP)) {<br>
InputTypeArg = TCTP;<br>
InputType = TCTP->getOption().matches(options::OPT__SLASH_TC)<br>
- ? types::TY_C : types::TY_CXX;<br>
+ ? types::TY_C<br>
+ : types::TY_CXX;<br>
<br>
- arg_iterator it = Args.filtered_begin(options::OPT__SLASH_TC,<br>
- options::OPT__SLASH_TP);<br>
+ arg_iterator it =<br>
+ Args.filtered_begin(options::OPT__SLASH_TC, options::OPT__SLASH_TP);<br>
const arg_iterator ie = Args.filtered_end();<br>
Arg *Previous = *it++;<br>
bool ShowNote = false;<br>
@@ -1073,7 +1070,7 @@ void Driver::BuildInputs(const ToolChain<br>
<br>
if (Ty != OldTy)<br>
Diag(clang::diag::warn_drv_treating_input_as_cxx)<br>
- << getTypeName(OldTy) << getTypeName(Ty);<br>
+ << getTypeName(OldTy) << getTypeName(Ty);<br>
}<br>
}<br>
<br>
@@ -1175,7 +1172,7 @@ void Driver::BuildActions(const ToolChai<br>
!llvm::sys::path::is_separator(V.back())) {<br>
// Check whether /Fo tries to name an output file for multiple inputs.<br>
Diag(clang::diag::err_drv_out_file_argument_with_multiple_sources)<br>
- << A->getSpelling() << V;<br>
+ << A->getSpelling() << V;<br>
Args.eraseArg(options::OPT__SLASH_Fo);<br>
}<br>
}<br>
@@ -1187,7 +1184,7 @@ void Driver::BuildActions(const ToolChai<br>
!llvm::sys::path::is_separator(V.back())) {<br>
// Check whether /Fa tries to name an asm file for multiple inputs.<br>
Diag(clang::diag::err_drv_out_file_argument_with_multiple_sources)<br>
- << A->getSpelling() << V;<br>
+ << A->getSpelling() << V;<br>
Args.eraseArg(options::OPT__SLASH_Fa);<br>
}<br>
}<br>
@@ -1227,30 +1224,27 @@ void Driver::BuildActions(const ToolChai<br>
// by a command-line argument with a corresponding Arg.<br>
if (CCCIsCPP())<br>
Diag(clang::diag::warn_drv_input_file_unused_by_cpp)<br>
- << InputArg->getAsString(Args)<br>
- << getPhaseName(InitialPhase);<br>
+ << InputArg->getAsString(Args) << getPhaseName(InitialPhase);<br>
// Special case '-E' warning on a previously preprocessed file to make<br>
// more sense.<br>
else if (InitialPhase == phases::Compile &&<br>
FinalPhase == phases::Preprocess &&<br>
getPreprocessedType(InputType) == types::TY_INVALID)<br>
Diag(clang::diag::warn_drv_preprocessed_input_file_unused)<br>
- << InputArg->getAsString(Args)<br>
- << !!FinalPhaseArg<br>
- << (FinalPhaseArg ? FinalPhaseArg->getOption().getName() : "");<br>
+ << InputArg->getAsString(Args) << !!FinalPhaseArg<br>
+ << (FinalPhaseArg ? FinalPhaseArg->getOption().getName() : "");<br>
else<br>
Diag(clang::diag::warn_drv_input_file_unused)<br>
- << InputArg->getAsString(Args)<br>
- << getPhaseName(InitialPhase)<br>
- << !!FinalPhaseArg<br>
- << (FinalPhaseArg ? FinalPhaseArg->getOption().getName() : "");<br>
+ << InputArg->getAsString(Args) << getPhaseName(InitialPhase)<br>
+ << !!FinalPhaseArg<br>
+ << (FinalPhaseArg ? FinalPhaseArg->getOption().getName() : "");<br>
continue;<br>
}<br>
<br>
// Build the pipeline for this file.<br>
std::unique_ptr<Action> Current(new InputAction(*InputArg, InputType));<br>
- for (SmallVectorImpl<phases::ID>::iterator<br>
- i = PL.begin(), e = PL.end(); i != e; ++i) {<br>
+ for (SmallVectorImpl<phases::ID>::iterator i = PL.begin(), e = PL.end();<br>
+ i != e; ++i) {<br>
phases::ID Phase = *i;<br>
<br>
// We are done if this step is past what the user requested.<br>
@@ -1303,7 +1297,8 @@ Driver::ConstructPhaseAction(const ToolC<br>
llvm::PrettyStackTraceString CrashInfo("Constructing phase actions");<br>
// Build the appropriate action.<br>
switch (Phase) {<br>
- case phases::Link: llvm_unreachable("link action invalid here.");<br>
+ case phases::Link:<br>
+ llvm_unreachable("link action invalid here.");<br>
case phases::Preprocess: {<br>
types::ID OutputTy;<br>
// -{M, MM} alter the output type.<br>
@@ -1359,12 +1354,12 @@ Driver::ConstructPhaseAction(const ToolC<br>
case phases::Backend: {<br>
if (IsUsingLTO(Args)) {<br>
types::ID Output =<br>
- Args.hasArg(options::OPT_S) ? types::TY_LTO_IR : types::TY_LTO_BC;<br>
+ Args.hasArg(options::OPT_S) ? types::TY_LTO_IR : types::TY_LTO_BC;<br>
return llvm::make_unique<BackendJobAction>(std::move(Input), Output);<br>
}<br>
if (Args.hasArg(options::OPT_emit_llvm)) {<br>
types::ID Output =<br>
- Args.hasArg(options::OPT_S) ? types::TY_LLVM_IR : types::TY_LLVM_BC;<br>
+ Args.hasArg(options::OPT_S) ? types::TY_LLVM_IR : types::TY_LLVM_BC;<br>
return llvm::make_unique<BackendJobAction>(std::move(Input), Output);<br>
}<br>
return llvm::make_unique<BackendJobAction>(std::move(Input),<br>
@@ -1425,11 +1420,10 @@ void Driver::BuildJobs(Compilation &C) c<br>
<br>
InputInfo II;<br>
BuildJobsForAction(C, A, &C.getDefaultToolChain(),<br>
- /*BoundArch*/nullptr,<br>
+ /*BoundArch*/ nullptr,<br>
/*AtTopLevel*/ true,<br>
/*MultipleArchs*/ ArchNames.size() > 1,<br>
- /*LinkingOutput*/ LinkingOutput,<br>
- II);<br>
+ /*LinkingOutput*/ LinkingOutput, II);<br>
}<br>
<br>
// If the user passed -Qunused-arguments or there were errors, don't warn<br>
@@ -1439,10 +1433,10 @@ void Driver::BuildJobs(Compilation &C) c<br>
return;<br>
<br>
// Claim -### here.<br>
- (void) C.getArgs().hasArg(options::OPT__HASH_HASH_HASH);<br>
+ (void)C.getArgs().hasArg(options::OPT__HASH_HASH_HASH);<br>
<br>
// Claim --driver-mode, it was handled earlier.<br>
- (void) C.getArgs().hasArg(options::OPT_driver_mode);<br>
+ (void)C.getArgs().hasArg(options::OPT_driver_mode);<br>
<br>
for (Arg *A : C.getArgs()) {<br>
// FIXME: It would be nice to be able to send the argument to the<br>
@@ -1470,7 +1464,7 @@ void Driver::BuildJobs(Compilation &C) c<br>
}<br>
<br>
Diag(clang::diag::warn_drv_unused_argument)<br>
- << A->getAsString(C.getArgs());<br>
+ << A->getAsString(C.getArgs());<br>
}<br>
}<br>
}<br>
@@ -1484,13 +1478,12 @@ static const Tool *SelectToolForJob(Comp<br>
// bottom up, so what we are actually looking for is an assembler job with a<br>
// compiler input.<br>
<br>
- if (TC->useIntegratedAs() &&<br>
- !SaveTemps &&<br>
+ if (TC->useIntegratedAs() && !SaveTemps &&<br>
!C.getArgs().hasArg(options::OPT_via_file_asm) &&<br>
!C.getArgs().hasArg(options::OPT__SLASH_FA) &&<br>
!C.getArgs().hasArg(options::OPT__SLASH_Fa) &&<br>
- isa<AssembleJobAction>(JA) &&<br>
- Inputs->size() == 1 && isa<BackendJobAction>(*Inputs->begin())) {<br>
+ isa<AssembleJobAction>(JA) && Inputs->size() == 1 &&<br>
+ isa<BackendJobAction>(*Inputs->begin())) {<br>
// A BackendJob is always preceded by a CompileJob, and without<br>
// -save-temps they will always get combined together, so instead of<br>
// checking the backend tool, check if the tool for the CompileJob<br>
@@ -1531,8 +1524,7 @@ static const Tool *SelectToolForJob(Comp<br>
// (irrelevant since we don't support combine yet).<br>
if (Inputs->size() == 1 && isa<PreprocessJobAction>(*Inputs->begin()) &&<br>
!C.getArgs().hasArg(options::OPT_no_integrated_cpp) &&<br>
- !C.getArgs().hasArg(options::OPT_traditional_cpp) &&<br>
- !SaveTemps &&<br>
+ !C.getArgs().hasArg(options::OPT_traditional_cpp) && !SaveTemps &&<br>
!C.getArgs().hasArg(options::OPT_rewrite_objc) &&<br>
ToolForJob->hasIntegratedCPP())<br>
Inputs = &(*Inputs)[0]->getInputs();<br>
@@ -1540,12 +1532,9 @@ static const Tool *SelectToolForJob(Comp<br>
return ToolForJob;<br>
}<br>
<br>
-void Driver::BuildJobsForAction(Compilation &C,<br>
- const Action *A,<br>
- const ToolChain *TC,<br>
- const char *BoundArch,<br>
- bool AtTopLevel,<br>
- bool MultipleArchs,<br>
+void Driver::BuildJobsForAction(Compilation &C, const Action *A,<br>
+ const ToolChain *TC, const char *BoundArch,<br>
+ bool AtTopLevel, bool MultipleArchs,<br>
const char *LinkingOutput,<br>
InputInfo &Result) const {<br>
llvm::PrettyStackTraceString CrashInfo("Building compilation jobs");<br>
@@ -1573,8 +1562,8 @@ void Driver::BuildJobsForAction(Compilat<br>
else<br>
TC = &C.getDefaultToolChain();<br>
<br>
- BuildJobsForAction(C, *BAA->begin(), TC, BAA->getArchName(),<br>
- AtTopLevel, MultipleArchs, LinkingOutput, Result);<br>
+ BuildJobsForAction(C, *BAA->begin(), TC, BAA->getArchName(), AtTopLevel,<br>
+ MultipleArchs, LinkingOutput, Result);<br>
return;<br>
}<br>
<br>
@@ -1642,7 +1631,8 @@ const char *Driver::getDefaultImageName(<br>
/// does not provide a filename, then use BaseName, and use the extension<br>
/// suitable for FileType.<br>
static const char *MakeCLOutputFilename(const ArgList &Args, StringRef ArgValue,<br>
- StringRef BaseName, types::ID FileType) {<br>
+ StringRef BaseName,<br>
+ types::ID FileType) {<br>
SmallString<128> Filename = ArgValue;<br>
<br>
if (ArgValue.empty()) {<br>
@@ -1669,16 +1659,13 @@ static const char *MakeCLOutputFilename(<br>
return Args.MakeArgString(Filename.c_str());<br>
}<br>
<br>
-const char *Driver::GetNamedOutputPath(Compilation &C,<br>
- const JobAction &JA,<br>
+const char *Driver::GetNamedOutputPath(Compilation &C, const JobAction &JA,<br>
const char *BaseInput,<br>
- const char *BoundArch,<br>
- bool AtTopLevel,<br>
+ const char *BoundArch, bool AtTopLevel,<br>
bool MultipleArchs) const {<br>
llvm::PrettyStackTraceString CrashInfo("Computing output path");<br>
// Output to a user requested destination?<br>
- if (AtTopLevel && !isa<DsymutilJobAction>(JA) &&<br>
- !isa<VerifyJobAction>(JA)) {<br>
+ if (AtTopLevel && !isa<DsymutilJobAction>(JA) && !isa<VerifyJobAction>(JA)) {<br>
if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o))<br>
return C.addResultFile(FinalOutput->getValue(), &JA);<br>
}<br>
@@ -1690,8 +1677,9 @@ const char *Driver::GetNamedOutputPath(C<br>
StringRef NameArg;<br>
if (Arg *A = C.getArgs().getLastArg(options::OPT__SLASH_Fi))<br>
NameArg = A->getValue();<br>
- return C.addResultFile(MakeCLOutputFilename(C.getArgs(), NameArg, BaseName,<br>
- types::TY_PP_C), &JA);<br>
+ return C.addResultFile(<br>
+ MakeCLOutputFilename(C.getArgs(), NameArg, BaseName, types::TY_PP_C),<br>
+ &JA);<br>
}<br>
<br>
// Default to writing to stdout?<br>
@@ -1706,19 +1694,19 @@ const char *Driver::GetNamedOutputPath(C<br>
// Use /Fa and the input filename to determine the asm file name.<br>
StringRef BaseName = llvm::sys::path::filename(BaseInput);<br>
StringRef FaValue = C.getArgs().getLastArgValue(options::OPT__SLASH_Fa);<br>
- return C.addResultFile(MakeCLOutputFilename(C.getArgs(), FaValue, BaseName,<br>
- JA.getType()), &JA);<br>
+ return C.addResultFile(<br>
+ MakeCLOutputFilename(C.getArgs(), FaValue, BaseName, JA.getType()),<br>
+ &JA);<br>
}<br>
<br>
// Output to a temporary file?<br>
if ((!AtTopLevel && !isSaveTempsEnabled() &&<br>
- !C.getArgs().hasArg(options::OPT__SLASH_Fo)) ||<br>
+ !C.getArgs().hasArg(options::OPT__SLASH_Fo)) ||<br>
CCGenDiagnostics) {<br>
StringRef Name = llvm::sys::path::filename(BaseInput);<br>
std::pair<StringRef, StringRef> Split = Name.split('.');<br>
- std::string TmpName =<br>
- GetTemporaryPath(Split.first,<br>
- types::getTypeTempSuffix(JA.getType(), IsCLMode()));<br>
+ std::string TmpName = GetTemporaryPath(<br>
+ Split.first, types::getTypeTempSuffix(JA.getType(), IsCLMode()));<br>
return C.addTempFile(C.getArgs().MakeArgString(TmpName.c_str()));<br>
}<br>
<br>
@@ -1737,22 +1725,27 @@ const char *Driver::GetNamedOutputPath(C<br>
if (JA.getType() == types::TY_Object &&<br>
C.getArgs().hasArg(options::OPT__SLASH_Fo, options::OPT__SLASH_o)) {<br>
// The /Fo or /o flag decides the object filename.<br>
- StringRef Val = C.getArgs().getLastArg(options::OPT__SLASH_Fo,<br>
- options::OPT__SLASH_o)->getValue();<br>
- NamedOutput = MakeCLOutputFilename(C.getArgs(), Val, BaseName,<br>
- types::TY_Object);<br>
+ StringRef Val =<br>
+ C.getArgs()<br>
+ .getLastArg(options::OPT__SLASH_Fo, options::OPT__SLASH_o)<br>
+ ->getValue();<br>
+ NamedOutput =<br>
+ MakeCLOutputFilename(C.getArgs(), Val, BaseName, types::TY_Object);<br>
} else if (JA.getType() == types::TY_Image &&<br>
- C.getArgs().hasArg(options::OPT__SLASH_Fe, options::OPT__SLASH_o)) {<br>
+ C.getArgs().hasArg(options::OPT__SLASH_Fe,<br>
+ options::OPT__SLASH_o)) {<br>
// The /Fe or /o flag names the linked file.<br>
- StringRef Val = C.getArgs().getLastArg(options::OPT__SLASH_Fe,<br>
- options::OPT__SLASH_o)->getValue();<br>
- NamedOutput = MakeCLOutputFilename(C.getArgs(), Val, BaseName,<br>
- types::TY_Image);<br>
+ StringRef Val =<br>
+ C.getArgs()<br>
+ .getLastArg(options::OPT__SLASH_Fe, options::OPT__SLASH_o)<br>
+ ->getValue();<br>
+ NamedOutput =<br>
+ MakeCLOutputFilename(C.getArgs(), Val, BaseName, types::TY_Image);<br>
} else if (JA.getType() == types::TY_Image) {<br>
if (IsCLMode()) {<br>
// clang-cl uses BaseName for the executable name.<br>
- NamedOutput = MakeCLOutputFilename(C.getArgs(), "", BaseName,<br>
- types::TY_Image);<br>
+ NamedOutput =<br>
+ MakeCLOutputFilename(C.getArgs(), "", BaseName, types::TY_Image);<br>
} else if (MultipleArchs && BoundArch) {<br>
SmallString<128> Output(getDefaultImageName());<br>
Output += "-";<br>
@@ -1806,9 +1799,8 @@ const char *Driver::GetNamedOutputPath(C<br>
if (SameFile) {<br>
StringRef Name = llvm::sys::path::filename(BaseInput);<br>
std::pair<StringRef, StringRef> Split = Name.split('.');<br>
- std::string TmpName =<br>
- GetTemporaryPath(Split.first,<br>
- types::getTypeTempSuffix(JA.getType(), IsCLMode()));<br>
+ std::string TmpName = GetTemporaryPath(<br>
+ Split.first, types::getTypeTempSuffix(JA.getType(), IsCLMode()));<br>
return C.addTempFile(C.getArgs().MakeArgString(TmpName.c_str()));<br>
}<br>
}<br>
@@ -1855,9 +1847,9 @@ std::string Driver::GetFilePath(const ch<br>
return Name;<br>
}<br>
<br>
-void<br>
-Driver::generatePrefixedToolNames(const char *Tool, const ToolChain &TC,<br>
- SmallVectorImpl<std::string> &Names) const {<br>
+void Driver::generatePrefixedToolNames(<br>
+ const char *Tool, const ToolChain &TC,<br>
+ SmallVectorImpl<std::string> &Names) const {<br>
// FIXME: Needs a better variable than DefaultTargetTriple<br>
Names.emplace_back(DefaultTargetTriple + "-" + Tool);<br>
Names.emplace_back(Tool);<br>
@@ -1909,8 +1901,8 @@ std::string Driver::GetProgramPath(const<br>
return Name;<br>
}<br>
<br>
-std::string Driver::GetTemporaryPath(StringRef Prefix, const char *Suffix)<br>
- const {<br>
+std::string Driver::GetTemporaryPath(StringRef Prefix,<br>
+ const char *Suffix) const {<br>
SmallString<128> Path;<br>
std::error_code EC = llvm::sys::fs::createTemporaryFile(Prefix, Suffix, Path);<br>
if (EC) {<br>
@@ -1984,7 +1976,7 @@ static llvm::Triple computeTargetTriple(<br>
if (Target.getEnvironment() == llvm::Triple::GNUX32)<br>
Target.setEnvironment(llvm::Triple::GNU);<br>
} else if (A->getOption().matches(options::OPT_mx32) &&<br>
- Target.get64BitArchVariant().getArch() == llvm::Triple::x86_64) {<br>
+ Target.get64BitArchVariant().getArch() == llvm::Triple::x86_64) {<br>
AT = llvm::Triple::x86_64;<br>
Target.setEnvironment(llvm::Triple::GNUX32);<br>
} else if (A->getOption().matches(options::OPT_m32)) {<br>
@@ -1992,7 +1984,7 @@ static llvm::Triple computeTargetTriple(<br>
if (Target.getEnvironment() == llvm::Triple::GNUX32)<br>
Target.setEnvironment(llvm::Triple::GNU);<br>
} else if (A->getOption().matches(options::OPT_m16) &&<br>
- Target.get32BitArchVariant().getArch() == llvm::Triple::x86) {<br>
+ Target.get32BitArchVariant().getArch() == llvm::Triple::x86) {<br>
AT = llvm::Triple::x86;<br>
Target.setEnvironment(llvm::Triple::CODE16);<br>
}<br>
@@ -2102,8 +2094,7 @@ const ToolChain &Driver::getToolChain(co<br>
<br>
bool Driver::ShouldUseClangCompiler(const JobAction &JA) const {<br>
// Say "no" if there is not exactly one input of a type clang understands.<br>
- if (JA.size() != 1 ||<br>
- !types::isAcceptedByClang((*JA.begin())->getType()))<br>
+ if (JA.size() != 1 || !types::isAcceptedByClang((*JA.begin())->getType()))<br>
return false;<br>
<br>
// And say "no" if this is not a kind of action clang understands.<br>
@@ -2129,21 +2120,21 @@ bool Driver::GetReleaseVersion(const cha<br>
return false;<br>
<br>
char *End;<br>
- Major = (unsigned) strtol(Str, &End, 10);<br>
+ Major = (unsigned)strtol(Str, &End, 10);<br>
if (*Str != '\0' && *End == '\0')<br>
return true;<br>
if (*End != '.')<br>
return false;<br>
<br>
- Str = End+1;<br>
- Minor = (unsigned) strtol(Str, &End, 10);<br>
+ Str = End + 1;<br>
+ Minor = (unsigned)strtol(Str, &End, 10);<br>
if (*Str != '\0' && *End == '\0')<br>
return true;<br>
if (*End != '.')<br>
return false;<br>
<br>
- Str = End+1;<br>
- Micro = (unsigned) strtol(Str, &End, 10);<br>
+ Str = End + 1;<br>
+ Micro = (unsigned)strtol(Str, &End, 10);<br>
if (*Str != '\0' && *End == '\0')<br>
return true;<br>
if (Str == End)<br>
<br>
Modified: cfe/trunk/lib/Driver/ToolChains.cpp<br>
URL: <a href="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=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=240791&r1=240790&r2=240791&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Driver/ToolChains.cpp (original)<br>
+++ cfe/trunk/lib/Driver/ToolChains.cpp Fri Jun 26 10:47:46 2015<br>
@@ -39,9 +39,8 @@ using namespace clang::driver::toolchain<br>
using namespace clang;<br>
using namespace llvm::opt;<br>
<br>
-MachO::MachO(const Driver &D, const llvm::Triple &Triple,<br>
- const ArgList &Args)<br>
- : ToolChain(D, Triple, Args) {<br>
+MachO::MachO(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)<br>
+ : ToolChain(D, Triple, Args) {<br>
// We expect 'as', 'ld', etc. to be adjacent to our install dir.<br>
getProgramPaths().push_back(getDriver().getInstalledDir());<br>
if (getDriver().getInstalledDir() != getDriver().Dir)<br>
@@ -62,9 +61,7 @@ types::ID MachO::LookupTypeForExtension(<br>
return Ty;<br>
}<br>
<br>
-bool MachO::HasNativeLLVMSupport() const {<br>
- return true;<br>
-}<br>
+bool MachO::HasNativeLLVMSupport() const { return true; }<br>
<br>
/// Darwin provides an ARC runtime starting in MacOS X 10.7 and iOS 5.0.<br>
ObjCRuntime Darwin::getDefaultObjCRuntime(bool isNonFragile) const {<br>
@@ -90,20 +87,20 @@ bool Darwin::hasBlocksRuntime() const {<br>
// other assumptions. Maybe MachO should consider standardising<br>
// their nomenclature.<br>
static const char *ArmMachOArchName(StringRef Arch) {<br>
- return llvm::StringSwitch<const char*>(Arch)<br>
- .Case("armv6k", "armv6")<br>
- .Case("armv6m", "armv6m")<br>
- .Case("armv5tej", "armv5")<br>
- .Case("xscale", "xscale")<br>
- .Case("armv4t", "armv4t")<br>
- .Case("armv7", "armv7")<br>
- .Cases("armv7a", "armv7-a", "armv7")<br>
- .Cases("armv7r", "armv7-r", "armv7")<br>
- .Cases("armv7em", "armv7e-m", "armv7em")<br>
- .Cases("armv7k", "armv7-k", "armv7k")<br>
- .Cases("armv7m", "armv7-m", "armv7m")<br>
- .Cases("armv7s", "armv7-s", "armv7s")<br>
- .Default(nullptr);<br>
+ return llvm::StringSwitch<const char *>(Arch)<br>
+ .Case("armv6k", "armv6")<br>
+ .Case("armv6m", "armv6m")<br>
+ .Case("armv5tej", "armv5")<br>
+ .Case("xscale", "xscale")<br>
+ .Case("armv4t", "armv4t")<br>
+ .Case("armv7", "armv7")<br>
+ .Cases("armv7a", "armv7-a", "armv7")<br>
+ .Cases("armv7r", "armv7-r", "armv7")<br>
+ .Cases("armv7em", "armv7e-m", "armv7em")<br>
+ .Cases("armv7k", "armv7-k", "armv7k")<br>
+ .Cases("armv7m", "armv7-m", "armv7m")<br>
+ .Cases("armv7s", "armv7-s", "armv7s")<br>
+ .Default(nullptr);<br>
}<br>
<br>
static const char *ArmMachOArchNameCPU(StringRef CPU) {<br>
@@ -159,15 +156,12 @@ StringRef MachO::getMachOArchName(const<br>
}<br>
}<br>
<br>
-Darwin::~Darwin() {<br>
-}<br>
-<br>
-MachO::~MachO() {<br>
-}<br>
+Darwin::~Darwin() {}<br>
<br>
+MachO::~MachO() {}<br>
<br>
std::string MachO::ComputeEffectiveClangTriple(const ArgList &Args,<br>
- types::ID InputType) const {<br>
+ types::ID InputType) const {<br>
llvm::Triple Triple(ComputeLLVMTriple(Args, InputType));<br>
<br>
return Triple.getTriple();<br>
@@ -305,7 +299,7 @@ void MachO::AddLinkRuntimeLib(const ArgL<br>
}<br>
<br>
void Darwin::addProfileRTLibs(const ArgList &Args,<br>
- ArgStringList &CmdArgs) const {<br>
+ ArgStringList &CmdArgs) const {<br>
if (!(Args.hasFlag(options::OPT_fprofile_arcs, options::OPT_fno_profile_arcs,<br>
false) ||<br>
Args.hasArg(options::OPT_fprofile_generate) ||<br>
@@ -334,10 +328,11 @@ void DarwinClang::AddLinkSanitizerLibArg<br>
}<br>
assert(isTargetMacOS() || isTargetIOSSimulator());<br>
StringRef OS = isTargetMacOS() ? "osx" : "iossim";<br>
- AddLinkRuntimeLib(Args, CmdArgs, (Twine("libclang_rt.") + Sanitizer + "_" +<br>
- OS + "_dynamic.dylib").str(),<br>
- /*AlwaysLink*/ true, /*IsEmbedded*/ false,<br>
- /*AddRPath*/ true);<br>
+ AddLinkRuntimeLib(<br>
+ Args, CmdArgs,<br>
+ (Twine("libclang_rt.") + Sanitizer + "_" + OS + "_dynamic.dylib").str(),<br>
+ /*AlwaysLink*/ true, /*IsEmbedded*/ false,<br>
+ /*AddRPath*/ true);<br>
<br>
if (GetCXXStdlibType(Args) == ToolChain::CST_Libcxx) {<br>
// Add explicit dependcy on -lc++abi, as -lc++ doesn't re-export<br>
@@ -354,7 +349,7 @@ void DarwinClang::AddLinkRuntimeLibArgs(<br>
break;<br>
default:<br>
getDriver().Diag(diag::err_drv_unsupported_rtlib_for_platform)<br>
- << Args.getLastArg(options::OPT_rtlib_EQ)->getValue() << "darwin";<br>
+ << Args.getLastArg(options::OPT_rtlib_EQ)->getValue() << "darwin";<br>
return;<br>
}<br>
<br>
@@ -369,12 +364,10 @@ void DarwinClang::AddLinkRuntimeLibArgs(<br>
// cares. This is useful in situations where someone wants to statically link<br>
// something like libstdc++, and needs its runtime support routines.<br>
if (const Arg *A = Args.getLastArg(options::OPT_static_libgcc)) {<br>
- getDriver().Diag(diag::err_drv_unsupported_opt)<br>
- << A->getAsString(Args);<br>
+ getDriver().Diag(diag::err_drv_unsupported_opt) << A->getAsString(Args);<br>
return;<br>
}<br>
<br>
-<br>
const SanitizerArgs &Sanitize = getSanitizerArgs();<br>
if (Sanitize.needsAsanRt())<br>
AddLinkSanitizerLibArgs(Args, CmdArgs, "asan");<br>
@@ -440,7 +433,7 @@ void Darwin::AddDeploymentTarget(Derived<br>
if (llvm::sys::path::is_absolute(env) && llvm::sys::fs::exists(env) &&<br>
StringRef(env) != "/") {<br>
Args.append(Args.MakeSeparateArg(<br>
- nullptr, Opts.getOption(options::OPT_isysroot), env));<br>
+ nullptr, Opts.getOption(options::OPT_isysroot), env));<br>
}<br>
}<br>
}<br>
@@ -450,8 +443,7 @@ void Darwin::AddDeploymentTarget(Derived<br>
<br>
if (OSXVersion && iOSVersion) {<br>
getDriver().Diag(diag::err_drv_argument_not_allowed_with)<br>
- << OSXVersion->getAsString(Args)<br>
- << iOSVersion->getAsString(Args);<br>
+ << OSXVersion->getAsString(Args) << iOSVersion->getAsString(Args);<br>
iOSVersion = nullptr;<br>
} else if (!OSXVersion && !iOSVersion) {<br>
// If no deployment target was specified on the command line, check for<br>
@@ -547,18 +539,18 @@ void Darwin::AddDeploymentTarget(Derived<br>
bool HadExtra;<br>
if (Platform == MacOS) {<br>
assert(!iOSVersion && "Unknown target platform!");<br>
- if (!Driver::GetReleaseVersion(OSXVersion->getValue(), Major, Minor,<br>
- Micro, HadExtra) || HadExtra ||<br>
- Major != 10 || Minor >= 100 || Micro >= 100)<br>
+ if (!Driver::GetReleaseVersion(OSXVersion->getValue(), Major, Minor, Micro,<br>
+ HadExtra) ||<br>
+ HadExtra || Major != 10 || Minor >= 100 || Micro >= 100)<br>
getDriver().Diag(diag::err_drv_invalid_version_number)<br>
- << OSXVersion->getAsString(Args);<br>
+ << OSXVersion->getAsString(Args);<br>
} else if (Platform == IPhoneOS) {<br>
assert(iOSVersion && "Unknown target platform!");<br>
- if (!Driver::GetReleaseVersion(iOSVersion->getValue(), Major, Minor,<br>
- Micro, HadExtra) || HadExtra ||<br>
- Major >= 10 || Minor >= 100 || Micro >= 100)<br>
+ if (!Driver::GetReleaseVersion(iOSVersion->getValue(), Major, Minor, Micro,<br>
+ HadExtra) ||<br>
+ HadExtra || Major >= 10 || Minor >= 100 || Micro >= 100)<br>
getDriver().Diag(diag::err_drv_invalid_version_number)<br>
- << iOSVersion->getAsString(Args);<br>
+ << iOSVersion->getAsString(Args);<br>
} else<br>
llvm_unreachable("unknown kind of Darwin platform");<br>
<br>
@@ -658,10 +650,11 @@ DerivedArgList *MachO::TranslateArgs(con<br>
// Skip this argument unless the architecture matches either the toolchain<br>
// triple arch, or the arch being bound.<br>
llvm::Triple::ArchType XarchArch =<br>
- tools::darwin::getArchTypeForMachOArchName(A->getValue(0));<br>
- if (!(XarchArch == getArch() ||<br>
- (BoundArch && XarchArch ==<br>
- tools::darwin::getArchTypeForMachOArchName(BoundArch))))<br>
+ tools::darwin::getArchTypeForMachOArchName(A->getValue(0));<br>
+ if (!(XarchArch == getArch() ||<br>
+ (BoundArch &&<br>
+ XarchArch ==<br>
+ tools::darwin::getArchTypeForMachOArchName(BoundArch))))<br>
continue;<br>
<br>
Arg *OriginalArg = A;<br>
@@ -679,11 +672,11 @@ DerivedArgList *MachO::TranslateArgs(con<br>
// like -O4 are going to slip through.<br>
if (!XarchArg || Index > Prev + 1) {<br>
getDriver().Diag(diag::err_drv_invalid_Xarch_argument_with_args)<br>
- << A->getAsString(Args);<br>
+ << A->getAsString(Args);<br>
continue;<br>
} else if (XarchArg->getOption().hasFlag(options::DriverOption)) {<br>
getDriver().Diag(diag::err_drv_invalid_Xarch_argument_isdriver)<br>
- << A->getAsString(Args);<br>
+ << A->getAsString(Args);<br>
continue;<br>
}<br>
<br>
@@ -708,7 +701,7 @@ DerivedArgList *MachO::TranslateArgs(con<br>
// Sob. These is strictly gcc compatible for the time being. Apple<br>
// gcc translates options twice, which means that self-expanding<br>
// options add duplicates.<br>
- switch ((options::ID) A->getOption().getID()) {<br>
+ switch ((options::ID)A->getOption().getID()) {<br>
default:<br>
DAL->append(A);<br>
break;<br>
@@ -720,20 +713,19 @@ DerivedArgList *MachO::TranslateArgs(con<br>
break;<br>
<br>
case options::OPT_dependency_file:<br>
- DAL->AddSeparateArg(A, Opts.getOption(options::OPT_MF),<br>
- A->getValue());<br>
+ DAL->AddSeparateArg(A, Opts.getOption(options::OPT_MF), A->getValue());<br>
break;<br>
<br>
case options::OPT_gfull:<br>
DAL->AddFlagArg(A, Opts.getOption(options::OPT_g_Flag));<br>
- DAL->AddFlagArg(A,<br>
- Opts.getOption(options::OPT_fno_eliminate_unused_debug_symbols));<br>
+ DAL->AddFlagArg(<br>
+ A, Opts.getOption(options::OPT_fno_eliminate_unused_debug_symbols));<br>
break;<br>
<br>
case options::OPT_gused:<br>
DAL->AddFlagArg(A, Opts.getOption(options::OPT_g_Flag));<br>
- DAL->AddFlagArg(A,<br>
- Opts.getOption(options::OPT_feliminate_unused_debug_symbols));<br>
+ DAL->AddFlagArg(<br>
+ A, Opts.getOption(options::OPT_feliminate_unused_debug_symbols));<br>
break;<br>
<br>
case options::OPT_shared:<br>
@@ -754,8 +746,8 @@ DerivedArgList *MachO::TranslateArgs(con<br>
break;<br>
<br>
case options::OPT_Wno_nonportable_cfstrings:<br>
- DAL->AddFlagArg(A,<br>
- Opts.getOption(options::OPT_mno_warn_nonportable_cfstrings));<br>
+ DAL->AddFlagArg(<br>
+ A, Opts.getOption(options::OPT_mno_warn_nonportable_cfstrings));<br>
break;<br>
<br>
case options::OPT_fpascal_strings:<br>
@@ -871,7 +863,6 @@ void MachO::AddLinkRuntimeLibArgs(const<br>
AddLinkRuntimeLib(Args, CmdArgs, CompilerRT, false, true);<br>
}<br>
<br>
-<br>
DerivedArgList *Darwin::TranslateArgs(const DerivedArgList &Args,<br>
const char *BoundArch) const {<br>
// First get the generic Apple args, before moving onto Darwin-specific ones.<br>
@@ -892,7 +883,7 @@ DerivedArgList *Darwin::TranslateArgs(co<br>
// but we can't check the deployment target in the translation code until<br>
// it is set here.<br>
if (isTargetIOSBased() && !isIPhoneOSVersionLT(6, 0)) {<br>
- for (ArgList::iterator it = DAL->begin(), ie = DAL->end(); it != ie; ) {<br>
+ for (ArgList::iterator it = DAL->begin(), ie = DAL->end(); it != ie;) {<br>
Arg *A = *it;<br>
++it;<br>
if (A->getOption().getID() != options::OPT_mkernel &&<br>
@@ -924,8 +915,7 @@ DerivedArgList *Darwin::TranslateArgs(co<br>
where = "iOS 5.0";<br>
<br>
if (where != StringRef()) {<br>
- getDriver().Diag(clang::diag::err_drv_invalid_libcxx_deployment)<br>
- << where;<br>
+ getDriver().Diag(clang::diag::err_drv_invalid_libcxx_deployment) << where;<br>
}<br>
}<br>
<br>
@@ -948,13 +938,9 @@ bool Darwin::UseSjLjExceptions() const {<br>
getTriple().getArch() == llvm::Triple::thumb);<br>
}<br>
<br>
-bool MachO::isPICDefault() const {<br>
- return true;<br>
-}<br>
+bool MachO::isPICDefault() const { return true; }<br>
<br>
-bool MachO::isPIEDefault() const {<br>
- return false;<br>
-}<br>
+bool MachO::isPIEDefault() const { return false; }<br>
<br>
bool MachO::isPICDefaultForced() const {<br>
return (getArch() == llvm::Triple::x86_64 ||<br>
@@ -1068,12 +1054,10 @@ void Darwin::addStartObjectFileArgs(cons<br>
}<br>
}<br>
<br>
-bool Darwin::SupportsObjCGC() const {<br>
- return isTargetMacOS();<br>
-}<br>
+bool Darwin::SupportsObjCGC() const { return isTargetMacOS(); }<br>
<br>
void Darwin::CheckObjCARC() const {<br>
- if (isTargetIOSBased()|| (isTargetMacOS() && !isMacosxVersionLT(10, 6)))<br>
+ if (isTargetIOSBased() || (isTargetMacOS() && !isMacosxVersionLT(10, 6)))<br>
return;<br>
getDriver().Diag(diag::err_arc_unsupported_on_toolchain);<br>
}<br>
@@ -1099,17 +1083,15 @@ SanitizerMask Darwin::getSupportedSaniti<br>
/// This is the primary means of forming GCCVersion objects.<br>
/*static*/<br>
Generic_GCC::GCCVersion Linux::GCCVersion::Parse(StringRef VersionText) {<br>
- const GCCVersion BadVersion = { VersionText.str(), -1, -1, -1, "", "", "" };<br>
+ const GCCVersion BadVersion = {VersionText.str(), -1, -1, -1, "", "", ""};<br>
std::pair<StringRef, StringRef> First = VersionText.split('.');<br>
std::pair<StringRef, StringRef> Second = First.second.split('.');<br>
<br>
- GCCVersion GoodVersion = { VersionText.str(), -1, -1, -1, "", "", "" };<br>
- if (First.first.getAsInteger(10, GoodVersion.Major) ||<br>
- GoodVersion.Major < 0)<br>
+ GCCVersion GoodVersion = {VersionText.str(), -1, -1, -1, "", "", ""};<br>
+ if (First.first.getAsInteger(10, GoodVersion.Major) || GoodVersion.Major < 0)<br>
return BadVersion;<br>
GoodVersion.MajorStr = First.first.str();<br>
- if (Second.first.getAsInteger(10, GoodVersion.Minor) ||<br>
- GoodVersion.Minor < 0)<br>
+ if (Second.first.getAsInteger(10, GoodVersion.Minor) || GoodVersion.Minor < 0)<br>
return BadVersion;<br>
GoodVersion.MinorStr = Second.first.str();<br>
<br>
@@ -1186,12 +1168,11 @@ static llvm::StringRef getGCCToolchainDi<br>
/// should instead pull the target out of the driver. This is currently<br>
/// necessary because the driver doesn't store the final version of the target<br>
/// triple.<br>
-void<br>
-Generic_GCC::GCCInstallationDetector::init(<br>
+void Generic_GCC::GCCInstallationDetector::init(<br>
const Driver &D, const llvm::Triple &TargetTriple, const ArgList &Args) {<br>
- llvm::Triple BiarchVariantTriple =<br>
- TargetTriple.isArch32Bit() ? TargetTriple.get64BitArchVariant()<br>
- : TargetTriple.get32BitArchVariant();<br>
+ llvm::Triple BiarchVariantTriple = TargetTriple.isArch32Bit()<br>
+ ? TargetTriple.get64BitArchVariant()<br>
+ : TargetTriple.get32BitArchVariant();<br>
// The library directories which may contain GCC installations.<br>
SmallVector<StringRef, 4> CandidateLibDirs, CandidateBiarchLibDirs;<br>
// The compatible GCC triples for this particular architecture.<br>
@@ -1281,91 +1262,82 @@ bool Generic_GCC::GCCInstallationDetecto<br>
// Declare a bunch of static data sets that we'll select between below. These<br>
// are specifically designed to always refer to string literals to avoid any<br>
// lifetime or initialization issues.<br>
- static const char *const AArch64LibDirs[] = { "/lib64", "/lib" };<br>
- static const char *const AArch64Triples[] = { "aarch64-none-linux-gnu",<br>
- "aarch64-linux-gnu",<br>
- "aarch64-linux-android",<br>
- "aarch64-redhat-linux" };<br>
- static const char *const AArch64beLibDirs[] = { "/lib" };<br>
- static const char *const AArch64beTriples[] = { "aarch64_be-none-linux-gnu",<br>
- "aarch64_be-linux-gnu" };<br>
-<br>
- static const char *const ARMLibDirs[] = { "/lib" };<br>
- static const char *const ARMTriples[] = { "arm-linux-gnueabi",<br>
- "arm-linux-androideabi" };<br>
- static const char *const ARMHFTriples[] = { "arm-linux-gnueabihf",<br>
- "armv7hl-redhat-linux-gnueabi" };<br>
- static const char *const ARMebLibDirs[] = { "/lib" };<br>
- static const char *const ARMebTriples[] = { "armeb-linux-gnueabi",<br>
- "armeb-linux-androideabi" };<br>
- static const char *const ARMebHFTriples[] = { "armeb-linux-gnueabihf",<br>
- "armebv7hl-redhat-linux-gnueabi" };<br>
+ static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};<br>
+ static const char *const AArch64Triples[] = {<br>
+ "aarch64-none-linux-gnu", "aarch64-linux-gnu", "aarch64-linux-android",<br>
+ "aarch64-redhat-linux"};<br>
+ static const char *const AArch64beLibDirs[] = {"/lib"};<br>
+ static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu",<br>
+ "aarch64_be-linux-gnu"};<br>
+<br>
+ static const char *const ARMLibDirs[] = {"/lib"};<br>
+ static const char *const ARMTriples[] = {"arm-linux-gnueabi",<br>
+ "arm-linux-androideabi"};<br>
+ static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",<br>
+ "armv7hl-redhat-linux-gnueabi"};<br>
+ static const char *const ARMebLibDirs[] = {"/lib"};<br>
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",<br>
+ "armeb-linux-androideabi"};<br>
+ static const char *const ARMebHFTriples[] = {<br>
+ "armeb-linux-gnueabihf", "armebv7hl-redhat-linux-gnueabi"};<br>
<br>
- static const char *const X86_64LibDirs[] = { "/lib64", "/lib" };<br>
+ static const char *const X86_64LibDirs[] = {"/lib64", "/lib"};<br>
static const char *const X86_64Triples[] = {<br>
- "x86_64-linux-gnu", "x86_64-unknown-linux-gnu", "x86_64-pc-linux-gnu",<br>
- "x86_64-redhat-linux6E", "x86_64-redhat-linux", "x86_64-suse-linux",<br>
- "x86_64-manbo-linux-gnu", "x86_64-linux-gnu", "x86_64-slackware-linux",<br>
- "x86_64-linux-android", "x86_64-unknown-linux"<br>
- };<br>
- static const char *const X32LibDirs[] = { "/libx32" };<br>
- static const char *const X86LibDirs[] = { "/lib32", "/lib" };<br>
+ "x86_64-linux-gnu", "x86_64-unknown-linux-gnu",<br>
+ "x86_64-pc-linux-gnu", "x86_64-redhat-linux6E",<br>
+ "x86_64-redhat-linux", "x86_64-suse-linux",<br>
+ "x86_64-manbo-linux-gnu", "x86_64-linux-gnu",<br>
+ "x86_64-slackware-linux", "x86_64-linux-android",<br>
+ "x86_64-unknown-linux"};<br>
+ static const char *const X32LibDirs[] = {"/libx32"};<br>
+ static const char *const X86LibDirs[] = {"/lib32", "/lib"};<br>
static const char *const X86Triples[] = {<br>
- "i686-linux-gnu", "i686-pc-linux-gnu", "i486-linux-gnu", "i386-linux-gnu",<br>
- "i386-redhat-linux6E", "i686-redhat-linux", "i586-redhat-linux",<br>
- "i386-redhat-linux", "i586-suse-linux", "i486-slackware-linux",<br>
- "i686-montavista-linux", "i686-linux-android", "i586-linux-gnu"<br>
- };<br>
-<br>
- static const char *const MIPSLibDirs[] = { "/lib" };<br>
- static const char *const MIPSTriples[] = { "mips-linux-gnu",<br>
- "mips-mti-linux-gnu",<br>
- "mips-img-linux-gnu" };<br>
- static const char *const MIPSELLibDirs[] = { "/lib" };<br>
- static const char *const MIPSELTriples[] = { "mipsel-linux-gnu",<br>
- "mipsel-linux-android",<br>
- "mips-img-linux-gnu" };<br>
-<br>
- static const char *const MIPS64LibDirs[] = { "/lib64", "/lib" };<br>
- static const char *const MIPS64Triples[] = { "mips64-linux-gnu",<br>
- "mips-mti-linux-gnu",<br>
- "mips-img-linux-gnu",<br>
- "mips64-linux-gnuabi64" };<br>
- static const char *const MIPS64ELLibDirs[] = { "/lib64", "/lib" };<br>
- static const char *const MIPS64ELTriples[] = { "mips64el-linux-gnu",<br>
- "mips-mti-linux-gnu",<br>
- "mips-img-linux-gnu",<br>
- "mips64el-linux-android",<br>
- "mips64el-linux-gnuabi64" };<br>
+ "i686-linux-gnu", "i686-pc-linux-gnu", "i486-linux-gnu",<br>
+ "i386-linux-gnu", "i386-redhat-linux6E", "i686-redhat-linux",<br>
+ "i586-redhat-linux", "i386-redhat-linux", "i586-suse-linux",<br>
+ "i486-slackware-linux", "i686-montavista-linux", "i686-linux-android",<br>
+ "i586-linux-gnu"};<br>
+<br>
+ static const char *const MIPSLibDirs[] = {"/lib"};<br>
+ static const char *const MIPSTriples[] = {<br>
+ "mips-linux-gnu", "mips-mti-linux-gnu", "mips-img-linux-gnu"};<br>
+ static const char *const MIPSELLibDirs[] = {"/lib"};<br>
+ static const char *const MIPSELTriples[] = {<br>
+ "mipsel-linux-gnu", "mipsel-linux-android", "mips-img-linux-gnu"};<br>
+<br>
+ static const char *const MIPS64LibDirs[] = {"/lib64", "/lib"};<br>
+ static const char *const MIPS64Triples[] = {<br>
+ "mips64-linux-gnu", "mips-mti-linux-gnu", "mips-img-linux-gnu",<br>
+ "mips64-linux-gnuabi64"};<br>
+ static const char *const MIPS64ELLibDirs[] = {"/lib64", "/lib"};<br>
+ static const char *const MIPS64ELTriples[] = {<br>
+ "mips64el-linux-gnu", "mips-mti-linux-gnu", "mips-img-linux-gnu",<br>
+ "mips64el-linux-android", "mips64el-linux-gnuabi64"};<br>
<br>
- static const char *const PPCLibDirs[] = { "/lib32", "/lib" };<br>
+ static const char *const PPCLibDirs[] = {"/lib32", "/lib"};<br>
static const char *const PPCTriples[] = {<br>
- "powerpc-linux-gnu", "powerpc-unknown-linux-gnu", "powerpc-linux-gnuspe",<br>
- "powerpc-suse-linux", "powerpc-montavista-linuxspe"<br>
- };<br>
- static const char *const PPC64LibDirs[] = { "/lib64", "/lib" };<br>
- static const char *const PPC64Triples[] = { "powerpc64-linux-gnu",<br>
- "powerpc64-unknown-linux-gnu",<br>
- "powerpc64-suse-linux",<br>
- "ppc64-redhat-linux" };<br>
- static const char *const PPC64LELibDirs[] = { "/lib64", "/lib" };<br>
- static const char *const PPC64LETriples[] = { "powerpc64le-linux-gnu",<br>
- "powerpc64le-unknown-linux-gnu",<br>
- "powerpc64le-suse-linux",<br>
- "ppc64le-redhat-linux" };<br>
-<br>
- static const char *const SPARCv8LibDirs[] = { "/lib32", "/lib" };<br>
- static const char *const SPARCv8Triples[] = { "sparc-linux-gnu",<br>
- "sparcv8-linux-gnu" };<br>
- static const char *const SPARCv9LibDirs[] = { "/lib64", "/lib" };<br>
- static const char *const SPARCv9Triples[] = { "sparc64-linux-gnu",<br>
- "sparcv9-linux-gnu" };<br>
+ "powerpc-linux-gnu", "powerpc-unknown-linux-gnu", "powerpc-linux-gnuspe",<br>
+ "powerpc-suse-linux", "powerpc-montavista-linuxspe"};<br>
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};<br>
+ static const char *const PPC64Triples[] = {<br>
+ "powerpc64-linux-gnu", "powerpc64-unknown-linux-gnu",<br>
+ "powerpc64-suse-linux", "ppc64-redhat-linux"};<br>
+ static const char *const PPC64LELibDirs[] = {"/lib64", "/lib"};<br>
+ static const char *const PPC64LETriples[] = {<br>
+ "powerpc64le-linux-gnu", "powerpc64le-unknown-linux-gnu",<br>
+ "powerpc64le-suse-linux", "ppc64le-redhat-linux"};<br>
+<br>
+ static const char *const SPARCv8LibDirs[] = {"/lib32", "/lib"};<br>
+ static const char *const SPARCv8Triples[] = {"sparc-linux-gnu",<br>
+ "sparcv8-linux-gnu"};<br>
+ static const char *const SPARCv9LibDirs[] = {"/lib64", "/lib"};<br>
+ static const char *const SPARCv9Triples[] = {"sparc64-linux-gnu",<br>
+ "sparcv9-linux-gnu"};<br>
<br>
- static const char *const SystemZLibDirs[] = { "/lib64", "/lib" };<br>
+ static const char *const SystemZLibDirs[] = {"/lib64", "/lib"};<br>
static const char *const SystemZTriples[] = {<br>
- "s390x-linux-gnu", "s390x-unknown-linux-gnu", "s390x-ibm-linux-gnu",<br>
- "s390x-suse-linux", "s390x-redhat-linux"<br>
- };<br>
+ "s390x-linux-gnu", "s390x-unknown-linux-gnu", "s390x-ibm-linux-gnu",<br>
+ "s390x-suse-linux", "s390x-redhat-linux"};<br>
<br>
using std::begin;<br>
using std::end;<br>
@@ -1533,14 +1505,12 @@ static bool isMipsEL(llvm::Triple::ArchT<br>
}<br>
<br>
static bool isMips16(const ArgList &Args) {<br>
- Arg *A = Args.getLastArg(options::OPT_mips16,<br>
- options::OPT_mno_mips16);<br>
+ Arg *A = Args.getLastArg(options::OPT_mips16, options::OPT_mno_mips16);<br>
return A && A->getOption().matches(options::OPT_mips16);<br>
}<br>
<br>
static bool isMicroMips(const ArgList &Args) {<br>
- Arg *A = Args.getLastArg(options::OPT_mmicromips,<br>
- options::OPT_mno_micromips);<br>
+ Arg *A = Args.getLastArg(options::OPT_mmicromips, options::OPT_mno_micromips);<br>
return A && A->getOption().matches(options::OPT_mmicromips);<br>
}<br>
<br>
@@ -1561,8 +1531,7 @@ static Multilib makeMultilib(StringRef c<br>
}<br>
<br>
static bool findMIPSMultilibs(const llvm::Triple &TargetTriple, StringRef Path,<br>
- const ArgList &Args,<br>
- DetectedMultilibs &Result) {<br>
+ const ArgList &Args, DetectedMultilibs &Result) {<br>
// Some MIPS toolchains put libraries and object files compiled<br>
// using different options in to the sub-directoris which names<br>
// reflects the flags used for compilation. For example sysroot<br>
@@ -1594,181 +1563,182 @@ static bool findMIPSMultilibs(const llvm<br>
MultilibSet FSFMipsMultilibs;<br>
{<br>
auto MArchMips32 = makeMultilib("/mips32")<br>
- .flag("+m32").flag("-m64").flag("-mmicromips").flag("+march=mips32");<br>
+ .flag("+m32")<br>
+ .flag("-m64")<br>
+ .flag("-mmicromips")<br>
+ .flag("+march=mips32");<br>
<br>
auto MArchMicroMips = makeMultilib("/micromips")<br>
- .flag("+m32").flag("-m64").flag("+mmicromips");<br>
+ .flag("+m32")<br>
+ .flag("-m64")<br>
+ .flag("+mmicromips");<br>
<br>
auto MArchMips64r2 = makeMultilib("/mips64r2")<br>
- .flag("-m32").flag("+m64").flag("+march=mips64r2");<br>
+ .flag("-m32")<br>
+ .flag("+m64")<br>
+ .flag("+march=mips64r2");<br>
<br>
- auto MArchMips64 = makeMultilib("/mips64")<br>
- .flag("-m32").flag("+m64").flag("-march=mips64r2");<br>
+ auto MArchMips64 = makeMultilib("/mips64").flag("-m32").flag("+m64").flag(<br>
+ "-march=mips64r2");<br>
<br>
auto MArchDefault = makeMultilib("")<br>
- .flag("+m32").flag("-m64").flag("-mmicromips").flag("+march=mips32r2");<br>
-<br>
- auto Mips16 = makeMultilib("/mips16")<br>
- .flag("+mips16");<br>
-<br>
- auto UCLibc = makeMultilib("/uclibc")<br>
- .flag("+muclibc");<br>
-<br>
- auto MAbi64 = makeMultilib("/64")<br>
- .flag("+mabi=n64").flag("-mabi=n32").flag("-m32");<br>
-<br>
- auto BigEndian = makeMultilib("")<br>
- .flag("+EB").flag("-EL");<br>
-<br>
- auto LittleEndian = makeMultilib("/el")<br>
- .flag("+EL").flag("-EB");<br>
-<br>
- auto SoftFloat = makeMultilib("/sof")<br>
- .flag("+msoft-float");<br>
-<br>
- auto Nan2008 = makeMultilib("/nan2008")<br>
- .flag("+mnan=2008");<br>
-<br>
- FSFMipsMultilibs = MultilibSet()<br>
- .Either(MArchMips32, MArchMicroMips,<br>
- MArchMips64r2, MArchMips64, MArchDefault)<br>
- .Maybe(UCLibc)<br>
- .Maybe(Mips16)<br>
- .FilterOut("/mips64/mips16")<br>
- .FilterOut("/mips64r2/mips16")<br>
- .FilterOut("/micromips/mips16")<br>
- .Maybe(MAbi64)<br>
- .FilterOut("/micromips/64")<br>
- .FilterOut("/mips32/64")<br>
- .FilterOut("^/64")<br>
- .FilterOut("/mips16/64")<br>
- .Either(BigEndian, LittleEndian)<br>
- .Maybe(SoftFloat)<br>
- .Maybe(Nan2008)<br>
- .FilterOut(".*sof/nan2008")<br>
- .FilterOut(NonExistent)<br>
- .setIncludeDirsCallback([](<br>
- StringRef InstallDir, StringRef TripleStr, const Multilib &M) {<br>
- std::vector<std::string> Dirs;<br>
- Dirs.push_back((InstallDir + "/include").str());<br>
- std::string SysRootInc = InstallDir.str() + "/../../../../sysroot";<br>
- if (StringRef(M.includeSuffix()).startswith("/uclibc"))<br>
- Dirs.push_back(SysRootInc + "/uclibc/usr/include");<br>
- else<br>
- Dirs.push_back(SysRootInc + "/usr/include");<br>
- return Dirs;<br>
- });<br>
+ .flag("+m32")<br>
+ .flag("-m64")<br>
+ .flag("-mmicromips")<br>
+ .flag("+march=mips32r2");<br>
+<br>
+ auto Mips16 = makeMultilib("/mips16").flag("+mips16");<br>
+<br>
+ auto UCLibc = makeMultilib("/uclibc").flag("+muclibc");<br>
+<br>
+ auto MAbi64 =<br>
+ makeMultilib("/64").flag("+mabi=n64").flag("-mabi=n32").flag("-m32");<br>
+<br>
+ auto BigEndian = makeMultilib("").flag("+EB").flag("-EL");<br>
+<br>
+ auto LittleEndian = makeMultilib("/el").flag("+EL").flag("-EB");<br>
+<br>
+ auto SoftFloat = makeMultilib("/sof").flag("+msoft-float");<br>
+<br>
+ auto Nan2008 = makeMultilib("/nan2008").flag("+mnan=2008");<br>
+<br>
+ FSFMipsMultilibs =<br>
+ MultilibSet()<br>
+ .Either(MArchMips32, MArchMicroMips, MArchMips64r2, MArchMips64,<br>
+ MArchDefault)<br>
+ .Maybe(UCLibc)<br>
+ .Maybe(Mips16)<br>
+ .FilterOut("/mips64/mips16")<br>
+ .FilterOut("/mips64r2/mips16")<br>
+ .FilterOut("/micromips/mips16")<br>
+ .Maybe(MAbi64)<br>
+ .FilterOut("/micromips/64")<br>
+ .FilterOut("/mips32/64")<br>
+ .FilterOut("^/64")<br>
+ .FilterOut("/mips16/64")<br>
+ .Either(BigEndian, LittleEndian)<br>
+ .Maybe(SoftFloat)<br>
+ .Maybe(Nan2008)<br>
+ .FilterOut(".*sof/nan2008")<br>
+ .FilterOut(NonExistent)<br>
+ .setIncludeDirsCallback([](StringRef InstallDir,<br>
+ StringRef TripleStr, const Multilib &M) {<br>
+ std::vector<std::string> Dirs;<br>
+ Dirs.push_back((InstallDir + "/include").str());<br>
+ std::string SysRootInc =<br>
+ InstallDir.str() + "/../../../../sysroot";<br>
+ if (StringRef(M.includeSuffix()).startswith("/uclibc"))<br>
+ Dirs.push_back(SysRootInc + "/uclibc/usr/include");<br>
+ else<br>
+ Dirs.push_back(SysRootInc + "/usr/include");<br>
+ return Dirs;<br>
+ });<br>
}<br>
<br>
// Check for Code Sourcery toolchain multilibs<br>
MultilibSet CSMipsMultilibs;<br>
{<br>
- auto MArchMips16 = makeMultilib("/mips16")<br>
- .flag("+m32").flag("+mips16");<br>
+ auto MArchMips16 = makeMultilib("/mips16").flag("+m32").flag("+mips16");<br>
<br>
- auto MArchMicroMips = makeMultilib("/micromips")<br>
- .flag("+m32").flag("+mmicromips");<br>
+ auto MArchMicroMips =<br>
+ makeMultilib("/micromips").flag("+m32").flag("+mmicromips");<br>
<br>
- auto MArchDefault = makeMultilib("")<br>
- .flag("-mips16").flag("-mmicromips");<br>
+ auto MArchDefault = makeMultilib("").flag("-mips16").flag("-mmicromips");<br>
<br>
- auto UCLibc = makeMultilib("/uclibc")<br>
- .flag("+muclibc");<br>
+ auto UCLibc = makeMultilib("/uclibc").flag("+muclibc");<br>
<br>
- auto SoftFloat = makeMultilib("/soft-float")<br>
- .flag("+msoft-float");<br>
+ auto SoftFloat = makeMultilib("/soft-float").flag("+msoft-float");<br>
<br>
- auto Nan2008 = makeMultilib("/nan2008")<br>
- .flag("+mnan=2008");<br>
+ auto Nan2008 = makeMultilib("/nan2008").flag("+mnan=2008");<br>
<br>
- auto DefaultFloat = makeMultilib("")<br>
- .flag("-msoft-float").flag("-mnan=2008");<br>
+ auto DefaultFloat =<br>
+ makeMultilib("").flag("-msoft-float").flag("-mnan=2008");<br>
<br>
- auto BigEndian = makeMultilib("")<br>
- .flag("+EB").flag("-EL");<br>
+ auto BigEndian = makeMultilib("").flag("+EB").flag("-EL");<br>
<br>
- auto LittleEndian = makeMultilib("/el")<br>
- .flag("+EL").flag("-EB");<br>
+ auto LittleEndian = makeMultilib("/el").flag("+EL").flag("-EB");<br>
<br>
// Note that this one's osSuffix is ""<br>
auto MAbi64 = makeMultilib("")<br>
- .gccSuffix("/64")<br>
- .includeSuffix("/64")<br>
- .flag("+mabi=n64").flag("-mabi=n32").flag("-m32");<br>
-<br>
- CSMipsMultilibs = MultilibSet()<br>
- .Either(MArchMips16, MArchMicroMips, MArchDefault)<br>
- .Maybe(UCLibc)<br>
- .Either(SoftFloat, Nan2008, DefaultFloat)<br>
- .FilterOut("/micromips/nan2008")<br>
- .FilterOut("/mips16/nan2008")<br>
- .Either(BigEndian, LittleEndian)<br>
- .Maybe(MAbi64)<br>
- .FilterOut("/mips16.*/64")<br>
- .FilterOut("/micromips.*/64")<br>
- .FilterOut(NonExistent)<br>
- .setIncludeDirsCallback([](<br>
- StringRef InstallDir, StringRef TripleStr, const Multilib &M) {<br>
- std::vector<std::string> Dirs;<br>
- Dirs.push_back((InstallDir + "/include").str());<br>
- std::string SysRootInc =<br>
- InstallDir.str() + "/../../../../" + TripleStr.str();<br>
- if (StringRef(M.includeSuffix()).startswith("/uclibc"))<br>
- Dirs.push_back(SysRootInc + "/libc/uclibc/usr/include");<br>
- else<br>
- Dirs.push_back(SysRootInc + "/libc/usr/include");<br>
- return Dirs;<br>
- });<br>
- }<br>
-<br>
- MultilibSet AndroidMipsMultilibs = MultilibSet()<br>
- .Maybe(Multilib("/mips-r2").flag("+march=mips32r2"))<br>
- .Maybe(Multilib("/mips-r6").flag("+march=mips32r6"))<br>
- .FilterOut(NonExistent);<br>
+ .gccSuffix("/64")<br>
+ .includeSuffix("/64")<br>
+ .flag("+mabi=n64")<br>
+ .flag("-mabi=n32")<br>
+ .flag("-m32");<br>
+<br>
+ CSMipsMultilibs =<br>
+ MultilibSet()<br>
+ .Either(MArchMips16, MArchMicroMips, MArchDefault)<br>
+ .Maybe(UCLibc)<br>
+ .Either(SoftFloat, Nan2008, DefaultFloat)<br>
+ .FilterOut("/micromips/nan2008")<br>
+ .FilterOut("/mips16/nan2008")<br>
+ .Either(BigEndian, LittleEndian)<br>
+ .Maybe(MAbi64)<br>
+ .FilterOut("/mips16.*/64")<br>
+ .FilterOut("/micromips.*/64")<br>
+ .FilterOut(NonExistent)<br>
+ .setIncludeDirsCallback([](StringRef InstallDir,<br>
+ StringRef TripleStr, const Multilib &M) {<br>
+ std::vector<std::string> Dirs;<br>
+ Dirs.push_back((InstallDir + "/include").str());<br>
+ std::string SysRootInc =<br>
+ InstallDir.str() + "/../../../../" + TripleStr.str();<br>
+ if (StringRef(M.includeSuffix()).startswith("/uclibc"))<br>
+ Dirs.push_back(SysRootInc + "/libc/uclibc/usr/include");<br>
+ else<br>
+ Dirs.push_back(SysRootInc + "/libc/usr/include");<br>
+ return Dirs;<br>
+ });<br>
+ }<br>
+<br>
+ MultilibSet AndroidMipsMultilibs =<br>
+ MultilibSet()<br>
+ .Maybe(Multilib("/mips-r2").flag("+march=mips32r2"))<br>
+ .Maybe(Multilib("/mips-r6").flag("+march=mips32r6"))<br>
+ .FilterOut(NonExistent);<br>
<br>
MultilibSet DebianMipsMultilibs;<br>
{<br>
- Multilib MAbiN32 = Multilib()<br>
- .gccSuffix("/n32")<br>
- .includeSuffix("/n32")<br>
- .flag("+mabi=n32");<br>
+ Multilib MAbiN32 =<br>
+ Multilib().gccSuffix("/n32").includeSuffix("/n32").flag("+mabi=n32");<br>
<br>
Multilib M64 = Multilib()<br>
- .gccSuffix("/64")<br>
- .includeSuffix("/64")<br>
- .flag("+m64").flag("-m32").flag("-mabi=n32");<br>
-<br>
- Multilib M32 = Multilib()<br>
- .flag("-m64").flag("+m32").flag("-mabi=n32");<br>
-<br>
- DebianMipsMultilibs = MultilibSet()<br>
- .Either(M32, M64, MAbiN32)<br>
- .FilterOut(NonExistent);<br>
+ .gccSuffix("/64")<br>
+ .includeSuffix("/64")<br>
+ .flag("+m64")<br>
+ .flag("-m32")<br>
+ .flag("-mabi=n32");<br>
+<br>
+ Multilib M32 = Multilib().flag("-m64").flag("+m32").flag("-mabi=n32");<br>
+<br>
+ DebianMipsMultilibs =<br>
+ MultilibSet().Either(M32, M64, MAbiN32).FilterOut(NonExistent);<br>
}<br>
<br>
MultilibSet ImgMultilibs;<br>
{<br>
- auto Mips64r6 = makeMultilib("/mips64r6")<br>
- .flag("+m64").flag("-m32");<br>
+ auto Mips64r6 = makeMultilib("/mips64r6").flag("+m64").flag("-m32");<br>
<br>
- auto LittleEndian = makeMultilib("/el")<br>
- .flag("+EL").flag("-EB");<br>
+ auto LittleEndian = makeMultilib("/el").flag("+EL").flag("-EB");<br>
<br>
- auto MAbi64 = makeMultilib("/64")<br>
- .flag("+mabi=n64").flag("-mabi=n32").flag("-m32");<br>
+ auto MAbi64 =<br>
+ makeMultilib("/64").flag("+mabi=n64").flag("-mabi=n32").flag("-m32");<br>
<br>
- ImgMultilibs = MultilibSet()<br>
- .Maybe(Mips64r6)<br>
- .Maybe(MAbi64)<br>
- .Maybe(LittleEndian)<br>
- .FilterOut(NonExistent)<br>
- .setIncludeDirsCallback([](<br>
- StringRef InstallDir, StringRef TripleStr, const Multilib &M) {<br>
- std::vector<std::string> Dirs;<br>
- Dirs.push_back((InstallDir + "/include").str());<br>
- Dirs.push_back((InstallDir + "/../../../../sysroot/usr/include").str());<br>
- return Dirs;<br>
- });<br>
+ ImgMultilibs =<br>
+ MultilibSet()<br>
+ .Maybe(Mips64r6)<br>
+ .Maybe(MAbi64)<br>
+ .Maybe(LittleEndian)<br>
+ .FilterOut(NonExistent)<br>
+ .setIncludeDirsCallback([](StringRef InstallDir,<br>
+ StringRef TripleStr, const Multilib &M) {<br>
+ std::vector<std::string> Dirs;<br>
+ Dirs.push_back((InstallDir + "/include").str());<br>
+ Dirs.push_back(<br>
+ (InstallDir + "/../../../../sysroot/usr/include").str());<br>
+ return Dirs;<br>
+ });<br>
}<br>
<br>
StringRef CPUName;<br>
@@ -1823,8 +1793,8 @@ static bool findMIPSMultilibs(const llvm<br>
<br>
// Sort candidates. Toolchain that best meets the directories goes first.<br>
// Then select the first toolchains matches command line flags.<br>
- MultilibSet *candidates[] = { &DebianMipsMultilibs, &FSFMipsMultilibs,<br>
- &CSMipsMultilibs };<br>
+ MultilibSet *candidates[] = {&DebianMipsMultilibs, &FSFMipsMultilibs,<br>
+ &CSMipsMultilibs};<br>
std::sort(<br>
std::begin(candidates), std::end(candidates),<br>
[](MultilibSet *a, MultilibSet *b) { return a->size() > b->size(); });<br>
@@ -1866,17 +1836,23 @@ static bool findBiarchMultilibs(const ll<br>
<br>
Multilib Default;<br>
Multilib Alt64 = Multilib()<br>
- .gccSuffix("/64")<br>
- .includeSuffix("/64")<br>
- .flag("-m32").flag("+m64").flag("-mx32");<br>
+ .gccSuffix("/64")<br>
+ .includeSuffix("/64")<br>
+ .flag("-m32")<br>
+ .flag("+m64")<br>
+ .flag("-mx32");<br>
Multilib Alt32 = Multilib()<br>
- .gccSuffix("/32")<br>
- .includeSuffix("/32")<br>
- .flag("+m32").flag("-m64").flag("-mx32");<br>
+ .gccSuffix("/32")<br>
+ .includeSuffix("/32")<br>
+ .flag("+m32")<br>
+ .flag("-m64")<br>
+ .flag("-mx32");<br>
Multilib Altx32 = Multilib()<br>
- .gccSuffix("/x32")<br>
- .includeSuffix("/x32")<br>
- .flag("-m32").flag("-m64").flag("+mx32");<br>
+ .gccSuffix("/x32")<br>
+ .includeSuffix("/x32")<br>
+ .flag("-m32")<br>
+ .flag("-m64")<br>
+ .flag("+mx32");<br>
<br>
FilterNonExistent NonExistent(Path);<br>
<br>
@@ -1923,8 +1899,7 @@ static bool findBiarchMultilibs(const ll<br>
if (!Result.Multilibs.select(Flags, Result.SelectedMultilib))<br>
return false;<br>
<br>
- if (Result.SelectedMultilib == Alt64 ||<br>
- Result.SelectedMultilib == Alt32 ||<br>
+ if (Result.SelectedMultilib == Alt64 || Result.SelectedMultilib == Alt32 ||<br>
Result.SelectedMultilib == Altx32)<br>
Result.BiarchSibling = Default;<br>
<br>
@@ -1940,27 +1915,26 @@ void Generic_GCC::GCCInstallationDetecto<br>
// check for. We also record what is necessary to walk from each back<br>
// up to the lib directory.<br>
const std::string LibSuffixes[] = {<br>
- "/gcc/" + CandidateTriple.str(),<br>
- // Debian puts cross-compilers in gcc-cross<br>
- "/gcc-cross/" + CandidateTriple.str(),<br>
- "/" + CandidateTriple.str() + "/gcc/" + CandidateTriple.str(),<br>
-<br>
- // The Freescale PPC SDK has the gcc libraries in<br>
- // <sysroot>/usr/lib/<triple>/x.y.z so have a look there as well.<br>
- "/" + CandidateTriple.str(),<br>
-<br>
- // Ubuntu has a strange mis-matched pair of triples that this happens to<br>
- // match.<br>
- // FIXME: It may be worthwhile to generalize this and look for a second<br>
- // triple.<br>
- "/i386-linux-gnu/gcc/" + CandidateTriple.str()<br>
- };<br>
+ "/gcc/" + CandidateTriple.str(),<br>
+ // Debian puts cross-compilers in gcc-cross<br>
+ "/gcc-cross/" + CandidateTriple.str(),<br>
+ "/" + CandidateTriple.str() + "/gcc/" + CandidateTriple.str(),<br>
+<br>
+ // The Freescale PPC SDK has the gcc libraries in<br>
+ // <sysroot>/usr/lib/<triple>/x.y.z so have a look there as well.<br>
+ "/" + CandidateTriple.str(),<br>
+<br>
+ // Ubuntu has a strange mis-matched pair of triples that this happens to<br>
+ // match.<br>
+ // FIXME: It may be worthwhile to generalize this and look for a second<br>
+ // triple.<br>
+ "/i386-linux-gnu/gcc/" + CandidateTriple.str()};<br>
const std::string InstallSuffixes[] = {<br>
- "/../../..", // gcc/<br>
- "/../../..", // gcc-cross/<br>
- "/../../../..", // <triple>/gcc/<br>
- "/../..", // <triple>/<br>
- "/../../../.." // i386-linux-gnu/gcc/<triple>/<br>
+ "/../../..", // gcc/<br>
+ "/../../..", // gcc-cross/<br>
+ "/../../../..", // <triple>/gcc/<br>
+ "/../..", // <triple>/<br>
+ "/../../../.." // i386-linux-gnu/gcc/<triple>/<br>
};<br>
// Only look at the final, weird Ubuntu suffix for i386-linux-gnu.<br>
const unsigned NumLibSuffixes =<br>
@@ -2007,16 +1981,15 @@ void Generic_GCC::GCCInstallationDetecto<br>
}<br>
}<br>
<br>
-Generic_GCC::Generic_GCC(const Driver &D, const llvm::Triple& Triple,<br>
+Generic_GCC::Generic_GCC(const Driver &D, const llvm::Triple &Triple,<br>
const ArgList &Args)<br>
- : ToolChain(D, Triple, Args), GCCInstallation() {<br>
+ : ToolChain(D, Triple, Args), GCCInstallation() {<br>
getProgramPaths().push_back(getDriver().getInstalledDir());<br>
if (getDriver().getInstalledDir() != getDriver().Dir)<br>
getProgramPaths().push_back(getDriver().Dir);<br>
}<br>
<br>
-Generic_GCC::~Generic_GCC() {<br>
-}<br>
+Generic_GCC::~Generic_GCC() {}<br>
<br>
Tool *Generic_GCC::getTool(Action::ActionClass AC) const {<br>
switch (AC) {<br>
@@ -2048,17 +2021,11 @@ bool Generic_GCC::IsUnwindTablesDefault(<br>
return getArch() == llvm::Triple::x86_64;<br>
}<br>
<br>
-bool Generic_GCC::isPICDefault() const {<br>
- return false;<br>
-}<br>
+bool Generic_GCC::isPICDefault() const { return false; }<br>
<br>
-bool Generic_GCC::isPIEDefault() const {<br>
- return false;<br>
-}<br>
+bool Generic_GCC::isPIEDefault() const { return false; }<br>
<br>
-bool Generic_GCC::isPICDefaultForced() const {<br>
- return false;<br>
-}<br>
+bool Generic_GCC::isPICDefaultForced() const { return false; }<br>
<br>
bool Generic_GCC::IsIntegratedAssemblerDefault() const {<br>
switch (getTriple().getArch()) {<br>
@@ -2097,8 +2064,7 @@ void Generic_ELF::addClangTargetOptions(<br>
getTriple().getOS() == llvm::Triple::NaCl;<br>
<br>
if (DriverArgs.hasFlag(options::OPT_fuse_init_array,<br>
- options::OPT_fno_use_init_array,<br>
- UseInitArrayDefault))<br>
+ options::OPT_fno_use_init_array, UseInitArrayDefault))<br>
CC1Args.push_back("-fuse-init-array");<br>
}<br>
<br>
@@ -2124,18 +2090,15 @@ std::string Hexagon_TC::GetGnuDir(const<br>
return InstallRelDir;<br>
}<br>
<br>
-const char *Hexagon_TC::GetSmallDataThreshold(const ArgList &Args)<br>
-{<br>
+const char *Hexagon_TC::GetSmallDataThreshold(const ArgList &Args) {<br>
Arg *A;<br>
<br>
- A = Args.getLastArg(options::OPT_G,<br>
- options::OPT_G_EQ,<br>
+ A = Args.getLastArg(options::OPT_G, options::OPT_G_EQ,<br>
options::OPT_msmall_data_threshold_EQ);<br>
if (A)<br>
return A->getValue();<br>
<br>
- A = Args.getLastArg(options::OPT_shared,<br>
- options::OPT_fpic,<br>
+ A = Args.getLastArg(options::OPT_shared, options::OPT_fpic,<br>
options::OPT_fPIC);<br>
if (A)<br>
return "0";<br>
@@ -2143,18 +2106,14 @@ const char *Hexagon_TC::GetSmallDataThre<br>
return 0;<br>
}<br>
<br>
-bool Hexagon_TC::UsesG0(const char* smallDataThreshold)<br>
-{<br>
+bool Hexagon_TC::UsesG0(const char *smallDataThreshold) {<br>
return smallDataThreshold && smallDataThreshold[0] == '0';<br>
}<br>
<br>
-static void GetHexagonLibraryPaths(<br>
- const ArgList &Args,<br>
- const std::string &Ver,<br>
- const std::string &MarchString,<br>
- const std::string &InstalledDir,<br>
- ToolChain::path_list *LibPaths)<br>
-{<br>
+static void GetHexagonLibraryPaths(const ArgList &Args, const std::string &Ver,<br>
+ const std::string &MarchString,<br>
+ const std::string &InstalledDir,<br>
+ ToolChain::path_list *LibPaths) {<br>
bool buildingLib = Args.hasArg(options::OPT_shared);<br>
<br>
//----------------------------------------------------------------------------<br>
@@ -2196,7 +2155,7 @@ static void GetHexagonLibraryPaths(<br>
<br>
Hexagon_TC::Hexagon_TC(const Driver &D, const llvm::Triple &Triple,<br>
const ArgList &Args)<br>
- : Linux(D, Triple, Args) {<br>
+ : Linux(D, Triple, Args) {<br>
const std::string InstalledDir(getDriver().getInstalledDir());<br>
const std::string GnuDir = Hexagon_TC::GetGnuDir(InstalledDir, Args);<br>
<br>
@@ -2209,7 +2168,7 @@ Hexagon_TC::Hexagon_TC(const Driver &D,<br>
// Determine version of GCC libraries and headers to use.<br>
const std::string HexagonDir(GnuDir + "/lib/gcc/hexagon");<br>
std::error_code ec;<br>
- GCCVersion MaxVersion= GCCVersion::Parse("0.0.0");<br>
+ GCCVersion MaxVersion = GCCVersion::Parse("0.0.0");<br>
for (llvm::sys::fs::directory_iterator di(HexagonDir, ec), de;<br>
!ec && di != de; di = di.increment(ec)) {<br>
GCCVersion cv = GCCVersion::Parse(llvm::sys::path::filename(di->path()));<br>
@@ -2218,19 +2177,15 @@ Hexagon_TC::Hexagon_TC(const Driver &D,<br>
}<br>
GCCLibAndIncVersion = MaxVersion;<br>
<br>
- ToolChain::path_list *LibPaths= &getFilePaths();<br>
+ ToolChain::path_list *LibPaths = &getFilePaths();<br>
<br>
// Remove paths added by Linux toolchain. Currently Hexagon_TC really targets<br>
// 'elf' OS type, so the Linux paths are not appropriate. When we actually<br>
// support 'linux' we'll need to fix this up<br>
LibPaths->clear();<br>
<br>
- GetHexagonLibraryPaths(<br>
- Args,<br>
- GetGCCLibAndIncVersion(),<br>
- GetTargetCPU(Args),<br>
- InstalledDir,<br>
- LibPaths);<br>
+ GetHexagonLibraryPaths(Args, GetGCCLibAndIncVersion(), GetTargetCPU(Args),<br>
+ InstalledDir, LibPaths);<br>
}<br>
<br>
Hexagon_TC::~Hexagon_TC() {}<br>
@@ -2284,8 +2239,7 @@ Hexagon_TC::GetCXXStdlibType(const ArgLi<br>
<br>
StringRef Value = A->getValue();<br>
if (Value != "libstdc++") {<br>
- getDriver().Diag(diag::err_drv_invalid_stdlib_name)<br>
- << A->getAsString(Args);<br>
+ getDriver().Diag(diag::err_drv_invalid_stdlib_name) << A->getAsString(Args);<br>
}<br>
<br>
return ToolChain::CST_Libstdcxx;<br>
@@ -2314,8 +2268,7 @@ static int getHexagonVersion(const ArgLi<br>
return 4;<br>
}<br>
<br>
-StringRef Hexagon_TC::GetTargetCPU(const ArgList &Args)<br>
-{<br>
+StringRef Hexagon_TC::GetTargetCPU(const ArgList &Args) {<br>
int V = getHexagonVersion(Args);<br>
// FIXME: We don't support versions < 4. We should error on them.<br>
switch (V) {<br>
@@ -2338,13 +2291,13 @@ StringRef Hexagon_TC::GetTargetCPU(const<br>
/// NaCl Toolchain<br>
NaCl_TC::NaCl_TC(const Driver &D, const llvm::Triple &Triple,<br>
const ArgList &Args)<br>
- : Generic_ELF(D, Triple, Args) {<br>
+ : Generic_ELF(D, Triple, Args) {<br>
<br>
// Remove paths added by Generic_GCC. NaCl Toolchain cannot use the<br>
// default paths, and must instead only use the paths provided<br>
// with this toolchain based on architecture.<br>
- path_list& file_paths = getFilePaths();<br>
- path_list& prog_paths = getProgramPaths();<br>
+ path_list &file_paths = getFilePaths();<br>
+ path_list &prog_paths = getProgramPaths();<br>
<br>
file_paths.clear();<br>
prog_paths.clear();<br>
@@ -2358,30 +2311,30 @@ NaCl_TC::NaCl_TC(const Driver &D, const<br>
// Path for toolchain libraries (libgcc.a, ...)<br>
std::string ToolPath(getDriver().ResourceDir + "/lib/");<br>
<br>
- switch(Triple.getArch()) {<br>
- case llvm::Triple::x86: {<br>
- file_paths.push_back(FilePath + "x86_64-nacl/lib32");<br>
- file_paths.push_back(FilePath + "x86_64-nacl/usr/lib32");<br>
- prog_paths.push_back(ProgPath + "x86_64-nacl/bin");<br>
- file_paths.push_back(ToolPath + "i686-nacl");<br>
- break;<br>
- }<br>
- case llvm::Triple::x86_64: {<br>
- file_paths.push_back(FilePath + "x86_64-nacl/lib");<br>
- file_paths.push_back(FilePath + "x86_64-nacl/usr/lib");<br>
- prog_paths.push_back(ProgPath + "x86_64-nacl/bin");<br>
- file_paths.push_back(ToolPath + "x86_64-nacl");<br>
- break;<br>
- }<br>
- case llvm::Triple::arm: {<br>
- file_paths.push_back(FilePath + "arm-nacl/lib");<br>
- file_paths.push_back(FilePath + "arm-nacl/usr/lib");<br>
- prog_paths.push_back(ProgPath + "arm-nacl/bin");<br>
- file_paths.push_back(ToolPath + "arm-nacl");<br>
- break;<br>
- }<br>
- default:<br>
- break;<br>
+ switch (Triple.getArch()) {<br>
+ case llvm::Triple::x86: {<br>
+ file_paths.push_back(FilePath + "x86_64-nacl/lib32");<br>
+ file_paths.push_back(FilePath + "x86_64-nacl/usr/lib32");<br>
+ prog_paths.push_back(ProgPath + "x86_64-nacl/bin");<br>
+ file_paths.push_back(ToolPath + "i686-nacl");<br>
+ break;<br>
+ }<br>
+ case llvm::Triple::x86_64: {<br>
+ file_paths.push_back(FilePath + "x86_64-nacl/lib");<br>
+ file_paths.push_back(FilePath + "x86_64-nacl/usr/lib");<br>
+ prog_paths.push_back(ProgPath + "x86_64-nacl/bin");<br>
+ file_paths.push_back(ToolPath + "x86_64-nacl");<br>
+ break;<br>
+ }<br>
+ case llvm::Triple::arm: {<br>
+ file_paths.push_back(FilePath + "arm-nacl/lib");<br>
+ file_paths.push_back(FilePath + "arm-nacl/usr/lib");<br>
+ prog_paths.push_back(ProgPath + "arm-nacl/bin");<br>
+ file_paths.push_back(ToolPath + "arm-nacl");<br>
+ break;<br>
+ }<br>
+ default:<br>
+ break;<br>
}<br>
<br>
// Use provided linker, not system linker<br>
@@ -2469,15 +2422,14 @@ ToolChain::CXXStdlibType NaCl_TC::GetCXX<br>
StringRef Value = A->getValue();<br>
if (Value == "libc++")<br>
return ToolChain::CST_Libcxx;<br>
- getDriver().Diag(diag::err_drv_invalid_stdlib_name)<br>
- << A->getAsString(Args);<br>
+ getDriver().Diag(diag::err_drv_invalid_stdlib_name) << A->getAsString(Args);<br>
}<br>
<br>
return ToolChain::CST_Libcxx;<br>
}<br>
<br>
-std::string NaCl_TC::ComputeEffectiveClangTriple(<br>
- const ArgList &Args, types::ID InputType) const {<br>
+std::string NaCl_TC::ComputeEffectiveClangTriple(const ArgList &Args,<br>
+ types::ID InputType) const {<br>
llvm::Triple TheTriple(ComputeLLVMTriple(Args, InputType));<br>
if (TheTriple.getArch() == llvm::Triple::arm &&<br>
TheTriple.getEnvironment() == llvm::Triple::UnknownEnvironment)<br>
@@ -2500,9 +2452,9 @@ Tool *NaCl_TC::buildAssembler() const {<br>
/// all subcommands. See <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__tce.cs.tut.fi&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=HQQNmbImUf4F-mcwxbN9TPWVeRmDPUPU4dZwwCB61Pk&s=EjNLSh4ihxKdNFJ9MiMrrLjixf3bJ1sg-VGgzMMtJ-A&e=" rel="noreferrer" target="_blank">http://tce.cs.tut.fi</a> for our peculiar target.<br>
/// Currently does not support anything else but compilation.<br>
<br>
-TCEToolChain::TCEToolChain(const Driver &D, const llvm::Triple& Triple,<br>
+TCEToolChain::TCEToolChain(const Driver &D, const llvm::Triple &Triple,<br>
const ArgList &Args)<br>
- : ToolChain(D, Triple, Args) {<br>
+ : ToolChain(D, Triple, Args) {<br>
// Path mangling to find libexec<br>
std::string Path(getDriver().Dir);<br>
<br>
@@ -2510,24 +2462,15 @@ TCEToolChain::TCEToolChain(const Driver<br>
getProgramPaths().push_back(Path);<br>
}<br>
<br>
-TCEToolChain::~TCEToolChain() {<br>
-}<br>
+TCEToolChain::~TCEToolChain() {}<br>
<br>
-bool TCEToolChain::IsMathErrnoDefault() const {<br>
- return true;<br>
-}<br>
+bool TCEToolChain::IsMathErrnoDefault() const { return true; }<br>
<br>
-bool TCEToolChain::isPICDefault() const {<br>
- return false;<br>
-}<br>
+bool TCEToolChain::isPICDefault() const { return false; }<br>
<br>
-bool TCEToolChain::isPIEDefault() const {<br>
- return false;<br>
-}<br>
+bool TCEToolChain::isPIEDefault() const { return false; }<br>
<br>
-bool TCEToolChain::isPICDefaultForced() const {<br>
- return false;<br>
-}<br>
+bool TCEToolChain::isPICDefaultForced() const { return false; }<br>
<br>
// CloudABI - CloudABI tool chain which can call ld(1) directly.<br>
<br>
@@ -2563,8 +2506,9 @@ Tool *CloudABI::buildLinker() const {<br>
<br>
/// OpenBSD - OpenBSD tool chain which can call as(1) and ld(1) directly.<br>
<br>
-OpenBSD::OpenBSD(const Driver &D, const llvm::Triple& Triple, const ArgList &Args)<br>
- : Generic_ELF(D, Triple, Args) {<br>
+OpenBSD::OpenBSD(const Driver &D, const llvm::Triple &Triple,<br>
+ const ArgList &Args)<br>
+ : Generic_ELF(D, Triple, Args) {<br>
getFilePaths().push_back(getDriver().Dir + "/../lib");<br>
getFilePaths().push_back("/usr/lib");<br>
}<br>
@@ -2577,8 +2521,8 @@ Tool *OpenBSD::buildLinker() const { ret<br>
<br>
/// Bitrig - Bitrig tool chain which can call as(1) and ld(1) directly.<br>
<br>
-Bitrig::Bitrig(const Driver &D, const llvm::Triple& Triple, const ArgList &Args)<br>
- : Generic_ELF(D, Triple, Args) {<br>
+Bitrig::Bitrig(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)<br>
+ : Generic_ELF(D, Triple, Args) {<br>
getFilePaths().push_back(getDriver().Dir + "/../lib");<br>
getFilePaths().push_back("/usr/lib");<br>
}<br>
@@ -2597,8 +2541,7 @@ ToolChain::CXXStdlibType Bitrig::GetCXXS<br>
if (Value == "libc++")<br>
return ToolChain::CST_Libcxx;<br>
<br>
- getDriver().Diag(diag::err_drv_invalid_stdlib_name)<br>
- << A->getAsString(Args);<br>
+ getDriver().Diag(diag::err_drv_invalid_stdlib_name) << A->getAsString(Args);<br>
}<br>
return ToolChain::CST_Libcxx;<br>
}<br>
@@ -2624,11 +2567,11 @@ void Bitrig::AddClangCXXStdlibIncludeArg<br>
if (Triple.startswith("amd64"))<br>
addSystemInclude(DriverArgs, CC1Args,<br>
getDriver().SysRoot + "/usr/include/c++/stdc++/x86_64" +<br>
- Triple.substr(5));<br>
+ Triple.substr(5));<br>
else<br>
- addSystemInclude(DriverArgs, CC1Args,<br>
- getDriver().SysRoot + "/usr/include/c++/stdc++/" +<br>
- Triple);<br>
+ addSystemInclude(DriverArgs, CC1Args, getDriver().SysRoot +<br>
+ "/usr/include/c++/stdc++/" +<br>
+ Triple);<br>
break;<br>
}<br>
}<br>
@@ -2649,8 +2592,9 @@ void Bitrig::AddCXXStdlibLibArgs(const A<br>
<br>
/// FreeBSD - FreeBSD tool chain which can call as(1) and ld(1) directly.<br>
<br>
-FreeBSD::FreeBSD(const Driver &D, const llvm::Triple& Triple, const ArgList &Args)<br>
- : Generic_ELF(D, Triple, Args) {<br>
+FreeBSD::FreeBSD(const Driver &D, const llvm::Triple &Triple,<br>
+ const ArgList &Args)<br>
+ : Generic_ELF(D, Triple, Args) {<br>
<br>
// When targeting 32-bit platforms, look for '/usr/lib32/crt1.o' and fall<br>
// back to '/usr/lib' if it doesn't exist.<br>
@@ -2662,8 +2606,7 @@ FreeBSD::FreeBSD(const Driver &D, const<br>
getFilePaths().push_back(getDriver().SysRoot + "/usr/lib");<br>
}<br>
<br>
-ToolChain::CXXStdlibType<br>
-FreeBSD::GetCXXStdlibType(const ArgList &Args) const {<br>
+ToolChain::CXXStdlibType FreeBSD::GetCXXStdlibType(const ArgList &Args) const {<br>
if (Arg *A = Args.getLastArg(options::OPT_stdlib_EQ)) {<br>
StringRef Value = A->getValue();<br>
if (Value == "libstdc++")<br>
@@ -2671,10 +2614,9 @@ FreeBSD::GetCXXStdlibType(const ArgList<br>
if (Value == "libc++")<br>
return ToolChain::CST_Libcxx;<br>
<br>
- getDriver().Diag(diag::err_drv_invalid_stdlib_name)<br>
- << A->getAsString(Args);<br>
+ getDriver().Diag(diag::err_drv_invalid_stdlib_name) << A->getAsString(Args);<br>
}<br>
- if (getTriple().getOSMajorVersion() >= 10)<br>
+ if (getTriple().getOSMajorVersion() >= 10)<br>
return ToolChain::CST_Libcxx;<br>
return ToolChain::CST_Libstdcxx;<br>
}<br>
@@ -2719,13 +2661,9 @@ bool FreeBSD::UseSjLjExceptions() const<br>
}<br>
}<br>
<br>
-bool FreeBSD::HasNativeLLVMSupport() const {<br>
- return true;<br>
-}<br>
+bool FreeBSD::HasNativeLLVMSupport() const { return true; }<br>
<br>
-bool FreeBSD::isPIEDefault() const {<br>
- return getSanitizerArgs().requiresPIE();<br>
-}<br>
+bool FreeBSD::isPIEDefault() const { return getSanitizerArgs().requiresPIE(); }<br>
<br>
SanitizerMask FreeBSD::getSupportedSanitizers() const {<br>
const bool IsX86 = getTriple().getArch() == llvm::Triple::x86;<br>
@@ -2747,8 +2685,8 @@ SanitizerMask FreeBSD::getSupportedSanit<br>
<br>
/// NetBSD - NetBSD tool chain which can call as(1) and ld(1) directly.<br>
<br>
-NetBSD::NetBSD(const Driver &D, const llvm::Triple& Triple, const ArgList &Args)<br>
- : Generic_ELF(D, Triple, Args) {<br>
+NetBSD::NetBSD(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)<br>
+ : Generic_ELF(D, Triple, Args) {<br>
<br>
if (getDriver().UseStdLib) {<br>
// When targeting a 32-bit platform, try the special directory used on<br>
@@ -2813,8 +2751,7 @@ ToolChain::CXXStdlibType NetBSD::GetCXXS<br>
if (Value == "libc++")<br>
return ToolChain::CST_Libcxx;<br>
<br>
- getDriver().Diag(diag::err_drv_invalid_stdlib_name)<br>
- << A->getAsString(Args);<br>
+ getDriver().Diag(diag::err_drv_invalid_stdlib_name) << A->getAsString(Args);<br>
}<br>
<br>
unsigned Major, Minor, Micro;<br>
@@ -2861,8 +2798,8 @@ void NetBSD::AddClangCXXStdlibIncludeArg<br>
<br>
/// Minix - Minix tool chain which can call as(1) and ld(1) directly.<br>
<br>
-Minix::Minix(const Driver &D, const llvm::Triple& Triple, const ArgList &Args)<br>
- : Generic_ELF(D, Triple, Args) {<br>
+Minix::Minix(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)<br>
+ : Generic_ELF(D, Triple, Args) {<br>
getFilePaths().push_back(getDriver().Dir + "/../lib");<br>
getFilePaths().push_back("/usr/lib");<br>
}<br>
@@ -2875,9 +2812,9 @@ Tool *Minix::buildLinker() const { retur<br>
<br>
/// Solaris - Solaris tool chain which can call as(1) and ld(1) directly.<br>
<br>
-Solaris::Solaris(const Driver &D, const llvm::Triple& Triple,<br>
+Solaris::Solaris(const Driver &D, const llvm::Triple &Triple,<br>
const ArgList &Args)<br>
- : Generic_GCC(D, Triple, Args) {<br>
+ : Generic_GCC(D, Triple, Args) {<br>
<br>
getProgramPaths().push_back(getDriver().getInstalledDir());<br>
if (getDriver().getInstalledDir() != getDriver().Dir)<br>
@@ -2934,9 +2871,7 @@ static bool IsRedhat(enum Distro Distro)<br>
return Distro == Fedora || (Distro >= RHEL4 && Distro <= RHEL7);<br>
}<br>
<br>
-static bool IsOpenSUSE(enum Distro Distro) {<br>
- return Distro == OpenSUSE;<br>
-}<br>
+static bool IsOpenSUSE(enum Distro Distro) { return Distro == OpenSUSE; }<br>
<br>
static bool IsDebian(enum Distro Distro) {<br>
return Distro >= DebianLenny && Distro <= DebianStretch;<br>
@@ -3002,9 +2937,9 @@ static Distro DetectDistro(llvm::Triple:<br>
return DebianLenny;<br>
else if (Data.startswith("squeeze/sid") || Data[0] == '6')<br>
return DebianSqueeze;<br>
- else if (Data.startswith("wheezy/sid") || Data[0] == '7')<br>
+ else if (Data.startswith("wheezy/sid") || Data[0] == '7')<br>
return DebianWheezy;<br>
- else if (Data.startswith("jessie/sid") || Data[0] == '8')<br>
+ else if (Data.startswith("jessie/sid") || Data[0] == '8')<br>
return DebianJessie;<br>
else if (Data.startswith("stretch/sid") || Data[0] == '9')<br>
return DebianStretch;<br>
@@ -3037,10 +2972,10 @@ static std::string getMultiarchTriple(co<br>
default:<br>
return TargetTriple.str();<br>
<br>
- // We use the existence of '/lib/<triple>' as a directory to detect some<br>
- // common linux triples that don't quite match the Clang triple for both<br>
- // 32-bit and 64-bit targets. Multiarch fixes its install triples to these<br>
- // regardless of what the actual target triple is.<br>
+ // We use the existence of '/lib/<triple>' as a directory to detect some<br>
+ // common linux triples that don't quite match the Clang triple for both<br>
+ // 32-bit and 64-bit targets. Multiarch fixes its install triples to these<br>
+ // regardless of what the actual target triple is.<br>
case llvm::Triple::arm:<br>
case llvm::Triple::thumb:<br>
if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF) {<br>
@@ -3124,7 +3059,8 @@ static std::string getMultiarchTriple(co<br>
}<br>
<br>
static void addPathIfExists(Twine Path, ToolChain::path_list &Paths) {<br>
- if (llvm::sys::fs::exists(Path)) Paths.push_back(Path.str());<br>
+ if (llvm::sys::fs::exists(Path))<br>
+ Paths.push_back(Path.str());<br>
}<br>
<br>
static StringRef getOSLibDir(const llvm::Triple &Triple, const ArgList &Args) {<br>
@@ -3158,7 +3094,7 @@ static StringRef getOSLibDir(const llvm:<br>
}<br>
<br>
Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)<br>
- : Generic_ELF(D, Triple, Args) {<br>
+ : Generic_ELF(D, Triple, Args) {<br>
GCCInstallation.init(D, Triple, Args);<br>
Multilibs = GCCInstallation.getMultilibs();<br>
llvm::Triple::ArchType Arch = Triple.getArch();<br>
@@ -3174,7 +3110,8 @@ Linux::Linux(const Driver &D, const llvm<br>
// FIXME: This seems unlikely to be Linux-specific.<br>
ToolChain::path_list &PPaths = getProgramPaths();<br>
PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +<br>
- GCCInstallation.getTriple().str() + "/bin").str());<br>
+ GCCInstallation.getTriple().str() + "/bin")<br>
+ .str());<br>
<br>
Linker = GetLinkerPath();<br>
<br>
@@ -3238,8 +3175,7 @@ Linux::Linux(const Driver &D, const llvm<br>
<br>
// Sourcery CodeBench MIPS toolchain holds some libraries under<br>
// a biarch-like suffix of the GCC installation.<br>
- addPathIfExists((GCCInstallation.getInstallPath() +<br>
- Multilib.gccSuffix()),<br>
+ addPathIfExists((GCCInstallation.getInstallPath() + Multilib.gccSuffix()),<br>
Paths);<br>
<br>
// GCC cross compiling toolchains will install target libraries which ship<br>
@@ -3261,7 +3197,7 @@ Linux::Linux(const Driver &D, const llvm<br>
// Note that this matches the GCC behavior. See the below comment for where<br>
// Clang diverges from GCC's behavior.<br>
addPathIfExists(LibPath + "/../" + GCCTriple.str() + "/lib/../" + OSLibDir +<br>
- Multilib.osSuffix(),<br>
+ Multilib.osSuffix(),<br>
Paths);<br>
<br>
// If the GCC installation we found is inside of the sysroot, we want to<br>
@@ -3298,13 +3234,14 @@ Linux::Linux(const Driver &D, const llvm<br>
// installations with strange symlinks.<br>
if (GCCInstallation.isValid()) {<br>
addPathIfExists(SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() +<br>
- "/../../" + OSLibDir, Paths);<br>
+ "/../../" + OSLibDir,<br>
+ Paths);<br>
<br>
// Add the 'other' biarch variant path<br>
Multilib BiarchSibling;<br>
if (GCCInstallation.getBiarchSibling(BiarchSibling)) {<br>
- addPathIfExists(GCCInstallation.getInstallPath() +<br>
- BiarchSibling.gccSuffix(), Paths);<br>
+ addPathIfExists(<br>
+ GCCInstallation.getInstallPath() + BiarchSibling.gccSuffix(), Paths);<br>
}<br>
<br>
// See comments above on the multilib variant for details of why this is<br>
@@ -3312,8 +3249,9 @@ Linux::Linux(const Driver &D, const llvm<br>
const std::string &LibPath = GCCInstallation.getParentLibPath();<br>
const llvm::Triple &GCCTriple = GCCInstallation.getTriple();<br>
const Multilib &Multilib = GCCInstallation.getMultilib();<br>
- addPathIfExists(LibPath + "/../" + GCCTriple.str() +<br>
- "/lib" + Multilib.osSuffix(), Paths);<br>
+ addPathIfExists(LibPath + "/../" + GCCTriple.str() + "/lib" +<br>
+ Multilib.osSuffix(),<br>
+ Paths);<br>
<br>
// See comments above on the multilib variant for details of why this is<br>
// only included from within the sysroot.<br>
@@ -3333,9 +3271,7 @@ Linux::Linux(const Driver &D, const llvm<br>
addPathIfExists(SysRoot + "/usr/lib", Paths);<br>
}<br>
<br>
-bool Linux::HasNativeLLVMSupport() const {<br>
- return true;<br>
-}<br>
+bool Linux::HasNativeLLVMSupport() const { return true; }<br>
<br>
Tool *Linux::buildLinker() const { return new tools::gnutools::Linker(*this); }<br>
<br>
@@ -3358,8 +3294,9 @@ std::string Linux::computeSysRoot() cons<br>
const StringRef TripleStr = GCCInstallation.getTriple().str();<br>
const Multilib &Multilib = GCCInstallation.getMultilib();<br>
<br>
- std::string Path = (InstallDir + "/../../../../" + TripleStr + "/libc" +<br>
- Multilib.osSuffix()).str();<br>
+ std::string Path =<br>
+ (InstallDir + "/../../../../" + TripleStr + "/libc" + Multilib.osSuffix())<br>
+ .str();<br>
<br>
if (llvm::sys::fs::exists(Path))<br>
return Path;<br>
@@ -3422,60 +3359,44 @@ void Linux::AddClangSystemIncludeArgs(co<br>
<br>
// Implement generic Debian multiarch support.<br>
const StringRef X86_64MultiarchIncludeDirs[] = {<br>
- "/usr/include/x86_64-linux-gnu",<br>
+ "/usr/include/x86_64-linux-gnu",<br>
<br>
- // FIXME: These are older forms of multiarch. It's not clear that they're<br>
- // in use in any released version of Debian, so we should consider<br>
- // removing them.<br>
- "/usr/include/i686-linux-gnu/64", "/usr/include/i486-linux-gnu/64"<br>
- };<br>
+ // FIXME: These are older forms of multiarch. It's not clear that they're<br>
+ // in use in any released version of Debian, so we should consider<br>
+ // removing them.<br>
+ "/usr/include/i686-linux-gnu/64", "/usr/include/i486-linux-gnu/64"};<br>
const StringRef X86MultiarchIncludeDirs[] = {<br>
- "/usr/include/i386-linux-gnu",<br>
+ "/usr/include/i386-linux-gnu",<br>
<br>
- // FIXME: These are older forms of multiarch. It's not clear that they're<br>
- // in use in any released version of Debian, so we should consider<br>
- // removing them.<br>
- "/usr/include/x86_64-linux-gnu/32", "/usr/include/i686-linux-gnu",<br>
- "/usr/include/i486-linux-gnu"<br>
- };<br>
+ // FIXME: These are older forms of multiarch. It's not clear that they're<br>
+ // in use in any released version of Debian, so we should consider<br>
+ // removing them.<br>
+ "/usr/include/x86_64-linux-gnu/32", "/usr/include/i686-linux-gnu",<br>
+ "/usr/include/i486-linux-gnu"};<br>
const StringRef AArch64MultiarchIncludeDirs[] = {<br>
- "/usr/include/aarch64-linux-gnu"<br>
- };<br>
+ "/usr/include/aarch64-linux-gnu"};<br>
const StringRef ARMMultiarchIncludeDirs[] = {<br>
- "/usr/include/arm-linux-gnueabi"<br>
- };<br>
+ "/usr/include/arm-linux-gnueabi"};<br>
const StringRef ARMHFMultiarchIncludeDirs[] = {<br>
- "/usr/include/arm-linux-gnueabihf"<br>
- };<br>
- const StringRef MIPSMultiarchIncludeDirs[] = {<br>
- "/usr/include/mips-linux-gnu"<br>
- };<br>
+ "/usr/include/arm-linux-gnueabihf"};<br>
+ const StringRef MIPSMultiarchIncludeDirs[] = {"/usr/include/mips-linux-gnu"};<br>
const StringRef MIPSELMultiarchIncludeDirs[] = {<br>
- "/usr/include/mipsel-linux-gnu"<br>
- };<br>
+ "/usr/include/mipsel-linux-gnu"};<br>
const StringRef MIPS64MultiarchIncludeDirs[] = {<br>
- "/usr/include/mips64-linux-gnu",<br>
- "/usr/include/mips64-linux-gnuabi64"<br>
- };<br>
+ "/usr/include/mips64-linux-gnu", "/usr/include/mips64-linux-gnuabi64"};<br>
const StringRef MIPS64ELMultiarchIncludeDirs[] = {<br>
- "/usr/include/mips64el-linux-gnu",<br>
- "/usr/include/mips64el-linux-gnuabi64"<br>
- };<br>
+ "/usr/include/mips64el-linux-gnu",<br>
+ "/usr/include/mips64el-linux-gnuabi64"};<br>
const StringRef PPCMultiarchIncludeDirs[] = {<br>
- "/usr/include/powerpc-linux-gnu"<br>
- };<br>
+ "/usr/include/powerpc-linux-gnu"};<br>
const StringRef PPC64MultiarchIncludeDirs[] = {<br>
- "/usr/include/powerpc64-linux-gnu"<br>
- };<br>
+ "/usr/include/powerpc64-linux-gnu"};<br>
const StringRef PPC64LEMultiarchIncludeDirs[] = {<br>
- "/usr/include/powerpc64le-linux-gnu"<br>
- };<br>
+ "/usr/include/powerpc64le-linux-gnu"};<br>
const StringRef SparcMultiarchIncludeDirs[] = {<br>
- "/usr/include/sparc-linux-gnu"<br>
- };<br>
+ "/usr/include/sparc-linux-gnu"};<br>
const StringRef Sparc64MultiarchIncludeDirs[] = {<br>
- "/usr/include/sparc64-linux-gnu"<br>
- };<br>
+ "/usr/include/sparc64-linux-gnu"};<br>
ArrayRef<StringRef> MultiarchIncludeDirs;<br>
switch (getTriple().getArch()) {<br>
case llvm::Triple::x86_64:<br>
@@ -3543,13 +3464,10 @@ void Linux::AddClangSystemIncludeArgs(co<br>
}<br>
<br>
/// \brief Helper to add the variant paths of a libstdc++ installation.<br>
-/*static*/ bool Linux::addLibStdCXXIncludePaths(Twine Base, Twine Suffix,<br>
- StringRef GCCTriple,<br>
- StringRef GCCMultiarchTriple,<br>
- StringRef TargetMultiarchTriple,<br>
- Twine IncludeSuffix,<br>
- const ArgList &DriverArgs,<br>
- ArgStringList &CC1Args) {<br>
+/*static*/ bool Linux::addLibStdCXXIncludePaths(<br>
+ Twine Base, Twine Suffix, StringRef GCCTriple, StringRef GCCMultiarchTriple,<br>
+ StringRef TargetMultiarchTriple, Twine IncludeSuffix,<br>
+ const ArgList &DriverArgs, ArgStringList &CC1Args) {<br>
if (!llvm::sys::fs::exists(Base + Suffix))<br>
return false;<br>
<br>
@@ -3587,15 +3505,15 @@ void Linux::AddClangCXXStdlibIncludeArgs<br>
// Check if libc++ has been enabled and provide its include paths if so.<br>
if (GetCXXStdlibType(DriverArgs) == ToolChain::CST_Libcxx) {<br>
const std::string LibCXXIncludePathCandidates[] = {<br>
- // The primary location is within the Clang installation.<br>
- // FIXME: We shouldn't hard code 'v1' here to make Clang future proof to<br>
- // newer ABI versions.<br>
- getDriver().Dir + "/../include/c++/v1",<br>
-<br>
- // We also check the system as for a long time this is the only place Clang looked.<br>
- // FIXME: We should really remove this. It doesn't make any sense.<br>
- getDriver().SysRoot + "/usr/include/c++/v1"<br>
- };<br>
+ // The primary location is within the Clang installation.<br>
+ // FIXME: We shouldn't hard code 'v1' here to make Clang future proof to<br>
+ // newer ABI versions.<br>
+ getDriver().Dir + "/../include/c++/v1",<br>
+<br>
+ // We also check the system as for a long time this is the only place<br>
+ // Clang looked.<br>
+ // FIXME: We should really remove this. It doesn't make any sense.<br>
+ getDriver().SysRoot + "/usr/include/c++/v1"};<br>
for (const auto &IncludePath : LibCXXIncludePathCandidates) {<br>
if (!llvm::sys::fs::exists(IncludePath))<br>
continue;<br>
@@ -3626,24 +3544,24 @@ void Linux::AddClangCXXStdlibIncludeArgs<br>
<br>
// The primary search for libstdc++ supports multiarch variants.<br>
if (addLibStdCXXIncludePaths(LibDir.str() + "/../include",<br>
- "/c++/" + Version.Text, TripleStr, GCCMultiarchTriple,<br>
- TargetMultiarchTriple,<br>
+ "/c++/" + Version.Text, TripleStr,<br>
+ GCCMultiarchTriple, TargetMultiarchTriple,<br>
Multilib.includeSuffix(), DriverArgs, CC1Args))<br>
return;<br>
<br>
// Otherwise, fall back on a bunch of options which don't use multiarch<br>
// layouts for simplicity.<br>
const std::string LibStdCXXIncludePathCandidates[] = {<br>
- // Gentoo is weird and places its headers inside the GCC install, so if the<br>
- // first attempt to find the headers fails, try these patterns.<br>
- InstallDir.str() + "/include/g++-v" + Version.MajorStr + "." +<br>
- Version.MinorStr,<br>
- InstallDir.str() + "/include/g++-v" + Version.MajorStr,<br>
- // Android standalone toolchain has C++ headers in yet another place.<br>
- LibDir.str() + "/../" + TripleStr.str() + "/include/c++/" + Version.Text,<br>
- // Freescale SDK C++ headers are directly in <sysroot>/usr/include/c++,<br>
- // without a subdirectory corresponding to the gcc version.<br>
- LibDir.str() + "/../include/c++",<br>
+ // Gentoo is weird and places its headers inside the GCC install,<br>
+ // so if the first attempt to find the headers fails, try these patterns.<br>
+ InstallDir.str() + "/include/g++-v" + Version.MajorStr + "." +<br>
+ Version.MinorStr,<br>
+ InstallDir.str() + "/include/g++-v" + Version.MajorStr,<br>
+ // Android standalone toolchain has C++ headers in yet another place.<br>
+ LibDir.str() + "/../" + TripleStr.str() + "/include/c++/" + Version.Text,<br>
+ // Freescale SDK C++ headers are directly in <sysroot>/usr/include/c++,<br>
+ // without a subdirectory corresponding to the gcc version.<br>
+ LibDir.str() + "/../include/c++",<br>
};<br>
<br>
for (const auto &IncludePath : LibStdCXXIncludePathCandidates) {<br>
@@ -3655,9 +3573,7 @@ void Linux::AddClangCXXStdlibIncludeArgs<br>
}<br>
}<br>
<br>
-bool Linux::isPIEDefault() const {<br>
- return getSanitizerArgs().requiresPIE();<br>
-}<br>
+bool Linux::isPIEDefault() const { return getSanitizerArgs().requiresPIE(); }<br>
<br>
SanitizerMask Linux::getSupportedSanitizers() const {<br>
const bool IsX86 = getTriple().getArch() == llvm::Triple::x86;<br>
@@ -3686,8 +3602,9 @@ SanitizerMask Linux::getSupportedSanitiz<br>
<br>
/// DragonFly - DragonFly tool chain which can call as(1) and ld(1) directly.<br>
<br>
-DragonFly::DragonFly(const Driver &D, const llvm::Triple& Triple, const ArgList &Args)<br>
- : Generic_ELF(D, Triple, Args) {<br>
+DragonFly::DragonFly(const Driver &D, const llvm::Triple &Triple,<br>
+ const ArgList &Args)<br>
+ : Generic_ELF(D, Triple, Args) {<br>
<br>
// Path mangling to find libexec<br>
getProgramPaths().push_back(getDriver().getInstalledDir());<br>
@@ -3711,8 +3628,8 @@ Tool *DragonFly::buildLinker() const {<br>
}<br>
<br>
/// XCore tool chain<br>
-XCore::XCore(const Driver &D, const llvm::Triple &Triple,<br>
- const ArgList &Args) : ToolChain(D, Triple, Args) {<br>
+XCore::XCore(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)<br>
+ : ToolChain(D, Triple, Args) {<br>
// ProgramPaths are found via 'PATH' environment variable.<br>
}<br>
<br>
@@ -3724,21 +3641,13 @@ Tool *XCore::buildLinker() const { retur<br>
<br>
bool XCore::isPICDefault() const { return false; }<br>
<br>
-bool XCore::isPIEDefault() const {<br>
- return false;<br>
-}<br>
+bool XCore::isPIEDefault() const { return false; }<br>
<br>
-bool XCore::isPICDefaultForced() const {<br>
- return false;<br>
-}<br>
+bool XCore::isPICDefaultForced() const { return false; }<br>
<br>
-bool XCore::SupportsProfiling() const {<br>
- return false;<br>
-}<br>
+bool XCore::SupportsProfiling() const { return false; }<br>
<br>
-bool XCore::hasBlocksRuntime() const {<br>
- return false;<br>
-}<br>
+bool XCore::hasBlocksRuntime() const { return false; }<br>
<br>
void XCore::AddClangSystemIncludeArgs(const ArgList &DriverArgs,<br>
ArgStringList &CC1Args) const {<br>
@@ -3747,7 +3656,7 @@ void XCore::AddClangSystemIncludeArgs(co<br>
return;<br>
if (const char *cl_include_dir = getenv("XCC_C_INCLUDE_PATH")) {<br>
SmallVector<StringRef, 4> Dirs;<br>
- const char EnvPathSeparatorStr[] = {llvm::sys::EnvPathSeparator,'\0'};<br>
+ const char EnvPathSeparatorStr[] = {llvm::sys::EnvPathSeparator, '\0'};<br>
StringRef(cl_include_dir).split(Dirs, StringRef(EnvPathSeparatorStr));<br>
ArrayRef<StringRef> DirVec(Dirs);<br>
addSystemIncludes(DriverArgs, CC1Args, DirVec);<br>
@@ -3767,7 +3676,7 @@ void XCore::AddClangCXXStdlibIncludeArgs<br>
return;<br>
if (const char *cl_include_dir = getenv("XCC_CPLUS_INCLUDE_PATH")) {<br>
SmallVector<StringRef, 4> Dirs;<br>
- const char EnvPathSeparatorStr[] = {llvm::sys::EnvPathSeparator,'\0'};<br>
+ const char EnvPathSeparatorStr[] = {llvm::sys::EnvPathSeparator, '\0'};<br>
StringRef(cl_include_dir).split(Dirs, StringRef(EnvPathSeparatorStr));<br>
ArrayRef<StringRef> DirVec(Dirs);<br>
addSystemIncludes(DriverArgs, CC1Args, DirVec);<br>
@@ -3797,7 +3706,7 @@ Tool *SHAVEToolChain::SelectTool(const J<br>
}<br>
<br>
SHAVEToolChain::SHAVEToolChain(const Driver &D, const llvm::Triple &Triple,<br>
- const ArgList &Args)<br>
+ const ArgList &Args)<br>
: Generic_GCC(D, Triple, Args) {}<br>
<br>
SHAVEToolChain::~SHAVEToolChain() {}<br>
<br>
Modified: cfe/trunk/lib/Driver/ToolChains.h<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Driver_ToolChains.h-3Frev-3D240791-26r1-3D240790-26r2-3D240791-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=HQQNmbImUf4F-mcwxbN9TPWVeRmDPUPU4dZwwCB61Pk&s=GPyENZqtE74QJdc2svnlEnwMlI4tJO7JLLLhcQn4mkk&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.h?rev=240791&r1=240790&r2=240791&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Driver/ToolChains.h (original)<br>
+++ cfe/trunk/lib/Driver/ToolChains.h Fri Jun 26 10:47:46 2015<br>
@@ -101,7 +101,7 @@ protected:<br>
public:<br>
GCCInstallationDetector() : IsValid(false) {}<br>
void init(const Driver &D, const llvm::Triple &TargetTriple,<br>
- const llvm::opt::ArgList &Args);<br>
+ const llvm::opt::ArgList &Args);<br>
<br>
/// \brief Check whether we detected a valid GCC install.<br>
bool isValid() const { return IsValid; }<br>
@@ -188,6 +188,7 @@ protected:<br>
Tool *buildAssembler() const override;<br>
Tool *buildLinker() const override;<br>
Tool *getTool(Action::ActionClass AC) const override;<br>
+<br>
private:<br>
mutable std::unique_ptr<tools::darwin::Lipo> Lipo;<br>
mutable std::unique_ptr<tools::darwin::Dsymutil> Dsymutil;<br>
@@ -195,7 +196,7 @@ private:<br>
<br>
public:<br>
MachO(const Driver &D, const llvm::Triple &Triple,<br>
- const llvm::opt::ArgList &Args);<br>
+ const llvm::opt::ArgList &Args);<br>
~MachO() override;<br>
<br>
/// @name MachO specific toolchain API<br>
@@ -205,7 +206,6 @@ public:<br>
/// example, Apple treats different ARM variations as distinct architectures.<br>
StringRef getMachOArchName(const llvm::opt::ArgList &Args) const;<br>
<br>
-<br>
/// Add the linker arguments to link the ARC runtime library.<br>
virtual void AddLinkARCArgs(const llvm::opt::ArgList &Args,<br>
llvm::opt::ArgStringList &CmdArgs) const {}<br>
@@ -214,30 +214,24 @@ public:<br>
virtual void AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args,<br>
llvm::opt::ArgStringList &CmdArgs) const;<br>
<br>
- virtual void<br>
- addStartObjectFileArgs(const llvm::opt::ArgList &Args,<br>
- llvm::opt::ArgStringList &CmdArgs) const {}<br>
+ virtual void addStartObjectFileArgs(const llvm::opt::ArgList &Args,<br>
+ llvm::opt::ArgStringList &CmdArgs) const {<br>
+ }<br>
<br>
virtual void addMinVersionArgs(const llvm::opt::ArgList &Args,<br>
llvm::opt::ArgStringList &CmdArgs) const {}<br>
<br>
/// On some iOS platforms, kernel and kernel modules were built statically. Is<br>
/// this such a target?<br>
- virtual bool isKernelStatic() const {<br>
- return false;<br>
- }<br>
+ virtual bool isKernelStatic() const { return false; }<br>
<br>
/// Is the target either iOS or an iOS simulator?<br>
- bool isTargetIOSBased() const {<br>
- return false;<br>
- }<br>
+ bool isTargetIOSBased() const { return false; }<br>
<br>
void AddLinkRuntimeLib(const llvm::opt::ArgList &Args,<br>
llvm::opt::ArgStringList &CmdArgs,<br>
- StringRef DarwinLibName,<br>
- bool AlwaysLink = false,<br>
- bool IsEmbedded = false,<br>
- bool AddRPath = false) const;<br>
+ StringRef DarwinLibName, bool AlwaysLink = false,<br>
+ bool IsEmbedded = false, bool AddRPath = false) const;<br>
<br>
/// Add any profiling runtime libraries that are needed. This is essentially a<br>
/// MachO specific version of addProfileRT in Tools.cpp.<br>
@@ -271,22 +265,16 @@ public:<br>
return true;<br>
}<br>
<br>
- bool IsMathErrnoDefault() const override {<br>
- return false;<br>
- }<br>
+ bool IsMathErrnoDefault() const override { return false; }<br>
<br>
- bool IsEncodeExtendedBlockSignatureDefault() const override {<br>
- return true;<br>
- }<br>
+ bool IsEncodeExtendedBlockSignatureDefault() const override { return true; }<br>
<br>
bool IsObjCNonFragileABIDefault() const override {<br>
// Non-fragile ABI is default for everything but i386.<br>
return getTriple().getArch() != llvm::Triple::x86;<br>
}<br>
<br>
- bool UseObjCMixedDispatch() const override {<br>
- return true;<br>
- }<br>
+ bool UseObjCMixedDispatch() const override { return true; }<br>
<br>
bool IsUnwindTablesDefault() const override;<br>
<br>
@@ -300,20 +288,16 @@ public:<br>
<br>
bool SupportsProfiling() const override;<br>
<br>
- bool SupportsObjCGC() const override {<br>
- return false;<br>
- }<br>
+ bool SupportsObjCGC() const override { return false; }<br>
<br>
bool UseDwarfDebugFlags() const override;<br>
<br>
- bool UseSjLjExceptions() const override {<br>
- return false;<br>
- }<br>
+ bool UseSjLjExceptions() const override { return false; }<br>
<br>
/// }<br>
};<br>
<br>
- /// Darwin - The base Darwin tool chain.<br>
+/// Darwin - The base Darwin tool chain.<br>
class LLVM_LIBRARY_VISIBILITY Darwin : public MachO {<br>
public:<br>
/// Whether the information on the target has been initialized.<br>
@@ -323,11 +307,7 @@ public:<br>
// the argument translation business.<br>
mutable bool TargetInitialized;<br>
<br>
- enum DarwinPlatformKind {<br>
- MacOS,<br>
- IPhoneOS,<br>
- IPhoneOSSimulator<br>
- };<br>
+ enum DarwinPlatformKind { MacOS, IPhoneOS, IPhoneOSSimulator };<br>
<br>
mutable DarwinPlatformKind TargetPlatform;<br>
<br>
@@ -348,14 +328,12 @@ public:<br>
/// @name Apple Specific Toolchain Implementation<br>
/// {<br>
<br>
- void<br>
- addMinVersionArgs(const llvm::opt::ArgList &Args,<br>
- llvm::opt::ArgStringList &CmdArgs) const override;<br>
-<br>
- void<br>
- addStartObjectFileArgs(const llvm::opt::ArgList &Args,<br>
+ void addMinVersionArgs(const llvm::opt::ArgList &Args,<br>
llvm::opt::ArgStringList &CmdArgs) const override;<br>
<br>
+ void addStartObjectFileArgs(const llvm::opt::ArgList &Args,<br>
+ llvm::opt::ArgStringList &CmdArgs) const override;<br>
+<br>
bool isKernelStatic() const override {<br>
return !isTargetIPhoneOS() || isIPhoneOSVersionLT(6, 0);<br>
}<br>
@@ -411,12 +389,13 @@ protected:<br>
return TargetVersion;<br>
}<br>
<br>
- bool isIPhoneOSVersionLT(unsigned V0, unsigned V1=0, unsigned V2=0) const {<br>
+ bool isIPhoneOSVersionLT(unsigned V0, unsigned V1 = 0,<br>
+ unsigned V2 = 0) const {<br>
assert(isTargetIOSBased() && "Unexpected call for non iOS target!");<br>
return TargetVersion < VersionTuple(V0, V1, V2);<br>
}<br>
<br>
- bool isMacosxVersionLT(unsigned V0, unsigned V1=0, unsigned V2=0) const {<br>
+ bool isMacosxVersionLT(unsigned V0, unsigned V1 = 0, unsigned V2 = 0) const {<br>
assert(isTargetMacOS() && "Unexpected call for non OS X target!");<br>
return TargetVersion < VersionTuple(V0, V1, V2);<br>
}<br>
@@ -476,23 +455,19 @@ public:<br>
/// @name Apple ToolChain Implementation<br>
/// {<br>
<br>
- void<br>
- AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args,<br>
- llvm::opt::ArgStringList &CmdArgs) const override;<br>
+ void AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args,<br>
+ llvm::opt::ArgStringList &CmdArgs) const override;<br>
<br>
- void<br>
- AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,<br>
- llvm::opt::ArgStringList &CmdArgs) const override;<br>
+ void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,<br>
+ llvm::opt::ArgStringList &CmdArgs) const override;<br>
<br>
- void<br>
- AddCCKextLibArgs(const llvm::opt::ArgList &Args,<br>
- llvm::opt::ArgStringList &CmdArgs) const override;<br>
+ void AddCCKextLibArgs(const llvm::opt::ArgList &Args,<br>
+ llvm::opt::ArgStringList &CmdArgs) const override;<br>
<br>
void addClangWarningOptions(llvm::opt::ArgStringList &CC1Args) const override;<br>
<br>
- void<br>
- AddLinkARCArgs(const llvm::opt::ArgList &Args,<br>
- llvm::opt::ArgStringList &CmdArgs) const override;<br>
+ void AddLinkARCArgs(const llvm::opt::ArgList &Args,<br>
+ llvm::opt::ArgStringList &CmdArgs) const override;<br>
/// }<br>
<br>
private:<br>
@@ -503,6 +478,7 @@ private:<br>
<br>
class LLVM_LIBRARY_VISIBILITY Generic_ELF : public Generic_GCC {<br>
virtual void anchor();<br>
+<br>
public:<br>
Generic_ELF(const Driver &D, const llvm::Triple &Triple,<br>
const llvm::opt::ArgList &Args)<br>
@@ -521,8 +497,8 @@ public:<br>
bool IsMathErrnoDefault() const override { return false; }<br>
bool IsObjCNonFragileABIDefault() const override { return true; }<br>
<br>
- CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args)<br>
- const override {<br>
+ CXXStdlibType<br>
+ GetCXXStdlibType(const llvm::opt::ArgList &Args) const override {<br>
return ToolChain::CST_Libcxx;<br>
}<br>
void AddClangCXXStdlibIncludeArgs(<br>
@@ -543,13 +519,12 @@ public:<br>
const llvm::opt::ArgList &Args);<br>
<br>
bool IsIntegratedAssemblerDefault() const override { return true; }<br>
+<br>
protected:<br>
Tool *buildAssembler() const override;<br>
Tool *buildLinker() const override;<br>
-<br>
};<br>
<br>
-<br>
class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic_ELF {<br>
public:<br>
OpenBSD(const Driver &D, const llvm::Triple &Triple,<br>
@@ -577,13 +552,13 @@ public:<br>
bool IsObjCNonFragileABIDefault() const override { return true; }<br>
<br>
CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;<br>
- void<br>
- AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
- llvm::opt::ArgStringList &CC1Args) const override;<br>
+ void AddClangCXXStdlibIncludeArgs(<br>
+ const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const override;<br>
void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,<br>
llvm::opt::ArgStringList &CmdArgs) const override;<br>
unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override {<br>
- return 1;<br>
+ return 1;<br>
}<br>
<br>
protected:<br>
@@ -601,13 +576,14 @@ public:<br>
bool IsObjCNonFragileABIDefault() const override { return true; }<br>
<br>
CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;<br>
- void<br>
- AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
- llvm::opt::ArgStringList &CC1Args) const override;<br>
+ void AddClangCXXStdlibIncludeArgs(<br>
+ const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const override;<br>
<br>
bool UseSjLjExceptions() const override;<br>
bool isPIEDefault() const override;<br>
SanitizerMask getSupportedSanitizers() const override;<br>
+<br>
protected:<br>
Tool *buildAssembler() const override;<br>
Tool *buildLinker() const override;<br>
@@ -623,12 +599,10 @@ public:<br>
<br>
CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;<br>
<br>
- void<br>
- AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
- llvm::opt::ArgStringList &CC1Args) const override;<br>
- bool IsUnwindTablesDefault() const override {<br>
- return true;<br>
- }<br>
+ void AddClangCXXStdlibIncludeArgs(<br>
+ const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const override;<br>
+ bool IsUnwindTablesDefault() const override { return true; }<br>
<br>
protected:<br>
Tool *buildAssembler() const override;<br>
@@ -667,9 +641,9 @@ public:<br>
void<br>
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
llvm::opt::ArgStringList &CC1Args) const override;<br>
- void<br>
- AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
- llvm::opt::ArgStringList &CC1Args) const override;<br>
+ void AddClangCXXStdlibIncludeArgs(<br>
+ const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const override;<br>
bool isPIEDefault() const override;<br>
SanitizerMask getSupportedSanitizers() const override;<br>
<br>
@@ -706,9 +680,9 @@ public:<br>
void<br>
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
llvm::opt::ArgStringList &CC1Args) const override;<br>
- void<br>
- AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
- llvm::opt::ArgStringList &CC1Args) const override;<br>
+ void AddClangCXXStdlibIncludeArgs(<br>
+ const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const override;<br>
CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;<br>
<br>
StringRef GetGCCLibAndIncVersion() const { return GCCLibAndIncVersion.Text; }<br>
@@ -720,7 +694,7 @@ public:<br>
<br>
static const char *GetSmallDataThreshold(const llvm::opt::ArgList &Args);<br>
<br>
- static bool UsesG0(const char* smallDataThreshold);<br>
+ static bool UsesG0(const char *smallDataThreshold);<br>
};<br>
<br>
class LLVM_LIBRARY_VISIBILITY NaCl_TC : public Generic_ELF {<br>
@@ -731,19 +705,16 @@ public:<br>
void<br>
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
llvm::opt::ArgStringList &CC1Args) const override;<br>
- void<br>
- AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
- llvm::opt::ArgStringList &CC1Args) const override;<br>
+ void AddClangCXXStdlibIncludeArgs(<br>
+ const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const override;<br>
<br>
- CXXStdlibType<br>
- GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;<br>
+ CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;<br>
<br>
- void<br>
- AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,<br>
- llvm::opt::ArgStringList &CmdArgs) const override;<br>
+ void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,<br>
+ llvm::opt::ArgStringList &CmdArgs) const override;<br>
<br>
- bool<br>
- IsIntegratedAssemblerDefault() const override { return false; }<br>
+ bool IsIntegratedAssemblerDefault() const override { return false; }<br>
<br>
// Get the path to the file containing NaCl's ARM macros. It lives in NaCl_TC<br>
// because the AssembleARM tool needs a const char * that it can pass around<br>
@@ -790,9 +761,9 @@ public:<br>
void<br>
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
llvm::opt::ArgStringList &CC1Args) const override;<br>
- void<br>
- AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
- llvm::opt::ArgStringList &CC1Args) const override;<br>
+ void AddClangCXXStdlibIncludeArgs(<br>
+ const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const override;<br>
<br>
bool getWindowsSDKDir(std::string &path, int &major, int &minor) const;<br>
bool getWindowsSDKLibraryPath(std::string &path) const;<br>
@@ -829,12 +800,12 @@ public:<br>
return 0;<br>
}<br>
<br>
- void AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
- llvm::opt::ArgStringList &CC1Args)<br>
- const override;<br>
- void AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
- llvm::opt::ArgStringList &CC1Args)<br>
- const override;<br>
+ void<br>
+ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const override;<br>
+ void AddClangCXXStdlibIncludeArgs(<br>
+ const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const override;<br>
void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,<br>
llvm::opt::ArgStringList &CmdArgs) const override;<br>
<br>
@@ -846,22 +817,26 @@ protected:<br>
class LLVM_LIBRARY_VISIBILITY XCore : public ToolChain {<br>
public:<br>
XCore(const Driver &D, const llvm::Triple &Triple,<br>
- const llvm::opt::ArgList &Args);<br>
+ const llvm::opt::ArgList &Args);<br>
+<br>
protected:<br>
Tool *buildAssembler() const override;<br>
Tool *buildLinker() const override;<br>
+<br>
public:<br>
bool isPICDefault() const override;<br>
bool isPIEDefault() const override;<br>
bool isPICDefaultForced() const override;<br>
bool SupportsProfiling() const override;<br>
bool hasBlocksRuntime() const override;<br>
- void AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
- llvm::opt::ArgStringList &CC1Args) const override;<br>
+ void<br>
+ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const override;<br>
void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs,<br>
llvm::opt::ArgStringList &CC1Args) const override;<br>
- void AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,<br>
- llvm::opt::ArgStringList &CC1Args) const override;<br>
+ void AddClangCXXStdlibIncludeArgs(<br>
+ const llvm::opt::ArgList &DriverArgs,<br>
+ llvm::opt::ArgStringList &CC1Args) const override;<br>
void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,<br>
llvm::opt::ArgStringList &CmdArgs) const override;<br>
};<br>
@@ -872,7 +847,7 @@ public:<br>
class LLVM_LIBRARY_VISIBILITY SHAVEToolChain : public Generic_GCC {<br>
public:<br>
SHAVEToolChain(const Driver &D, const llvm::Triple &Triple,<br>
- const llvm::opt::ArgList &Args);<br>
+ const llvm::opt::ArgList &Args);<br>
~SHAVEToolChain() override;<br>
<br>
virtual Tool *SelectTool(const JobAction &JA) const override;<br>
<br>
Modified: cfe/trunk/lib/Driver/Tools.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Driver_Tools.cpp-3Frev-3D240791-26r1-3D240790-26r2-3D240791-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=HQQNmbImUf4F-mcwxbN9TPWVeRmDPUPU4dZwwCB61Pk&s=XPCKCDOSlcdsyBc35qMSw6glnYJCjwU7Lz31FSbegFA&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=240791&r1=240790&r2=240791&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Driver/Tools.cpp (original)<br>
+++ cfe/trunk/lib/Driver/Tools.cpp Fri Jun 26 10:47:46 2015<br>
@@ -84,10 +84,10 @@ static void CheckPreprocessingOptions(co<br>
static void CheckCodeGenerationOptions(const Driver &D, const ArgList &Args) {<br>
// In gcc, only ARM checks this, but it seems reasonable to check universally.<br>
if (Args.hasArg(options::OPT_static))<br>
- if (const Arg *A = Args.getLastArg(options::OPT_dynamic,<br>
- options::OPT_mdynamic_no_pic))<br>
- D.Diag(diag::err_drv_argument_not_allowed_with)<br>
- << A->getAsString(Args) << "-static";<br>
+ if (const Arg *A =<br>
+ Args.getLastArg(options::OPT_dynamic, options::OPT_mdynamic_no_pic))<br>
+ D.Diag(diag::err_drv_argument_not_allowed_with) << A->getAsString(Args)<br>
+ << "-static";<br>
}<br>
<br>
// Add backslashes to escape spaces and other backslashes.<br>
@@ -95,9 +95,10 @@ static void CheckCodeGenerationOptions(c<br>
// the -dwarf-debug-flags option.<br>
static void EscapeSpacesAndBackslashes(const char *Arg,<br>
SmallVectorImpl<char> &Res) {<br>
- for ( ; *Arg; ++Arg) {<br>
+ for (; *Arg; ++Arg) {<br>
switch (*Arg) {<br>
- default: break;<br>
+ default:<br>
+ break;<br>
case ' ':<br>
case '\\':<br>
Res.push_back('\\');<br>
@@ -109,8 +110,7 @@ static void EscapeSpacesAndBackslashes(c<br>
<br>
// Quote target names for inclusion in GNU Make dependency files.<br>
// Only the characters '$', '#', ' ', '\t' are quoted.<br>
-static void QuoteTarget(StringRef Target,<br>
- SmallVectorImpl<char> &Res) {<br>
+static void QuoteTarget(StringRef Target, SmallVectorImpl<char> &Res) {<br>
for (unsigned i = 0, e = Target.size(); i != e; ++i) {<br>
switch (Target[i]) {<br>
case ' ':<br>
@@ -136,10 +136,8 @@ static void QuoteTarget(StringRef Target<br>
}<br>
}<br>
<br>
-static void addDirectoryList(const ArgList &Args,<br>
- ArgStringList &CmdArgs,<br>
- const char *ArgName,<br>
- const char *EnvVar) {<br>
+static void addDirectoryList(const ArgList &Args, ArgStringList &CmdArgs,<br>
+ const char *ArgName, const char *EnvVar) {<br>
const char *DirList = ::getenv(EnvVar);<br>
bool CombinedArg = false;<br>
<br>
@@ -165,7 +163,8 @@ static void addDirectoryList(const ArgLi<br>
}<br>
} else {<br>
if (CombinedArg) {<br>
- CmdArgs.push_back(Args.MakeArgString(std::string(ArgName) + Dirs.substr(0, Delim)));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(std::string(ArgName) + Dirs.substr(0, Delim)));<br>
} else {<br>
CmdArgs.push_back(ArgName);<br>
CmdArgs.push_back(Args.MakeArgString(Dirs.substr(0, Delim)));<br>
@@ -191,9 +190,8 @@ static void addDirectoryList(const ArgLi<br>
}<br>
}<br>
<br>
-static void AddLinkerInputs(const ToolChain &TC,<br>
- const InputInfoList &Inputs, const ArgList &Args,<br>
- ArgStringList &CmdArgs) {<br>
+static void AddLinkerInputs(const ToolChain &TC, const InputInfoList &Inputs,<br>
+ const ArgList &Args, ArgStringList &CmdArgs) {<br>
const Driver &D = TC.getDriver();<br>
<br>
// Add extra linker input arguments which are not treated as inputs<br>
@@ -205,10 +203,8 @@ static void AddLinkerInputs(const ToolCh<br>
// Don't try to pass LLVM inputs unless we have native support.<br>
if (II.getType() == types::TY_LLVM_IR ||<br>
II.getType() == types::TY_LTO_IR ||<br>
- II.getType() == types::TY_LLVM_BC ||<br>
- II.getType() == types::TY_LTO_BC)<br>
- D.Diag(diag::err_drv_no_linker_llvm_support)<br>
- << TC.getTripleString();<br>
+ II.getType() == types::TY_LLVM_BC || II.getType() == types::TY_LTO_BC)<br>
+ D.Diag(diag::err_drv_no_linker_llvm_support) << TC.getTripleString();<br>
}<br>
<br>
// Add filenames immediately.<br>
@@ -230,7 +226,7 @@ static void AddLinkerInputs(const ToolCh<br>
A.claim();<br>
A.render(Args, CmdArgs);<br>
} else {<br>
- A.renderAsInput(Args, CmdArgs);<br>
+ A.renderAsInput(Args, CmdArgs);<br>
}<br>
}<br>
<br>
@@ -259,14 +255,11 @@ static bool forwardToGCC(const Option &O<br>
// Don't forward inputs from the original command line. They are added from<br>
// InputInfoList.<br>
return O.getKind() != Option::InputClass &&<br>
- !O.hasFlag(options::DriverOption) &&<br>
- !O.hasFlag(options::LinkerInput);<br>
+ !O.hasFlag(options::DriverOption) && !O.hasFlag(options::LinkerInput);<br>
}<br>
<br>
-void Clang::AddPreprocessingOptions(Compilation &C,<br>
- const JobAction &JA,<br>
- const Driver &D,<br>
- const ArgList &Args,<br>
+void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA,<br>
+ const Driver &D, const ArgList &Args,<br>
ArgStringList &CmdArgs,<br>
const InputInfo &Output,<br>
const InputInfoList &Inputs) const {<br>
@@ -333,7 +326,7 @@ void Clang::AddPreprocessingOptions(Comp<br>
<br>
if (Args.hasArg(options::OPT_MG)) {<br>
if (!A || A->getOption().matches(options::OPT_MD) ||<br>
- A->getOption().matches(options::OPT_MMD))<br>
+ A->getOption().matches(options::OPT_MMD))<br>
D.Diag(diag::err_drv_mg_requires_m_or_mm);<br>
CmdArgs.push_back("-MG");<br>
}<br>
@@ -351,7 +344,7 @@ void Clang::AddPreprocessingOptions(Comp<br>
QuoteTarget(A->getValue(), Quoted);<br>
CmdArgs.push_back(Args.MakeArgString(Quoted));<br>
<br>
- // -MT flag - no change<br>
+ // -MT flag - no change<br>
} else {<br>
A->render(Args, CmdArgs);<br>
}<br>
@@ -408,8 +401,8 @@ void Clang::AddPreprocessingOptions(Comp<br>
continue;<br>
} else {<br>
// Ignore the PCH if not first on command line and emit warning.<br>
- D.Diag(diag::warn_drv_pch_not_first_include)<br>
- << P << A->getAsString(Args);<br>
+ D.Diag(diag::warn_drv_pch_not_first_include) << P<br>
+ << A->getAsString(Args);<br>
}<br>
}<br>
}<br>
@@ -511,8 +504,8 @@ static bool isNoCommonDefault(const llvm<br>
<br>
// Handle -mhwdiv=.<br>
static void getARMHWDivFeatures(const Driver &D, const Arg *A,<br>
- const ArgList &Args,<br>
- std::vector<const char *> &Features) {<br>
+ const ArgList &Args,<br>
+ std::vector<const char *> &Features) {<br>
StringRef HWDiv = A->getValue();<br>
if (HWDiv == "arm") {<br>
Features.push_back("+hwdiv-arm");<br>
@@ -556,9 +549,9 @@ static bool isARMMProfile(const llvm::Tr<br>
StringRef tools::arm::getARMFloatABI(const Driver &D, const ArgList &Args,<br>
const llvm::Triple &Triple) {<br>
StringRef FloatABI;<br>
- if (Arg *A = Args.getLastArg(options::OPT_msoft_float,<br>
- options::OPT_mhard_float,<br>
- options::OPT_mfloat_abi_EQ)) {<br>
+ if (Arg *A =<br>
+ Args.getLastArg(options::OPT_msoft_float, options::OPT_mhard_float,<br>
+ options::OPT_mfloat_abi_EQ)) {<br>
if (A->getOption().matches(options::OPT_msoft_float))<br>
FloatABI = "soft";<br>
else if (A->getOption().matches(options::OPT_mhard_float))<br>
@@ -566,8 +559,7 @@ StringRef tools::arm::getARMFloatABI(con<br>
else {<br>
FloatABI = A->getValue();<br>
if (FloatABI != "soft" && FloatABI != "softfp" && FloatABI != "hard") {<br>
- D.Diag(diag::err_drv_invalid_mfloat_abi)<br>
- << A->getAsString(Args);<br>
+ D.Diag(diag::err_drv_invalid_mfloat_abi) << A->getAsString(Args);<br>
FloatABI = "soft";<br>
}<br>
}<br>
@@ -595,7 +587,7 @@ StringRef tools::arm::getARMFloatABI(con<br>
break;<br>
<br>
case llvm::Triple::FreeBSD:<br>
- switch(Triple.getEnvironment()) {<br>
+ switch (Triple.getEnvironment()) {<br>
case llvm::Triple::GNUEABIHF:<br>
FloatABI = "hard";<br>
break;<br>
@@ -607,7 +599,7 @@ StringRef tools::arm::getARMFloatABI(con<br>
break;<br>
<br>
default:<br>
- switch(Triple.getEnvironment()) {<br>
+ switch (Triple.getEnvironment()) {<br>
case llvm::Triple::GNUEABIHF:<br>
FloatABI = "hard";<br>
break;<br>
@@ -715,8 +707,7 @@ static void getARMTargetFeatures(const D<br>
}<br>
}<br>
<br>
-void Clang::AddARMTargetArgs(const ArgList &Args,<br>
- ArgStringList &CmdArgs,<br>
+void Clang::AddARMTargetArgs(const ArgList &Args, ArgStringList &CmdArgs,<br>
bool KernelOrKext) const {<br>
const Driver &D = getToolChain().getDriver();<br>
// Get the effective triple, which takes into account the deployment target.<br>
@@ -734,8 +725,7 @@ void Clang::AddARMTargetArgs(const ArgLi<br>
// The backend is hardwired to assume AAPCS for M-class processors, ensure<br>
// the frontend matches that.<br>
if (Triple.getEnvironment() == llvm::Triple::EABI ||<br>
- Triple.getOS() == llvm::Triple::UnknownOS ||<br>
- isARMMProfile(Triple)) {<br>
+ Triple.getOS() == llvm::Triple::UnknownOS || isARMMProfile(Triple)) {<br>
ABIName = "aapcs";<br>
} else {<br>
ABIName = "apcs-gnu";<br>
@@ -745,7 +735,7 @@ void Clang::AddARMTargetArgs(const ArgLi<br>
ABIName = "aapcs";<br>
} else {<br>
// Select the default based on the platform.<br>
- switch(Triple.getEnvironment()) {<br>
+ switch (Triple.getEnvironment()) {<br>
case llvm::Triple::Android:<br>
case llvm::Triple::GNUEABI:<br>
case llvm::Triple::GNUEABIHF:<br>
@@ -827,8 +817,7 @@ void Clang::AddARMTargetArgs(const ArgLi<br>
}<br>
<br>
if (!Args.hasFlag(options::OPT_mimplicit_float,<br>
- options::OPT_mno_implicit_float,<br>
- true))<br>
+ options::OPT_mno_implicit_float, true))<br>
CmdArgs.push_back("-no-implicit-float");<br>
<br>
// llvm does not support reserving registers in general. There is support<br>
@@ -932,10 +921,8 @@ void Clang::AddAArch64TargetArgs(const A<br>
<br>
// Get CPU and ABI names. They are not independent<br>
// so we have to calculate them together.<br>
-void mips::getMipsCPUAndABI(const ArgList &Args,<br>
- const llvm::Triple &Triple,<br>
- StringRef &CPUName,<br>
- StringRef &ABIName) {<br>
+void mips::getMipsCPUAndABI(const ArgList &Args, const llvm::Triple &Triple,<br>
+ StringRef &CPUName, StringRef &ABIName) {<br>
const char *DefMips32CPU = "mips32r2";<br>
const char *DefMips64CPU = "mips64r2";<br>
<br>
@@ -951,8 +938,7 @@ void mips::getMipsCPUAndABI(const ArgLis<br>
if (Triple.getOS() == llvm::Triple::OpenBSD)<br>
DefMips64CPU = "mips3";<br>
<br>
- if (Arg *A = Args.getLastArg(options::OPT_march_EQ,<br>
- options::OPT_mcpu_EQ))<br>
+ if (Arg *A = Args.getLastArg(options::OPT_march_EQ, options::OPT_mcpu_EQ))<br>
CPUName = A->getValue();<br>
<br>
if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) {<br>
@@ -960,9 +946,9 @@ void mips::getMipsCPUAndABI(const ArgLis<br>
// Convert a GNU style Mips ABI name to the name<br>
// accepted by LLVM Mips backend.<br>
ABIName = llvm::StringSwitch<llvm::StringRef>(ABIName)<br>
- .Case("32", "o32")<br>
- .Case("64", "n64")<br>
- .Default(ABIName);<br>
+ .Case("32", "o32")<br>
+ .Case("64", "n64")<br>
+ .Default(ABIName);<br>
}<br>
<br>
// Setup default CPU and ABI names.<br>
@@ -993,9 +979,9 @@ void mips::getMipsCPUAndABI(const ArgLis<br>
if (CPUName.empty()) {<br>
// Deduce CPU name from ABI name.<br>
CPUName = llvm::StringSwitch<const char *>(ABIName)<br>
- .Cases("o32", "eabi", DefMips32CPU)<br>
- .Cases("n32", "n64", DefMips64CPU)<br>
- .Default("");<br>
+ .Cases("o32", "eabi", DefMips32CPU)<br>
+ .Cases("n32", "n64", DefMips64CPU)<br>
+ .Default("");<br>
}<br>
<br>
// FIXME: Warn on inconsistent use of -march and -mabi.<br>
@@ -1004,18 +990,18 @@ void mips::getMipsCPUAndABI(const ArgLis<br>
// Convert ABI name to the GNU tools acceptable variant.<br>
static StringRef getGnuCompatibleMipsABIName(StringRef ABI) {<br>
return llvm::StringSwitch<llvm::StringRef>(ABI)<br>
- .Case("o32", "32")<br>
- .Case("n64", "64")<br>
- .Default(ABI);<br>
+ .Case("o32", "32")<br>
+ .Case("n64", "64")<br>
+ .Default(ABI);<br>
}<br>
<br>
// Select the MIPS float ABI as determined by -msoft-float, -mhard-float,<br>
// and -mfloat-abi=.<br>
static StringRef getMipsFloatABI(const Driver &D, const ArgList &Args) {<br>
StringRef FloatABI;<br>
- if (Arg *A = Args.getLastArg(options::OPT_msoft_float,<br>
- options::OPT_mhard_float,<br>
- options::OPT_mfloat_abi_EQ)) {<br>
+ if (Arg *A =<br>
+ Args.getLastArg(options::OPT_msoft_float, options::OPT_mhard_float,<br>
+ options::OPT_mfloat_abi_EQ)) {<br>
if (A->getOption().matches(options::OPT_msoft_float))<br>
FloatABI = "soft";<br>
else if (A->getOption().matches(options::OPT_mhard_float))<br>
@@ -1143,8 +1129,7 @@ void Clang::AddMIPSTargetArgs(const ArgL<br>
CmdArgs.push_back("-msoft-float");<br>
CmdArgs.push_back("-mfloat-abi");<br>
CmdArgs.push_back("soft");<br>
- }<br>
- else {<br>
+ } else {<br>
// Floating point operations and argument passing are hard.<br>
assert(FloatABI == "hard" && "Invalid float abi!");<br>
CmdArgs.push_back("-mfloat-abi");<br>
@@ -1196,51 +1181,51 @@ static std::string getPPCTargetCPU(const<br>
}<br>
<br>
return llvm::StringSwitch<const char *>(CPUName)<br>
- .Case("common", "generic")<br>
- .Case("440", "440")<br>
- .Case("440fp", "440")<br>
- .Case("450", "450")<br>
- .Case("601", "601")<br>
- .Case("602", "602")<br>
- .Case("603", "603")<br>
- .Case("603e", "603e")<br>
- .Case("603ev", "603ev")<br>
- .Case("604", "604")<br>
- .Case("604e", "604e")<br>
- .Case("620", "620")<br>
- .Case("630", "pwr3")<br>
- .Case("G3", "g3")<br>
- .Case("7400", "7400")<br>
- .Case("G4", "g4")<br>
- .Case("7450", "7450")<br>
- .Case("G4+", "g4+")<br>
- .Case("750", "750")<br>
- .Case("970", "970")<br>
- .Case("G5", "g5")<br>
- .Case("a2", "a2")<br>
- .Case("a2q", "a2q")<br>
- .Case("e500mc", "e500mc")<br>
- .Case("e5500", "e5500")<br>
- .Case("power3", "pwr3")<br>
- .Case("power4", "pwr4")<br>
- .Case("power5", "pwr5")<br>
- .Case("power5x", "pwr5x")<br>
- .Case("power6", "pwr6")<br>
- .Case("power6x", "pwr6x")<br>
- .Case("power7", "pwr7")<br>
- .Case("power8", "pwr8")<br>
- .Case("pwr3", "pwr3")<br>
- .Case("pwr4", "pwr4")<br>
- .Case("pwr5", "pwr5")<br>
- .Case("pwr5x", "pwr5x")<br>
- .Case("pwr6", "pwr6")<br>
- .Case("pwr6x", "pwr6x")<br>
- .Case("pwr7", "pwr7")<br>
- .Case("pwr8", "pwr8")<br>
- .Case("powerpc", "ppc")<br>
- .Case("powerpc64", "ppc64")<br>
- .Case("powerpc64le", "ppc64le")<br>
- .Default("");<br>
+ .Case("common", "generic")<br>
+ .Case("440", "440")<br>
+ .Case("440fp", "440")<br>
+ .Case("450", "450")<br>
+ .Case("601", "601")<br>
+ .Case("602", "602")<br>
+ .Case("603", "603")<br>
+ .Case("603e", "603e")<br>
+ .Case("603ev", "603ev")<br>
+ .Case("604", "604")<br>
+ .Case("604e", "604e")<br>
+ .Case("620", "620")<br>
+ .Case("630", "pwr3")<br>
+ .Case("G3", "g3")<br>
+ .Case("7400", "7400")<br>
+ .Case("G4", "g4")<br>
+ .Case("7450", "7450")<br>
+ .Case("G4+", "g4+")<br>
+ .Case("750", "750")<br>
+ .Case("970", "970")<br>
+ .Case("G5", "g5")<br>
+ .Case("a2", "a2")<br>
+ .Case("a2q", "a2q")<br>
+ .Case("e500mc", "e500mc")<br>
+ .Case("e5500", "e5500")<br>
+ .Case("power3", "pwr3")<br>
+ .Case("power4", "pwr4")<br>
+ .Case("power5", "pwr5")<br>
+ .Case("power5x", "pwr5x")<br>
+ .Case("power6", "pwr6")<br>
+ .Case("power6x", "pwr6x")<br>
+ .Case("power7", "pwr7")<br>
+ .Case("power8", "pwr8")<br>
+ .Case("pwr3", "pwr3")<br>
+ .Case("pwr4", "pwr4")<br>
+ .Case("pwr5", "pwr5")<br>
+ .Case("pwr5x", "pwr5x")<br>
+ .Case("pwr6", "pwr6")<br>
+ .Case("pwr6x", "pwr6x")<br>
+ .Case("pwr7", "pwr7")<br>
+ .Case("pwr8", "pwr8")<br>
+ .Case("powerpc", "ppc")<br>
+ .Case("powerpc64", "ppc64")<br>
+ .Case("powerpc64le", "ppc64le")<br>
+ .Default("");<br>
}<br>
<br>
return "";<br>
@@ -1282,7 +1267,7 @@ void Clang::AddPPCTargetArgs(const ArgLi<br>
if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) {<br>
ABIName = A->getValue();<br>
} else if (getToolChain().getTriple().isOSLinux())<br>
- switch(getToolChain().getArch()) {<br>
+ switch (getToolChain().getArch()) {<br>
case llvm::Triple::ppc64: {<br>
// When targeting a processor that supports QPX, or if QPX is<br>
// specifically enabled, default to using the ABI that supports QPX (so<br>
@@ -1304,7 +1289,7 @@ void Clang::AddPPCTargetArgs(const ArgLi<br>
break;<br>
default:<br>
break;<br>
- }<br>
+ }<br>
<br>
if (ABIName) {<br>
CmdArgs.push_back("-target-abi");<br>
@@ -1322,20 +1307,20 @@ static std::string getR600TargetGPU(cons<br>
if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {<br>
const char *GPUName = A->getValue();<br>
return llvm::StringSwitch<const char *>(GPUName)<br>
- .Cases("rv630", "rv635", "r600")<br>
- .Cases("rv610", "rv620", "rs780", "rs880")<br>
- .Case("rv740", "rv770")<br>
- .Case("palm", "cedar")<br>
- .Cases("sumo", "sumo2", "sumo")<br>
- .Case("hemlock", "cypress")<br>
- .Case("aruba", "cayman")<br>
- .Default(GPUName);<br>
+ .Cases("rv630", "rv635", "r600")<br>
+ .Cases("rv610", "rv620", "rs780", "rs880")<br>
+ .Case("rv740", "rv770")<br>
+ .Case("palm", "cedar")<br>
+ .Cases("sumo", "sumo2", "sumo")<br>
+ .Case("hemlock", "cypress")<br>
+ .Case("aruba", "cayman")<br>
+ .Default(GPUName);<br>
}<br>
return "";<br>
}<br>
<br>
void Clang::AddSparcTargetArgs(const ArgList &Args,<br>
- ArgStringList &CmdArgs) const {<br>
+ ArgStringList &CmdArgs) const {<br>
const Driver &D = getToolChain().getDriver();<br>
std::string Triple = getToolChain().ComputeEffectiveClangTriple(Args);<br>
<br>
@@ -1352,8 +1337,8 @@ void Clang::AddSparcTargetArgs(const Arg<br>
// currently does not support Sparc soft-float, at all, display an<br>
// error if it's requested.<br>
if (SoftFloatABI) {<br>
- D.Diag(diag::err_drv_unsupported_opt_for_target)<br>
- << "-msoft-float" << Triple;<br>
+ D.Diag(diag::err_drv_unsupported_opt_for_target) << "-msoft-float"<br>
+ << Triple;<br>
}<br>
}<br>
<br>
@@ -1366,16 +1351,14 @@ static const char *getSystemZTargetCPU(c<br>
static void getSystemZTargetFeatures(const ArgList &Args,<br>
std::vector<const char *> &Features) {<br>
// -m(no-)htm overrides use of the transactional-execution facility.<br>
- if (Arg *A = Args.getLastArg(options::OPT_mhtm,<br>
- options::OPT_mno_htm)) {<br>
+ if (Arg *A = Args.getLastArg(options::OPT_mhtm, options::OPT_mno_htm)) {<br>
if (A->getOption().matches(options::OPT_mhtm))<br>
Features.push_back("+transactional-execution");<br>
else<br>
Features.push_back("-transactional-execution");<br>
}<br>
// -m(no-)vx overrides use of the vector facility.<br>
- if (Arg *A = Args.getLastArg(options::OPT_mvx,<br>
- options::OPT_mno_vx)) {<br>
+ if (Arg *A = Args.getLastArg(options::OPT_mvx, options::OPT_mno_vx)) {<br>
if (A->getOption().matches(options::OPT_mvx))<br>
Features.push_back("+vector");<br>
else<br>
@@ -1446,7 +1429,7 @@ static const char *getX86TargetCPU(const<br>
}<br>
<br>
static std::string getCPUName(const ArgList &Args, const llvm::Triple &T) {<br>
- switch(T.getArch()) {<br>
+ switch (T.getArch()) {<br>
default:<br>
return "";<br>
<br>
@@ -1517,7 +1500,8 @@ static void AddGoldPlugin(const ToolChai<br>
// as gold requires -plugin to come before any -plugin-opt that -Wl might<br>
// forward.<br>
CmdArgs.push_back("-plugin");<br>
- std::string Plugin = ToolChain.getDriver().Dir + "/../lib" CLANG_LIBDIR_SUFFIX "/LLVMgold.so";<br>
+ std::string Plugin =<br>
+ ToolChain.getDriver().Dir + "/../lib" CLANG_LIBDIR_SUFFIX "/LLVMgold.so";<br>
CmdArgs.push_back(Args.MakeArgString(Plugin));<br>
<br>
// Try to pass driver level flags relevant to LTO code generation down to<br>
@@ -1534,7 +1518,7 @@ static void AddGoldPlugin(const ToolChai<br>
/// parsing the refinement step. Otherwise, return true and set the Position<br>
/// of the refinement step in the input string.<br>
static bool getRefinementStep(const StringRef &In, const Driver &D,<br>
- const Arg &A, size_t &Position) {<br>
+ const Arg &A, size_t &Position) {<br>
const char RefinementStepToken = ':';<br>
Position = In.find(RefinementStepToken);<br>
if (Position != StringRef::npos) {<br>
@@ -1597,14 +1581,14 @@ static void ParseMRecip(const Driver &D,<br>
// and pass through.<br>
<br>
llvm::StringMap<bool> OptionStrings;<br>
- OptionStrings.insert(std::make_pair("divd", false));<br>
- OptionStrings.insert(std::make_pair("divf", false));<br>
- OptionStrings.insert(std::make_pair("vec-divd", false));<br>
- OptionStrings.insert(std::make_pair("vec-divf", false));<br>
- OptionStrings.insert(std::make_pair("sqrtd", false));<br>
- OptionStrings.insert(std::make_pair("sqrtf", false));<br>
- OptionStrings.insert(std::make_pair("vec-sqrtd", false));<br>
- OptionStrings.insert(std::make_pair("vec-sqrtf", false));<br>
+ OptionStrings.insert(std::make_pair("divd", false));<br>
+ OptionStrings.insert(std::make_pair("divf", false));<br>
+ OptionStrings.insert(std::make_pair("vec-divd", false));<br>
+ OptionStrings.insert(std::make_pair("vec-divf", false));<br>
+ OptionStrings.insert(std::make_pair("sqrtd", false));<br>
+ OptionStrings.insert(std::make_pair("sqrtf", false));<br>
+ OptionStrings.insert(std::make_pair("vec-sqrtd", false));<br>
+ OptionStrings.insert(std::make_pair("vec-sqrtf", false));<br>
<br>
for (unsigned i = 0; i != NumOptions; ++i) {<br>
StringRef Val = A->getValue(i);<br>
@@ -1636,7 +1620,7 @@ static void ParseMRecip(const Driver &D,<br>
return;<br>
}<br>
}<br>
-<br>
+<br>
if (OptionIter->second == true) {<br>
// Duplicate option specified.<br>
D.Diag(diag::err_drv_invalid_value) << A->getOption().getName() << Val;<br>
@@ -1669,8 +1653,8 @@ static void getX86TargetFeatures(const D<br>
llvm::StringMap<bool> HostFeatures;<br>
if (llvm::sys::getHostCPUFeatures(HostFeatures))<br>
for (auto &F : HostFeatures)<br>
- Features.push_back(Args.MakeArgString((F.second ? "+" : "-") +<br>
- F.first()));<br>
+ Features.push_back(<br>
+ Args.MakeArgString((F.second ? "+" : "-") + F.first()));<br>
}<br>
}<br>
<br>
@@ -1739,9 +1723,7 @@ static void getX86TargetFeatures(const D<br>
<br>
void Clang::AddX86TargetArgs(const ArgList &Args,<br>
ArgStringList &CmdArgs) const {<br>
- if (!Args.hasFlag(options::OPT_mred_zone,<br>
- options::OPT_mno_red_zone,<br>
- true) ||<br>
+ if (!Args.hasFlag(options::OPT_mred_zone, options::OPT_mno_red_zone, true) ||<br>
Args.hasArg(options::OPT_mkernel) ||<br>
Args.hasArg(options::OPT_fapple_kext))<br>
CmdArgs.push_back("-disable-red-zone");<br>
@@ -1750,10 +1732,9 @@ void Clang::AddX86TargetArgs(const ArgLi<br>
// that to be overridden with -mno-soft-float.<br>
bool NoImplicitFloat = (Args.hasArg(options::OPT_mkernel) ||<br>
Args.hasArg(options::OPT_fapple_kext));<br>
- if (Arg *A = Args.getLastArg(options::OPT_msoft_float,<br>
- options::OPT_mno_soft_float,<br>
- options::OPT_mimplicit_float,<br>
- options::OPT_mno_implicit_float)) {<br>
+ if (Arg *A = Args.getLastArg(<br>
+ options::OPT_msoft_float, options::OPT_mno_soft_float,<br>
+ options::OPT_mimplicit_float, options::OPT_mno_implicit_float)) {<br>
const Option &O = A->getOption();<br>
NoImplicitFloat = (O.matches(options::OPT_mno_implicit_float) ||<br>
O.matches(options::OPT_msoft_float));<br>
@@ -1778,21 +1759,21 @@ void Clang::AddHexagonTargetArgs(const A<br>
CmdArgs.push_back("-mqdsp6-compat");<br>
CmdArgs.push_back("-Wreturn-type");<br>
<br>
- if (const char* v = toolchains::Hexagon_TC::GetSmallDataThreshold(Args)) {<br>
- std::string SmallDataThreshold="-hexagon-small-data-threshold=";<br>
+ if (const char *v = toolchains::Hexagon_TC::GetSmallDataThreshold(Args)) {<br>
+ std::string SmallDataThreshold = "-hexagon-small-data-threshold=";<br>
SmallDataThreshold += v;<br>
- CmdArgs.push_back ("-mllvm");<br>
+ CmdArgs.push_back("-mllvm");<br>
CmdArgs.push_back(Args.MakeArgString(SmallDataThreshold));<br>
}<br>
<br>
if (!Args.hasArg(options::OPT_fno_short_enums))<br>
CmdArgs.push_back("-fshort-enums");<br>
if (Args.getLastArg(options::OPT_mieee_rnd_near)) {<br>
- CmdArgs.push_back ("-mllvm");<br>
- CmdArgs.push_back ("-enable-hexagon-ieee-rnd-near");<br>
+ CmdArgs.push_back("-mllvm");<br>
+ CmdArgs.push_back("-enable-hexagon-ieee-rnd-near");<br>
}<br>
- CmdArgs.push_back ("-mllvm");<br>
- CmdArgs.push_back ("-machine-sink-split=0");<br>
+ CmdArgs.push_back("-mllvm");<br>
+ CmdArgs.push_back("-machine-sink-split=0");<br>
}<br>
<br>
// Decode AArch64 features from string like +[no]featureA+[no]featureB+...<br>
@@ -1828,7 +1809,8 @@ static bool DecodeAArch64Mcpu(const Driv<br>
std::vector<const char *> &Features) {<br>
std::pair<StringRef, StringRef> Split = Mcpu.split("+");<br>
CPU = Split.first;<br>
- if (CPU == "cyclone" || CPU == "cortex-a53" || CPU == "cortex-a57" || CPU == "cortex-a72") {<br>
+ if (CPU == "cyclone" || CPU == "cortex-a53" || CPU == "cortex-a57" ||<br>
+ CPU == "cortex-a72") {<br>
Features.push_back("+neon");<br>
Features.push_back("+crc");<br>
Features.push_back("+crypto");<br>
@@ -1851,12 +1833,9 @@ getAArch64ArchFeaturesFromMarch(const Dr<br>
std::string MarchLowerCase = March.lower();<br>
std::pair<StringRef, StringRef> Split = StringRef(MarchLowerCase).split("+");<br>
<br>
- if (Split.first == "armv8-a" ||<br>
- Split.first == "armv8a") {<br>
+ if (Split.first == "armv8-a" || Split.first == "armv8a") {<br>
// ok, no additional features.<br>
- } else if (<br>
- Split.first == "armv8.1-a" ||<br>
- Split.first == "armv8.1a" ) {<br>
+ } else if (Split.first == "armv8.1-a" || Split.first == "armv8.1a") {<br>
Features.push_back("+v8.1a");<br>
} else {<br>
return false;<br>
@@ -1941,8 +1920,7 @@ static void getAArch64TargetFeatures(con<br>
}<br>
<br>
// En/disable crc<br>
- if (Arg *A = Args.getLastArg(options::OPT_mcrc,<br>
- options::OPT_mnocrc)) {<br>
+ if (Arg *A = Args.getLastArg(options::OPT_mcrc, options::OPT_mnocrc)) {<br>
if (A->getOption().matches(options::OPT_mcrc))<br>
Features.push_back("+crc");<br>
else<br>
@@ -2023,7 +2001,7 @@ shouldUseExceptionTablesForObjCException<br>
if (!Triple.isMacOSX())<br>
return false;<br>
<br>
- return (!Triple.isMacOSXVersionLT(10,5) &&<br>
+ return (!Triple.isMacOSXVersionLT(10, 5) &&<br>
(Triple.getArch() == llvm::Triple::x86_64 ||<br>
Triple.getArch() == llvm::Triple::arm));<br>
}<br>
@@ -2069,8 +2047,7 @@ static void addExceptionArgs(const ArgLi<br>
// is not necessarily sensible, but follows GCC.<br>
if (types::isObjC(InputType) &&<br>
Args.hasFlag(options::OPT_fobjc_exceptions,<br>
- options::OPT_fno_objc_exceptions,<br>
- true)) {<br>
+ options::OPT_fno_objc_exceptions, true)) {<br>
CmdArgs.push_back("-fobjc-exceptions");<br>
<br>
EH |= shouldUseExceptionTablesForObjCExceptions(objcRuntime, Triple);<br>
@@ -2113,8 +2090,7 @@ static void addExceptionArgs(const ArgLi<br>
CmdArgs.push_back("-fexceptions");<br>
}<br>
<br>
-static bool ShouldDisableAutolink(const ArgList &Args,<br>
- const ToolChain &TC) {<br>
+static bool ShouldDisableAutolink(const ArgList &Args, const ToolChain &TC) {<br>
bool Default = true;<br>
if (TC.getTriple().isOSDarwin()) {<br>
// The native darwin assembler doesn't support the linker_option directives,<br>
@@ -2127,9 +2103,9 @@ static bool ShouldDisableAutolink(const<br>
<br>
static bool ShouldDisableDwarfDirectory(const ArgList &Args,<br>
const ToolChain &TC) {<br>
- bool UseDwarfDirectory = Args.hasFlag(options::OPT_fdwarf_directory_asm,<br>
- options::OPT_fno_dwarf_directory_asm,<br>
- TC.useIntegratedAs());<br>
+ bool UseDwarfDirectory =<br>
+ Args.hasFlag(options::OPT_fdwarf_directory_asm,<br>
+ options::OPT_fno_dwarf_directory_asm, TC.useIntegratedAs());<br>
return !UseDwarfDirectory;<br>
}<br>
<br>
@@ -2164,29 +2140,29 @@ static bool UseRelaxAll(Compilation &C,<br>
}<br>
<br>
return Args.hasFlag(options::OPT_mrelax_all, options::OPT_mno_relax_all,<br>
- RelaxDefault);<br>
+ RelaxDefault);<br>
}<br>
<br>
static void CollectArgsForIntegratedAssembler(Compilation &C,<br>
const ArgList &Args,<br>
ArgStringList &CmdArgs,<br>
const Driver &D) {<br>
- if (UseRelaxAll(C, Args))<br>
- CmdArgs.push_back("-mrelax-all");<br>
+ if (UseRelaxAll(C, Args))<br>
+ CmdArgs.push_back("-mrelax-all");<br>
<br>
- // When passing -I arguments to the assembler we sometimes need to<br>
- // unconditionally take the next argument. For example, when parsing<br>
- // '-Wa,-I -Wa,foo' we need to accept the -Wa,foo arg after seeing the<br>
- // -Wa,-I arg and when parsing '-Wa,-I,foo' we need to accept the 'foo'<br>
- // arg after parsing the '-I' arg.<br>
- bool TakeNextArg = false;<br>
-<br>
- // When using an integrated assembler, translate -Wa, and -Xassembler<br>
- // options.<br>
- bool CompressDebugSections = false;<br>
- for (const Arg *A :<br>
- Args.filtered(options::OPT_Wa_COMMA, options::OPT_Xassembler)) {<br>
- A->claim();<br>
+ // When passing -I arguments to the assembler we sometimes need to<br>
+ // unconditionally take the next argument. For example, when parsing<br>
+ // '-Wa,-I -Wa,foo' we need to accept the -Wa,foo arg after seeing the<br>
+ // -Wa,-I arg and when parsing '-Wa,-I,foo' we need to accept the 'foo'<br>
+ // arg after parsing the '-I' arg.<br>
+ bool TakeNextArg = false;<br>
+<br>
+ // When using an integrated assembler, translate -Wa, and -Xassembler<br>
+ // options.<br>
+ bool CompressDebugSections = false;<br>
+ for (const Arg *A :<br>
+ Args.filtered(options::OPT_Wa_COMMA, options::OPT_Xassembler)) {<br>
+ A->claim();<br>
<br>
for (const StringRef Value : A->getValues()) {<br>
if (TakeNextArg) {<br>
@@ -2195,40 +2171,40 @@ static void CollectArgsForIntegratedAsse<br>
continue;<br>
}<br>
<br>
- if (Value == "-force_cpusubtype_ALL") {<br>
- // Do nothing, this is the default and we don't support anything else.<br>
- } else if (Value == "-L") {<br>
- CmdArgs.push_back("-msave-temp-labels");<br>
- } else if (Value == "--fatal-warnings") {<br>
- CmdArgs.push_back("-massembler-fatal-warnings");<br>
- } else if (Value == "--noexecstack") {<br>
- CmdArgs.push_back("-mnoexecstack");<br>
- } else if (Value == "-compress-debug-sections" ||<br>
- Value == "--compress-debug-sections") {<br>
- CompressDebugSections = true;<br>
- } else if (Value == "-nocompress-debug-sections" ||<br>
- Value == "--nocompress-debug-sections") {<br>
- CompressDebugSections = false;<br>
- } else if (Value.startswith("-I")) {<br>
- CmdArgs.push_back(Value.data());<br>
- // We need to consume the next argument if the current arg is a plain<br>
- // -I. The next arg will be the include directory.<br>
- if (Value == "-I")<br>
- TakeNextArg = true;<br>
- } else if (Value.startswith("-gdwarf-")) {<br>
- CmdArgs.push_back(Value.data());<br>
- } else {<br>
- D.Diag(diag::err_drv_unsupported_option_argument)<br>
+ if (Value == "-force_cpusubtype_ALL") {<br>
+ // Do nothing, this is the default and we don't support anything else.<br>
+ } else if (Value == "-L") {<br>
+ CmdArgs.push_back("-msave-temp-labels");<br>
+ } else if (Value == "--fatal-warnings") {<br>
+ CmdArgs.push_back("-massembler-fatal-warnings");<br>
+ } else if (Value == "--noexecstack") {<br>
+ CmdArgs.push_back("-mnoexecstack");<br>
+ } else if (Value == "-compress-debug-sections" ||<br>
+ Value == "--compress-debug-sections") {<br>
+ CompressDebugSections = true;<br>
+ } else if (Value == "-nocompress-debug-sections" ||<br>
+ Value == "--nocompress-debug-sections") {<br>
+ CompressDebugSections = false;<br>
+ } else if (Value.startswith("-I")) {<br>
+ CmdArgs.push_back(Value.data());<br>
+ // We need to consume the next argument if the current arg is a plain<br>
+ // -I. The next arg will be the include directory.<br>
+ if (Value == "-I")<br>
+ TakeNextArg = true;<br>
+ } else if (Value.startswith("-gdwarf-")) {<br>
+ CmdArgs.push_back(Value.data());<br>
+ } else {<br>
+ D.Diag(diag::err_drv_unsupported_option_argument)<br>
<< A->getOption().getName() << Value;<br>
- }<br>
}<br>
}<br>
- if (CompressDebugSections) {<br>
- if (llvm::zlib::isAvailable())<br>
- CmdArgs.push_back("-compress-debug-sections");<br>
- else<br>
- D.Diag(diag::warn_debug_compression_unavailable);<br>
- }<br>
+ }<br>
+ if (CompressDebugSections) {<br>
+ if (llvm::zlib::isAvailable())<br>
+ CmdArgs.push_back("-compress-debug-sections");<br>
+ else<br>
+ D.Diag(diag::warn_debug_compression_unavailable);<br>
+ }<br>
}<br>
<br>
// Until ARM libraries are build separately, we have them all in one library<br>
@@ -2333,15 +2309,15 @@ static OpenMPRuntimeKind getOpenMPRuntim<br>
RuntimeName = A->getValue();<br>
<br>
auto RT = llvm::StringSwitch<OpenMPRuntimeKind>(RuntimeName)<br>
- .Case("libomp", OMPRT_OMP)<br>
- .Case("libgomp", OMPRT_GOMP)<br>
- .Case("libiomp5", OMPRT_IOMP5)<br>
- .Default(OMPRT_Unknown);<br>
+ .Case("libomp", OMPRT_OMP)<br>
+ .Case("libgomp", OMPRT_GOMP)<br>
+ .Case("libiomp5", OMPRT_IOMP5)<br>
+ .Default(OMPRT_Unknown);<br>
<br>
if (RT == OMPRT_Unknown) {<br>
if (A)<br>
TC.getDriver().Diag(diag::err_drv_unsupported_option_argument)<br>
- << A->getOption().getName() << A->getValue();<br>
+ << A->getOption().getName() << A->getValue();<br>
else<br>
// FIXME: We could use a nicer diagnostic here.<br>
TC.getDriver().Diag(diag::err_drv_unsupported_opt) << "-fopenmp";<br>
@@ -2536,8 +2512,7 @@ static void addDebugCompDirArg(const Arg<br>
}<br>
}<br>
<br>
-static const char *SplitDebugName(const ArgList &Args,<br>
- const InputInfo &Input) {<br>
+static const char *SplitDebugName(const ArgList &Args, const InputInfo &Input) {<br>
Arg *FinalOutput = Args.getLastArg(options::OPT_o);<br>
if (FinalOutput && Args.hasArg(options::OPT_c)) {<br>
SmallString<128> T(FinalOutput->getValue());<br>
@@ -2554,10 +2529,9 @@ static const char *SplitDebugName(const<br>
}<br>
}<br>
<br>
-static void SplitDebugInfo(const ToolChain &TC, Compilation &C,<br>
- const Tool &T, const JobAction &JA,<br>
- const ArgList &Args, const InputInfo &Output,<br>
- const char *OutFile) {<br>
+static void SplitDebugInfo(const ToolChain &TC, Compilation &C, const Tool &T,<br>
+ const JobAction &JA, const ArgList &Args,<br>
+ const InputInfo &Output, const char *OutFile) {<br>
ArgStringList ExtractArgs;<br>
ExtractArgs.push_back("--extract-dwo");<br>
<br>
@@ -2569,8 +2543,7 @@ static void SplitDebugInfo(const ToolCha<br>
ExtractArgs.push_back(Output.getFilename());<br>
ExtractArgs.push_back(OutFile);<br>
<br>
- const char *Exec =<br>
- Args.MakeArgString(TC.GetProgramPath("objcopy"));<br>
+ const char *Exec = Args.MakeArgString(TC.GetProgramPath("objcopy"));<br>
<br>
// First extract the dwo sections.<br>
C.addCommand(llvm::make_unique<Command>(JA, T, Exec, ExtractArgs));<br>
@@ -2634,7 +2607,7 @@ static VersionTuple getMSCompatibilityVe<br>
return VersionTuple(Version / 100, Version % 100);<br>
<br>
unsigned Build = 0, Factor = 1;<br>
- for ( ; Version > 10000; Version = Version / 10, Factor = Factor * 10)<br>
+ for (; Version > 10000; Version = Version / 10, Factor = Factor * 10)<br>
Build = Build + (Version % 10) * Factor;<br>
return VersionTuple(Version / 100, Version % 100, Build);<br>
}<br>
@@ -2671,7 +2644,7 @@ static void appendUserToPath(SmallVector<br>
}<br>
}<br>
<br>
- // Fallback to user id.<br>
+// Fallback to user id.<br>
#ifdef LLVM_ON_UNIX<br>
std::string UID = llvm::utostr(getuid());<br>
#else<br>
@@ -2691,7 +2664,7 @@ VersionTuple visualstudio::getMSVCVersio<br>
Args.hasArg(options::OPT_fms_compatibility_version)) {<br>
const Arg *MSCVersion = Args.getLastArg(options::OPT_fmsc_version);<br>
const Arg *MSCompatibilityVersion =<br>
- Args.getLastArg(options::OPT_fms_compatibility_version);<br>
+ Args.getLastArg(options::OPT_fms_compatibility_version);<br>
<br>
if (MSCVersion && MSCompatibilityVersion) {<br>
if (D)<br>
@@ -2729,12 +2702,10 @@ VersionTuple visualstudio::getMSVCVersio<br>
}<br>
<br>
void Clang::ConstructJob(Compilation &C, const JobAction &JA,<br>
- const InputInfo &Output,<br>
- const InputInfoList &Inputs,<br>
- const ArgList &Args,<br>
- const char *LinkingOutput) const {<br>
- bool KernelOrKext = Args.hasArg(options::OPT_mkernel,<br>
- options::OPT_fapple_kext);<br>
+ const InputInfo &Output, const InputInfoList &Inputs,<br>
+ const ArgList &Args, const char *LinkingOutput) const {<br>
+ bool KernelOrKext =<br>
+ Args.hasArg(options::OPT_mkernel, options::OPT_fapple_kext);<br>
const Driver &D = getToolChain().getDriver();<br>
ArgStringList CmdArgs;<br>
<br>
@@ -2774,7 +2745,7 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
// Select the appropriate action.<br>
RewriteKind rewriteKind = RK_None;<br>
-<br>
+<br>
if (isa<AnalyzeJobAction>(JA)) {<br>
assert(JA.getType() == types::TY_Plist && "Invalid output type.");<br>
CmdArgs.push_back("-analyze");<br>
@@ -2795,7 +2766,7 @@ void Clang::ConstructJob(Compilation &C,<br>
CollectArgsForIntegratedAssembler(C, Args, CmdArgs, D);<br>
<br>
// Also ignore explicit -force_cpusubtype_ALL option.<br>
- (void) Args.hasArg(options::OPT_force__cpusubtype__ALL);<br>
+ (void)Args.hasArg(options::OPT_force__cpusubtype__ALL);<br>
} else if (isa<PrecompileJobAction>(JA)) {<br>
// Use PCH if the user requested it.<br>
bool UsePCH = D.CCCUsePCH;<br>
@@ -2833,8 +2804,7 @@ void Clang::ConstructJob(Compilation &C,<br>
CmdArgs.push_back("-rewrite-objc");<br>
rewriteKind = RK_Fragile;<br>
} else {<br>
- assert(JA.getType() == types::TY_PP_Asm &&<br>
- "Unexpected output type!");<br>
+ assert(JA.getType() == types::TY_PP_Asm && "Unexpected output type!");<br>
}<br>
<br>
// Preserve use-list order by default when emitting bitcode, so that<br>
@@ -2851,7 +2821,7 @@ void Clang::ConstructJob(Compilation &C,<br>
if (!C.isForDiagnostics())<br>
CmdArgs.push_back("-disable-free");<br>
<br>
- // Disable the verification pass in -asserts builds.<br>
+// Disable the verification pass in -asserts builds.<br>
#ifdef NDEBUG<br>
CmdArgs.push_back("-disable-llvm-verifier");<br>
#endif<br>
@@ -2884,9 +2854,9 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
if (getToolChain().getTriple().getVendor() == llvm::Triple::Apple)<br>
CmdArgs.push_back("-analyzer-checker=osx");<br>
-<br>
+<br>
CmdArgs.push_back("-analyzer-checker=deadcode");<br>
-<br>
+<br>
if (types::isCXX(Input.getType()))<br>
CmdArgs.push_back("-analyzer-checker=cplusplus");<br>
<br>
@@ -2895,7 +2865,7 @@ void Clang::ConstructJob(Compilation &C,<br>
"-analyzer-checker=security.insecureAPI.UncheckedReturn");<br>
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.getpw");<br>
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.gets");<br>
- CmdArgs.push_back("-analyzer-checker=security.insecureAPI.mktemp");<br>
+ CmdArgs.push_back("-analyzer-checker=security.insecureAPI.mktemp");<br>
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.mkstemp");<br>
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.vfork");<br>
}<br>
@@ -2979,10 +2949,10 @@ void Clang::ConstructJob(Compilation &C,<br>
// used. If the last argument is any flavor of the '-fno-...' arguments,<br>
// both PIC and PIE are disabled. Any PIE option implicitly enables PIC<br>
// at the same level.<br>
- Arg *LastPICArg =Args.getLastArg(options::OPT_fPIC, options::OPT_fno_PIC,<br>
- options::OPT_fpic, options::OPT_fno_pic,<br>
- options::OPT_fPIE, options::OPT_fno_PIE,<br>
- options::OPT_fpie, options::OPT_fno_pie);<br>
+ Arg *LastPICArg = Args.getLastArg(options::OPT_fPIC, options::OPT_fno_PIC,<br>
+ options::OPT_fpic, options::OPT_fno_pic,<br>
+ options::OPT_fPIE, options::OPT_fno_PIE,<br>
+ options::OPT_fpie, options::OPT_fno_pie);<br>
// Check whether the tool chain trumps the PIC-ness decision. If the PIC-ness<br>
// is forced, then neither PIC nor PIE flags will have no effect.<br>
if (!getToolChain().isPICDefaultForced()) {<br>
@@ -2991,10 +2961,10 @@ void Clang::ConstructJob(Compilation &C,<br>
if (O.matches(options::OPT_fPIC) || O.matches(options::OPT_fpic) ||<br>
O.matches(options::OPT_fPIE) || O.matches(options::OPT_fpie)) {<br>
PIE = O.matches(options::OPT_fPIE) || O.matches(options::OPT_fpie);<br>
- PIC = PIE || O.matches(options::OPT_fPIC) ||<br>
- O.matches(options::OPT_fpic);<br>
- IsPICLevelTwo = O.matches(options::OPT_fPIE) ||<br>
- O.matches(options::OPT_fPIC);<br>
+ PIC =<br>
+ PIE || O.matches(options::OPT_fPIC) || O.matches(options::OPT_fpic);<br>
+ IsPICLevelTwo =<br>
+ O.matches(options::OPT_fPIE) || O.matches(options::OPT_fPIC);<br>
} else {<br>
PIE = PIC = false;<br>
}<br>
@@ -3021,7 +2991,7 @@ void Clang::ConstructJob(Compilation &C,<br>
// uses it, and it isn't even valid on any OS but Darwin.<br>
if (!getToolChain().getTriple().isOSDarwin())<br>
D.Diag(diag::err_drv_unsupported_opt_for_target)<br>
- << A->getSpelling() << getToolChain().getTriple().str();<br>
+ << A->getSpelling() << getToolChain().getTriple().str();<br>
<br>
// FIXME: Warn when this flag trumps some other PIC or PIE flag.<br>
<br>
@@ -3091,7 +3061,7 @@ void Clang::ConstructJob(Compilation &C,<br>
options::OPT_freg_struct_return)) {<br>
if (getToolChain().getArch() != llvm::Triple::x86) {<br>
D.Diag(diag::err_drv_unsupported_opt_for_target)<br>
- << A->getSpelling() << getToolChain().getTriple().str();<br>
+ << A->getSpelling() << getToolChain().getTriple().str();<br>
} else if (A->getOption().matches(options::OPT_fpcc_struct_return)) {<br>
CmdArgs.push_back("-fpcc-struct-return");<br>
} else {<br>
@@ -3112,8 +3082,8 @@ void Clang::ConstructJob(Compilation &C,<br>
bool OFastEnabled = isOptimizationLevelFast(Args);<br>
// If -Ofast is the optimization level, then -fstrict-aliasing should be<br>
// enabled. This alias option is being used to simplify the hasFlag logic.<br>
- OptSpecifier StrictAliasingAliasOption = OFastEnabled ? options::OPT_Ofast :<br>
- options::OPT_fstrict_aliasing;<br>
+ OptSpecifier StrictAliasingAliasOption =<br>
+ OFastEnabled ? options::OPT_Ofast : options::OPT_fstrict_aliasing;<br>
// We turn strict aliasing off by default if we're in CL mode, since MSVC<br>
// doesn't do any TBAA.<br>
bool TBAAOnByDefault = !getToolChain().getDriver().IsCLMode();<br>
@@ -3136,30 +3106,28 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
// If -Ofast is the optimization level, then -ffast-math should be enabled.<br>
// This alias option is being used to simplify the getLastArg logic.<br>
- OptSpecifier FastMathAliasOption = OFastEnabled ? options::OPT_Ofast :<br>
- options::OPT_ffast_math;<br>
-<br>
+ OptSpecifier FastMathAliasOption =<br>
+ OFastEnabled ? options::OPT_Ofast : options::OPT_ffast_math;<br>
+<br>
// Handle various floating point optimization flags, mapping them to the<br>
// appropriate LLVM code generation flags. The pattern for all of these is to<br>
// default off the codegen optimizations, and if any flag enables them and no<br>
// flag disables them after the flag enabling them, enable the codegen<br>
// optimization. This is complicated by several "umbrella" flags.<br>
- if (Arg *A = Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,<br>
- options::OPT_fno_fast_math,<br>
- options::OPT_ffinite_math_only,<br>
- options::OPT_fno_finite_math_only,<br>
- options::OPT_fhonor_infinities,<br>
- options::OPT_fno_honor_infinities))<br>
+ if (Arg *A = Args.getLastArg(<br>
+ options::OPT_ffast_math, FastMathAliasOption,<br>
+ options::OPT_fno_fast_math, options::OPT_ffinite_math_only,<br>
+ options::OPT_fno_finite_math_only, options::OPT_fhonor_infinities,<br>
+ options::OPT_fno_honor_infinities))<br>
if (A->getOption().getID() != options::OPT_fno_fast_math &&<br>
A->getOption().getID() != options::OPT_fno_finite_math_only &&<br>
A->getOption().getID() != options::OPT_fhonor_infinities)<br>
CmdArgs.push_back("-menable-no-infs");<br>
- if (Arg *A = Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,<br>
- options::OPT_fno_fast_math,<br>
- options::OPT_ffinite_math_only,<br>
- options::OPT_fno_finite_math_only,<br>
- options::OPT_fhonor_nans,<br>
- options::OPT_fno_honor_nans))<br>
+ if (Arg *A = Args.getLastArg(<br>
+ options::OPT_ffast_math, FastMathAliasOption,<br>
+ options::OPT_fno_fast_math, options::OPT_ffinite_math_only,<br>
+ options::OPT_fno_finite_math_only, options::OPT_fhonor_nans,<br>
+ options::OPT_fno_honor_nans))<br>
if (A->getOption().getID() != options::OPT_fno_fast_math &&<br>
A->getOption().getID() != options::OPT_fno_finite_math_only &&<br>
A->getOption().getID() != options::OPT_fhonor_nans)<br>
@@ -3167,10 +3135,10 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
// -fmath-errno is the default on some platforms, e.g. BSD-derived OSes.<br>
bool MathErrno = getToolChain().IsMathErrnoDefault();<br>
- if (Arg *A = Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,<br>
- options::OPT_fno_fast_math,<br>
- options::OPT_fmath_errno,<br>
- options::OPT_fno_math_errno)) {<br>
+ if (Arg *A =<br>
+ Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,<br>
+ options::OPT_fno_fast_math, options::OPT_fmath_errno,<br>
+ options::OPT_fno_math_errno)) {<br>
// Turning on -ffast_math (with either flag) removes the need for MathErrno.<br>
// However, turning *off* -ffast_math merely restores the toolchain default<br>
// (which may be false).<br>
@@ -3189,45 +3157,41 @@ void Clang::ConstructJob(Compilation &C,<br>
// entire set of LLVM optimizations, so collect them through all the flag<br>
// madness.<br>
bool AssociativeMath = false;<br>
- if (Arg *A = Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,<br>
- options::OPT_fno_fast_math,<br>
- options::OPT_funsafe_math_optimizations,<br>
- options::OPT_fno_unsafe_math_optimizations,<br>
- options::OPT_fassociative_math,<br>
- options::OPT_fno_associative_math))<br>
+ if (Arg *A = Args.getLastArg(<br>
+ options::OPT_ffast_math, FastMathAliasOption,<br>
+ options::OPT_fno_fast_math, options::OPT_funsafe_math_optimizations,<br>
+ options::OPT_fno_unsafe_math_optimizations,<br>
+ options::OPT_fassociative_math, options::OPT_fno_associative_math))<br>
if (A->getOption().getID() != options::OPT_fno_fast_math &&<br>
A->getOption().getID() != options::OPT_fno_unsafe_math_optimizations &&<br>
A->getOption().getID() != options::OPT_fno_associative_math)<br>
AssociativeMath = true;<br>
bool ReciprocalMath = false;<br>
- if (Arg *A = Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,<br>
- options::OPT_fno_fast_math,<br>
- options::OPT_funsafe_math_optimizations,<br>
- options::OPT_fno_unsafe_math_optimizations,<br>
- options::OPT_freciprocal_math,<br>
- options::OPT_fno_reciprocal_math))<br>
+ if (Arg *A = Args.getLastArg(<br>
+ options::OPT_ffast_math, FastMathAliasOption,<br>
+ options::OPT_fno_fast_math, options::OPT_funsafe_math_optimizations,<br>
+ options::OPT_fno_unsafe_math_optimizations,<br>
+ options::OPT_freciprocal_math, options::OPT_fno_reciprocal_math))<br>
if (A->getOption().getID() != options::OPT_fno_fast_math &&<br>
A->getOption().getID() != options::OPT_fno_unsafe_math_optimizations &&<br>
A->getOption().getID() != options::OPT_fno_reciprocal_math)<br>
ReciprocalMath = true;<br>
bool SignedZeros = true;<br>
- if (Arg *A = Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,<br>
- options::OPT_fno_fast_math,<br>
- options::OPT_funsafe_math_optimizations,<br>
- options::OPT_fno_unsafe_math_optimizations,<br>
- options::OPT_fsigned_zeros,<br>
- options::OPT_fno_signed_zeros))<br>
+ if (Arg *A = Args.getLastArg(<br>
+ options::OPT_ffast_math, FastMathAliasOption,<br>
+ options::OPT_fno_fast_math, options::OPT_funsafe_math_optimizations,<br>
+ options::OPT_fno_unsafe_math_optimizations,<br>
+ options::OPT_fsigned_zeros, options::OPT_fno_signed_zeros))<br>
if (A->getOption().getID() != options::OPT_fno_fast_math &&<br>
A->getOption().getID() != options::OPT_fno_unsafe_math_optimizations &&<br>
A->getOption().getID() != options::OPT_fsigned_zeros)<br>
SignedZeros = false;<br>
bool TrappingMath = true;<br>
- if (Arg *A = Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,<br>
- options::OPT_fno_fast_math,<br>
- options::OPT_funsafe_math_optimizations,<br>
- options::OPT_fno_unsafe_math_optimizations,<br>
- options::OPT_ftrapping_math,<br>
- options::OPT_fno_trapping_math))<br>
+ if (Arg *A = Args.getLastArg(<br>
+ options::OPT_ffast_math, FastMathAliasOption,<br>
+ options::OPT_fno_fast_math, options::OPT_funsafe_math_optimizations,<br>
+ options::OPT_fno_unsafe_math_optimizations,<br>
+ options::OPT_ftrapping_math, options::OPT_fno_trapping_math))<br>
if (A->getOption().getID() != options::OPT_fno_fast_math &&<br>
A->getOption().getID() != options::OPT_fno_unsafe_math_optimizations &&<br>
A->getOption().getID() != options::OPT_ftrapping_math)<br>
@@ -3242,7 +3206,7 @@ void Clang::ConstructJob(Compilation &C,<br>
if (ReciprocalMath)<br>
CmdArgs.push_back("-freciprocal-math");<br>
<br>
- // Validate and pass through -fp-contract option.<br>
+ // Validate and pass through -fp-contract option.<br>
if (Arg *A = Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,<br>
options::OPT_fno_fast_math,<br>
options::OPT_ffp_contract)) {<br>
@@ -3252,7 +3216,7 @@ void Clang::ConstructJob(Compilation &C,<br>
CmdArgs.push_back(Args.MakeArgString("-ffp-contract=" + Val));<br>
} else {<br>
D.Diag(diag::err_drv_unsupported_option_argument)<br>
- << A->getOption().getName() << Val;<br>
+ << A->getOption().getName() << Val;<br>
}<br>
} else if (A->getOption().matches(options::OPT_ffast_math) ||<br>
(OFastEnabled && A->getOption().matches(options::OPT_Ofast))) {<br>
@@ -3260,7 +3224,7 @@ void Clang::ConstructJob(Compilation &C,<br>
CmdArgs.push_back(Args.MakeArgString("-ffp-contract=fast"));<br>
}<br>
}<br>
-<br>
+<br>
ParseMRecip(getToolChain().getDriver(), Args, CmdArgs);<br>
<br>
// We separately look for the '-ffast-math' and '-ffinite-math-only' flags,<br>
@@ -3270,8 +3234,8 @@ void Clang::ConstructJob(Compilation &C,<br>
// and deserialization, etc.<br>
if (Arg *A = Args.getLastArg(options::OPT_ffast_math, FastMathAliasOption,<br>
options::OPT_fno_fast_math))<br>
- if (!A->getOption().matches(options::OPT_fno_fast_math))<br>
- CmdArgs.push_back("-ffast-math");<br>
+ if (!A->getOption().matches(options::OPT_fno_fast_math))<br>
+ CmdArgs.push_back("-ffast-math");<br>
if (Arg *A = Args.getLastArg(options::OPT_ffinite_math_only,<br>
options::OPT_fno_fast_math))<br>
if (A->getOption().matches(options::OPT_ffinite_math_only))<br>
@@ -3334,7 +3298,7 @@ void Clang::ConstructJob(Compilation &C,<br>
}<br>
<br>
// FIXME: Handle -mtune=.<br>
- (void) Args.hasArg(options::OPT_mtune_EQ);<br>
+ (void)Args.hasArg(options::OPT_mtune_EQ);<br>
<br>
if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {<br>
CmdArgs.push_back("-mcode-model");<br>
@@ -3357,7 +3321,7 @@ void Clang::ConstructJob(Compilation &C,<br>
getTargetFeatures(D, Triple, Args, CmdArgs, false);<br>
<br>
// Add target specific flags.<br>
- switch(getToolChain().getArch()) {<br>
+ switch (getToolChain().getArch()) {<br>
default:<br>
break;<br>
<br>
@@ -3420,13 +3384,12 @@ void Clang::ConstructJob(Compilation &C,<br>
types::ID InputType = Input.getType();<br>
if (!Args.hasArg(options::OPT_fallow_unsupported)) {<br>
Arg *Unsupported;<br>
- if (types::isCXX(InputType) &&<br>
- getToolChain().getTriple().isOSDarwin() &&<br>
+ if (types::isCXX(InputType) && getToolChain().getTriple().isOSDarwin() &&<br>
getToolChain().getArch() == llvm::Triple::x86) {<br>
if ((Unsupported = Args.getLastArg(options::OPT_fapple_kext)) ||<br>
(Unsupported = Args.getLastArg(options::OPT_mkernel)))<br>
D.Diag(diag::err_drv_clang_unsupported_opt_cxx_darwin_i386)<br>
- << Unsupported->getOption().getName();<br>
+ << Unsupported->getOption().getName();<br>
}<br>
}<br>
<br>
@@ -3434,16 +3397,16 @@ void Clang::ConstructJob(Compilation &C,<br>
Args.AddLastArg(CmdArgs, options::OPT_H);<br>
if (D.CCPrintHeaders && !D.CCGenDiagnostics) {<br>
CmdArgs.push_back("-header-include-file");<br>
- CmdArgs.push_back(D.CCPrintHeadersFilename ?<br>
- D.CCPrintHeadersFilename : "-");<br>
+ CmdArgs.push_back(D.CCPrintHeadersFilename ? D.CCPrintHeadersFilename<br>
+ : "-");<br>
}<br>
Args.AddLastArg(CmdArgs, options::OPT_P);<br>
Args.AddLastArg(CmdArgs, options::OPT_print_ivar_layout);<br>
<br>
if (D.CCLogDiagnostics && !D.CCGenDiagnostics) {<br>
CmdArgs.push_back("-diagnostic-log-file");<br>
- CmdArgs.push_back(D.CCLogDiagnosticsFilename ?<br>
- D.CCLogDiagnosticsFilename : "-");<br>
+ CmdArgs.push_back(D.CCLogDiagnosticsFilename ? D.CCLogDiagnosticsFilename<br>
+ : "-");<br>
}<br>
<br>
// Use the last option from "-g" group. "-gline-tables-only" and "-gdwarf-x"<br>
@@ -3524,8 +3487,8 @@ void Clang::ConstructJob(Compilation &C,<br>
CmdArgs.push_back("-ffunction-sections");<br>
}<br>
<br>
- if (Args.hasFlag(options::OPT_fdata_sections,<br>
- options::OPT_fno_data_sections, UseSeparateSections)) {<br>
+ if (Args.hasFlag(options::OPT_fdata_sections, options::OPT_fno_data_sections,<br>
+ UseSeparateSections)) {<br>
CmdArgs.push_back("-fdata-sections");<br>
}<br>
<br>
@@ -3540,7 +3503,8 @@ void Clang::ConstructJob(Compilation &C,<br>
(Args.hasArg(options::OPT_fprofile_instr_use) ||<br>
Args.hasArg(options::OPT_fprofile_instr_use_EQ)))<br>
D.Diag(diag::err_drv_argument_not_allowed_with)<br>
- << "-fprofile-instr-generate" << "-fprofile-instr-use";<br>
+ << "-fprofile-instr-generate"<br>
+ << "-fprofile-instr-use";<br>
<br>
if (Arg *A = Args.getLastArg(options::OPT_fprofile_instr_generate_EQ))<br>
A->render(Args, CmdArgs);<br>
@@ -3564,7 +3528,8 @@ void Clang::ConstructJob(Compilation &C,<br>
!(Args.hasArg(options::OPT_fprofile_instr_generate) ||<br>
Args.hasArg(options::OPT_fprofile_instr_generate_EQ)))<br>
D.Diag(diag::err_drv_argument_only_allowed_with)<br>
- << "-fcoverage-mapping" << "-fprofile-instr-generate";<br>
+ << "-fcoverage-mapping"<br>
+ << "-fprofile-instr-generate";<br>
<br>
if (Args.hasArg(options::OPT_fcoverage_mapping))<br>
CmdArgs.push_back("-fcoverage-mapping");<br>
@@ -3596,7 +3561,7 @@ void Clang::ConstructJob(Compilation &C,<br>
CmdArgs.push_back("-nobuiltininc");<br>
} else {<br>
if (Args.hasArg(options::OPT_nostdlibinc))<br>
- CmdArgs.push_back("-nostdsysteminc");<br>
+ CmdArgs.push_back("-nostdsysteminc");<br>
Args.AddLastArg(CmdArgs, options::OPT_nostdincxx);<br>
Args.AddLastArg(CmdArgs, options::OPT_nobuiltininc);<br>
}<br>
@@ -3640,8 +3605,8 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
if (const Arg *A = Args.getLastArg(options::OPT_ccc_objcmt_migrate)) {<br>
if (ARCMTEnabled) {<br>
- D.Diag(diag::err_drv_argument_not_allowed_with)<br>
- << A->getAsString(Args) << "-ccc-arcmt-migrate";<br>
+ D.Diag(diag::err_drv_argument_not_allowed_with) << A->getAsString(Args)<br>
+ << "-ccc-arcmt-migrate";<br>
}<br>
CmdArgs.push_back("-mt-migrate-directory");<br>
CmdArgs.push_back(A->getValue());<br>
@@ -3744,8 +3709,8 @@ void Clang::ConstructJob(Compilation &C,<br>
// eventually we want to do all the standard defaulting here instead of<br>
// splitting it between the driver and clang -cc1.<br>
if (!types::isCXX(InputType))<br>
- Args.AddAllArgsTranslated(CmdArgs, options::OPT_std_default_EQ,<br>
- "-std=", /*Joined=*/true);<br>
+ Args.AddAllArgsTranslated(CmdArgs, options::OPT_std_default_EQ, "-std=",<br>
+ /*Joined=*/true);<br>
else if (IsWindowsMSVC)<br>
ImplyVCPPCXXVer = true;<br>
<br>
@@ -3834,7 +3799,6 @@ void Clang::ConstructJob(Compilation &C,<br>
CmdArgs.push_back("-Wlarge-by-value-copy=64"); // default value<br>
}<br>
<br>
-<br>
if (Args.hasArg(options::OPT_relocatable_pch))<br>
CmdArgs.push_back("-relocatable-pch");<br>
<br>
@@ -3916,8 +3880,7 @@ void Clang::ConstructJob(Compilation &C,<br>
Args.AddLastArg(CmdArgs, options::OPT_fno_standalone_debug);<br>
Args.AddLastArg(CmdArgs, options::OPT_fno_operator_names);<br>
// AltiVec language extensions aren't relevant for assembling.<br>
- if (!isa<PreprocessJobAction>(JA) ||<br>
- Output.getType() != types::TY_PP_Asm)<br>
+ if (!isa<PreprocessJobAction>(JA) || Output.getType() != types::TY_PP_Asm)<br>
Args.AddLastArg(CmdArgs, options::OPT_faltivec);<br>
Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_show_template_tree);<br>
Args.AddLastArg(CmdArgs, options::OPT_fno_elide_type);<br>
@@ -3979,8 +3942,7 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
// -fno-strict-overflow implies -fwrapv if it isn't disabled, but<br>
// -fstrict-overflow won't turn off an explicitly enabled -fwrapv.<br>
- if (Arg *A = Args.getLastArg(options::OPT_fwrapv,<br>
- options::OPT_fno_wrapv)) {<br>
+ if (Arg *A = Args.getLastArg(options::OPT_fwrapv, options::OPT_fno_wrapv)) {<br>
if (A->getOption().matches(options::OPT_fwrapv))<br>
CmdArgs.push_back("-fwrapv");<br>
} else if (Arg *A = Args.getLastArg(options::OPT_fstrict_overflow,<br>
@@ -4000,7 +3962,6 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
Args.AddLastArg(CmdArgs, options::OPT_pthread);<br>
<br>
-<br>
// -stack-protector=0 is default.<br>
unsigned StackProtectorLevel = 0;<br>
if (getToolChain().getSanitizerArgs().needsSafeStackRt()) {<br>
@@ -4009,19 +3970,20 @@ void Clang::ConstructJob(Compilation &C,<br>
Args.ClaimAllArgs(options::OPT_fstack_protector_strong);<br>
Args.ClaimAllArgs(options::OPT_fstack_protector);<br>
} else if (Arg *A = Args.getLastArg(options::OPT_fno_stack_protector,<br>
- options::OPT_fstack_protector_all,<br>
- options::OPT_fstack_protector_strong,<br>
- options::OPT_fstack_protector)) {<br>
+ options::OPT_fstack_protector_all,<br>
+ options::OPT_fstack_protector_strong,<br>
+ options::OPT_fstack_protector)) {<br>
if (A->getOption().matches(options::OPT_fstack_protector)) {<br>
- StackProtectorLevel = std::max<unsigned>(LangOptions::SSPOn,<br>
- getToolChain().GetDefaultStackProtectorLevel(KernelOrKext));<br>
+ StackProtectorLevel = std::max<unsigned>(<br>
+ LangOptions::SSPOn,<br>
+ getToolChain().GetDefaultStackProtectorLevel(KernelOrKext));<br>
} else if (A->getOption().matches(options::OPT_fstack_protector_strong))<br>
StackProtectorLevel = LangOptions::SSPStrong;<br>
else if (A->getOption().matches(options::OPT_fstack_protector_all))<br>
StackProtectorLevel = LangOptions::SSPReq;<br>
} else {<br>
StackProtectorLevel =<br>
- getToolChain().GetDefaultStackProtectorLevel(KernelOrKext);<br>
+ getToolChain().GetDefaultStackProtectorLevel(KernelOrKext);<br>
}<br>
if (StackProtectorLevel) {<br>
CmdArgs.push_back("-stack-protector");<br>
@@ -4048,7 +4010,7 @@ void Clang::ConstructJob(Compilation &C,<br>
CmdArgs.push_back("-force-align-stack");<br>
}<br>
if (!Args.hasFlag(options::OPT_mno_stackrealign, options::OPT_mstackrealign,<br>
- false)) {<br>
+ false)) {<br>
CmdArgs.push_back(Args.MakeArgString("-mstackrealign"));<br>
}<br>
<br>
@@ -4125,12 +4087,12 @@ void Clang::ConstructJob(Compilation &C,<br>
// -fblocks=0 is default.<br>
if (Args.hasFlag(options::OPT_fblocks, options::OPT_fno_blocks,<br>
getToolChain().IsBlocksDefault()) ||<br>
- (Args.hasArg(options::OPT_fgnu_runtime) &&<br>
- Args.hasArg(options::OPT_fobjc_nonfragile_abi) &&<br>
- !Args.hasArg(options::OPT_fno_blocks))) {<br>
+ (Args.hasArg(options::OPT_fgnu_runtime) &&<br>
+ Args.hasArg(options::OPT_fobjc_nonfragile_abi) &&<br>
+ !Args.hasArg(options::OPT_fno_blocks))) {<br>
CmdArgs.push_back("-fblocks");<br>
<br>
- if (!Args.hasArg(options::OPT_fgnu_runtime) &&<br>
+ if (!Args.hasArg(options::OPT_fgnu_runtime) &&<br>
!getToolChain().hasBlocksRuntime())<br>
CmdArgs.push_back("-fblocks-runtime-optional");<br>
}<br>
@@ -4140,9 +4102,8 @@ void Clang::ConstructJob(Compilation &C,<br>
// C++/Objective-C++ programs.<br>
bool HaveModules = false;<br>
if (Args.hasFlag(options::OPT_fmodules, options::OPT_fno_modules, false)) {<br>
- bool AllowedInCXX = Args.hasFlag(options::OPT_fcxx_modules,<br>
- options::OPT_fno_cxx_modules,<br>
- true);<br>
+ bool AllowedInCXX = Args.hasFlag(options::OPT_fcxx_modules,<br>
+ options::OPT_fno_cxx_modules, true);<br>
if (AllowedInCXX || !types::isCXX(InputType)) {<br>
CmdArgs.push_back("-fmodules");<br>
HaveModules = true;<br>
@@ -4159,16 +4120,14 @@ void Clang::ConstructJob(Compilation &C,<br>
// -fmodules-decluse checks that modules used are declared so (off by<br>
// default).<br>
if (Args.hasFlag(options::OPT_fmodules_decluse,<br>
- options::OPT_fno_modules_decluse,<br>
- false)) {<br>
+ options::OPT_fno_modules_decluse, false)) {<br>
CmdArgs.push_back("-fmodules-decluse");<br>
}<br>
<br>
// -fmodules-strict-decluse is like -fmodule-decluse, but also checks that<br>
// all #included headers are part of modules.<br>
if (Args.hasFlag(options::OPT_fmodules_strict_decluse,<br>
- options::OPT_fno_modules_strict_decluse,<br>
- false)) {<br>
+ options::OPT_fno_modules_strict_decluse, false)) {<br>
CmdArgs.push_back("-fmodules-strict-decluse");<br>
}<br>
<br>
@@ -4263,14 +4222,12 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
// -faccess-control is default.<br>
if (Args.hasFlag(options::OPT_fno_access_control,<br>
- options::OPT_faccess_control,<br>
- false))<br>
+ options::OPT_faccess_control, false))<br>
CmdArgs.push_back("-fno-access-control");<br>
<br>
// -felide-constructors is the default.<br>
if (Args.hasFlag(options::OPT_fno_elide_constructors,<br>
- options::OPT_felide_constructors,<br>
- false))<br>
+ options::OPT_felide_constructors, false))<br>
CmdArgs.push_back("-fno-elide-constructors");<br>
<br>
ToolChain::RTTIMode RTTIMode = getToolChain().getRTTIMode();<br>
@@ -4281,10 +4238,8 @@ void Clang::ConstructJob(Compilation &C,<br>
CmdArgs.push_back("-fno-rtti");<br>
<br>
// -fshort-enums=0 is default for all architectures except Hexagon.<br>
- if (Args.hasFlag(options::OPT_fshort_enums,<br>
- options::OPT_fno_short_enums,<br>
- getToolChain().getArch() ==<br>
- llvm::Triple::hexagon))<br>
+ if (Args.hasFlag(options::OPT_fshort_enums, options::OPT_fno_short_enums,<br>
+ getToolChain().getArch() == llvm::Triple::hexagon))<br>
CmdArgs.push_back("-fshort-enums");<br>
<br>
// -fsigned-char is default.<br>
@@ -4303,8 +4258,8 @@ void Clang::ConstructJob(Compilation &C,<br>
if (!Args.hasFlag(options::OPT_fuse_cxa_atexit,<br>
options::OPT_fno_use_cxa_atexit,<br>
!IsWindowsCygnus && !IsWindowsGNU &&<br>
- getToolChain().getArch() != llvm::Triple::hexagon &&<br>
- getToolChain().getArch() != llvm::Triple::xcore) ||<br>
+ getToolChain().getArch() != llvm::Triple::hexagon &&<br>
+ getToolChain().getArch() != llvm::Triple::xcore) ||<br>
KernelOrKext)<br>
CmdArgs.push_back("-fno-use-cxa-atexit");<br>
<br>
@@ -4319,11 +4274,11 @@ void Clang::ConstructJob(Compilation &C,<br>
CmdArgs.push_back("-fuse-line-directives");<br>
<br>
// -fms-compatibility=0 is default.<br>
- if (Args.hasFlag(options::OPT_fms_compatibility,<br>
+ if (Args.hasFlag(options::OPT_fms_compatibility,<br>
options::OPT_fno_ms_compatibility,<br>
- (IsWindowsMSVC && Args.hasFlag(options::OPT_fms_extensions,<br>
- options::OPT_fno_ms_extensions,<br>
- true))))<br>
+ (IsWindowsMSVC &&<br>
+ Args.hasFlag(options::OPT_fms_extensions,<br>
+ options::OPT_fno_ms_extensions, true))))<br>
CmdArgs.push_back("-fms-compatibility");<br>
<br>
// -fms-compatibility-version=18.00 is default.<br>
@@ -4365,8 +4320,7 @@ void Clang::ConstructJob(Compilation &C,<br>
options::OPT_fno_gnu_keywords))<br>
A->render(Args, CmdArgs);<br>
<br>
- if (Args.hasFlag(options::OPT_fgnu89_inline,<br>
- options::OPT_fno_gnu89_inline,<br>
+ if (Args.hasFlag(options::OPT_fgnu89_inline, options::OPT_fno_gnu89_inline,<br>
false))<br>
CmdArgs.push_back("-fgnu89-inline");<br>
<br>
@@ -4386,7 +4340,7 @@ void Clang::ConstructJob(Compilation &C,<br>
if (!Args.hasFlag(options::OPT_fobjc_legacy_dispatch,<br>
options::OPT_fno_objc_legacy_dispatch,<br>
objcRuntime.isLegacyDispatchDefaultForArch(<br>
- getToolChain().getArch()))) {<br>
+ getToolChain().getArch()))) {<br>
if (getToolChain().UseObjCMixedDispatch())<br>
CmdArgs.push_back("-fobjc-dispatch-method=mixed");<br>
else<br>
@@ -4403,12 +4357,12 @@ void Clang::ConstructJob(Compilation &C,<br>
objcRuntime.getKind() == ObjCRuntime::FragileMacOSX &&<br>
objcRuntime.isNeXTFamily())<br>
CmdArgs.push_back("-fobjc-subscripting-legacy-runtime");<br>
-<br>
+<br>
// -fencode-extended-block-signature=1 is default.<br>
if (getToolChain().IsEncodeExtendedBlockSignatureDefault()) {<br>
CmdArgs.push_back("-fencode-extended-block-signature");<br>
}<br>
-<br>
+<br>
// Allow -fno-objc-arr to trump -fobjc-arr/-fobjc-arc.<br>
// NOTE: This logic is duplicated in ToolChains.cpp.<br>
bool ARC = isObjCAutoRefCount(Args);<br>
@@ -4447,14 +4401,12 @@ void Clang::ConstructJob(Compilation &C,<br>
GCArg = Args.getLastArg(options::OPT_fobjc_gc);<br>
if (GCArg) {<br>
if (ARC) {<br>
- D.Diag(diag::err_drv_objc_gc_arr)<br>
- << GCArg->getAsString(Args);<br>
+ D.Diag(diag::err_drv_objc_gc_arr) << GCArg->getAsString(Args);<br>
} else if (getToolChain().SupportsObjCGC()) {<br>
GCArg->render(Args, CmdArgs);<br>
} else {<br>
// FIXME: We should move this to a hard error.<br>
- D.Diag(diag::warn_drv_objc_gc_unsupported)<br>
- << GCArg->getAsString(Args);<br>
+ D.Diag(diag::warn_drv_objc_gc_unsupported) << GCArg->getAsString(Args);<br>
}<br>
}<br>
<br>
@@ -4464,8 +4416,8 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
// Handle GCC-style exception args.<br>
if (!C.getDriver().IsCLMode())<br>
- addExceptionArgs(Args, InputType, getToolChain(), KernelOrKext,<br>
- objcRuntime, CmdArgs);<br>
+ addExceptionArgs(Args, InputType, getToolChain(), KernelOrKext, objcRuntime,<br>
+ CmdArgs);<br>
<br>
if (getToolChain().UseSjLjExceptions())<br>
CmdArgs.push_back("-fsjlj-exceptions");<br>
@@ -4497,8 +4449,7 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
// -fno-pascal-strings is default, only pass non-default.<br>
if (Args.hasFlag(options::OPT_fpascal_strings,<br>
- options::OPT_fno_pascal_strings,<br>
- false))<br>
+ options::OPT_fno_pascal_strings, false))<br>
CmdArgs.push_back("-fpascal-strings");<br>
<br>
// Honor -fpack-struct= and -fpack-struct, if given. Note that<br>
@@ -4542,28 +4493,27 @@ void Clang::ConstructJob(Compilation &C,<br>
if (!Args.hasFlag(options::OPT_fsigned_bitfields,<br>
options::OPT_funsigned_bitfields))<br>
D.Diag(diag::warn_drv_clang_unsupported)<br>
- << Args.getLastArg(options::OPT_funsigned_bitfields)->getAsString(Args);<br>
+ << Args.getLastArg(options::OPT_funsigned_bitfields)->getAsString(Args);<br>
<br>
// -fsigned-bitfields is default, and clang doesn't support -fno-for-scope.<br>
- if (!Args.hasFlag(options::OPT_ffor_scope,<br>
- options::OPT_fno_for_scope))<br>
+ if (!Args.hasFlag(options::OPT_ffor_scope, options::OPT_fno_for_scope))<br>
D.Diag(diag::err_drv_clang_unsupported)<br>
- << Args.getLastArg(options::OPT_fno_for_scope)->getAsString(Args);<br>
+ << Args.getLastArg(options::OPT_fno_for_scope)->getAsString(Args);<br>
<br>
// -finput_charset=UTF-8 is default. Reject others<br>
- if (Arg *inputCharset = Args.getLastArg(<br>
- options::OPT_finput_charset_EQ)) {<br>
- StringRef value = inputCharset->getValue();<br>
- if (value != "UTF-8")<br>
- D.Diag(diag::err_drv_invalid_value) << inputCharset->getAsString(Args) << value;<br>
+ if (Arg *inputCharset = Args.getLastArg(options::OPT_finput_charset_EQ)) {<br>
+ StringRef value = inputCharset->getValue();<br>
+ if (value != "UTF-8")<br>
+ D.Diag(diag::err_drv_invalid_value) << inputCharset->getAsString(Args)<br>
+ << value;<br>
}<br>
<br>
// -fexec_charset=UTF-8 is default. Reject others<br>
- if (Arg *execCharset = Args.getLastArg(<br>
- options::OPT_fexec_charset_EQ)) {<br>
- StringRef value = execCharset->getValue();<br>
- if (value != "UTF-8")<br>
- D.Diag(diag::err_drv_invalid_value) << execCharset->getAsString(Args) << value;<br>
+ if (Arg *execCharset = Args.getLastArg(options::OPT_fexec_charset_EQ)) {<br>
+ StringRef value = execCharset->getValue();<br>
+ if (value != "UTF-8")<br>
+ D.Diag(diag::err_drv_invalid_value) << execCharset->getAsString(Args)<br>
+ << value;<br>
}<br>
<br>
// -fcaret-diagnostics is default.<br>
@@ -4582,22 +4532,21 @@ void Clang::ConstructJob(Compilation &C,<br>
CmdArgs.push_back("-fdiagnostics-show-option");<br>
<br>
if (const Arg *A =<br>
- Args.getLastArg(options::OPT_fdiagnostics_show_category_EQ)) {<br>
+ Args.getLastArg(options::OPT_fdiagnostics_show_category_EQ)) {<br>
CmdArgs.push_back("-fdiagnostics-show-category");<br>
CmdArgs.push_back(A->getValue());<br>
}<br>
<br>
- if (const Arg *A =<br>
- Args.getLastArg(options::OPT_fdiagnostics_format_EQ)) {<br>
+ if (const Arg *A = Args.getLastArg(options::OPT_fdiagnostics_format_EQ)) {<br>
CmdArgs.push_back("-fdiagnostics-format");<br>
CmdArgs.push_back(A->getValue());<br>
}<br>
<br>
if (Arg *A = Args.getLastArg(<br>
- options::OPT_fdiagnostics_show_note_include_stack,<br>
- options::OPT_fno_diagnostics_show_note_include_stack)) {<br>
+ options::OPT_fdiagnostics_show_note_include_stack,<br>
+ options::OPT_fno_diagnostics_show_note_include_stack)) {<br>
if (A->getOption().matches(<br>
- options::OPT_fdiagnostics_show_note_include_stack))<br>
+ options::OPT_fdiagnostics_show_note_include_stack))<br>
CmdArgs.push_back("-fdiagnostics-show-note-include-stack");<br>
else<br>
CmdArgs.push_back("-fno-diagnostics-show-note-include-stack");<br>
@@ -4635,7 +4584,7 @@ void Clang::ConstructJob(Compilation &C,<br>
ShowColors = Colors_Auto;<br>
else<br>
getToolChain().getDriver().Diag(diag::err_drv_clang_unsupported)<br>
- << ("-fdiagnostics-color=" + value).str();<br>
+ << ("-fdiagnostics-color=" + value).str();<br>
}<br>
}<br>
if (ShowColors == Colors_On ||<br>
@@ -4649,8 +4598,7 @@ void Clang::ConstructJob(Compilation &C,<br>
options::OPT_fno_show_source_location))<br>
CmdArgs.push_back("-fno-show-source-location");<br>
<br>
- if (!Args.hasFlag(options::OPT_fshow_column,<br>
- options::OPT_fno_show_column,<br>
+ if (!Args.hasFlag(options::OPT_fshow_column, options::OPT_fno_show_column,<br>
true))<br>
CmdArgs.push_back("-fno-show-column");<br>
<br>
@@ -4658,7 +4606,6 @@ void Clang::ConstructJob(Compilation &C,<br>
options::OPT_fno_spell_checking))<br>
CmdArgs.push_back("-fno-spell-checking");<br>
<br>
-<br>
// -fno-asm-blocks is default.<br>
if (Args.hasFlag(options::OPT_fasm_blocks, options::OPT_fno_asm_blocks,<br>
false))<br>
@@ -4673,16 +4620,16 @@ void Clang::ConstructJob(Compilation &C,<br>
// selected. For optimization levels that want vectorization we use the alias<br>
// option to simplify the hasFlag logic.<br>
bool EnableVec = shouldEnableVectorizerAtOLevel(Args, false);<br>
- OptSpecifier VectorizeAliasOption = EnableVec ? options::OPT_O_Group :<br>
- options::OPT_fvectorize;<br>
+ OptSpecifier VectorizeAliasOption =<br>
+ EnableVec ? options::OPT_O_Group : options::OPT_fvectorize;<br>
if (Args.hasFlag(options::OPT_fvectorize, VectorizeAliasOption,<br>
options::OPT_fno_vectorize, EnableVec))<br>
CmdArgs.push_back("-vectorize-loops");<br>
<br>
// -fslp-vectorize is enabled based on the optimization level selected.<br>
bool EnableSLPVec = shouldEnableVectorizerAtOLevel(Args, true);<br>
- OptSpecifier SLPVectAliasOption = EnableSLPVec ? options::OPT_O_Group :<br>
- options::OPT_fslp_vectorize;<br>
+ OptSpecifier SLPVectAliasOption =<br>
+ EnableSLPVec ? options::OPT_O_Group : options::OPT_fslp_vectorize;<br>
if (Args.hasFlag(options::OPT_fslp_vectorize, SLPVectAliasOption,<br>
options::OPT_fno_slp_vectorize, EnableSLPVec))<br>
CmdArgs.push_back("-vectorize-slp");<br>
@@ -4717,16 +4664,16 @@ void Clang::ConstructJob(Compilation &C,<br>
options::OPT_fno_apple_pragma_pack, false))<br>
CmdArgs.push_back("-fapple-pragma-pack");<br>
<br>
- // le32-specific flags:<br>
+ // le32-specific flags:<br>
// -fno-math-builtin: clang should not convert math builtins to intrinsics<br>
// by default.<br>
if (getToolChain().getArch() == llvm::Triple::le32) {<br>
CmdArgs.push_back("-fno-math-builtin");<br>
}<br>
<br>
- // Default to -fno-builtin-str{cat,cpy} on Darwin for ARM.<br>
- //<br>
- // FIXME: This is disabled until clang -cc1 supports -fno-builtin-foo. PR4941.<br>
+// Default to -fno-builtin-str{cat,cpy} on Darwin for ARM.<br>
+//<br>
+// FIXME: This is disabled until clang -cc1 supports -fno-builtin-foo. PR4941.<br>
#if 0<br>
if (getToolChain().getTriple().isOSDarwin() &&<br>
(getToolChain().getArch() == llvm::Triple::arm ||<br>
@@ -4758,7 +4705,7 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
Args.AddLastArg(CmdArgs, options::OPT_dM);<br>
Args.AddLastArg(CmdArgs, options::OPT_dD);<br>
-<br>
+<br>
// Handle serialized diagnostics.<br>
if (Arg *A = Args.getLastArg(options::OPT__serialize_diags)) {<br>
CmdArgs.push_back("-serialize-diagnostic-file");<br>
@@ -4840,9 +4787,9 @@ void Clang::ConstructJob(Compilation &C,<br>
// Add the split debug info name to the command lines here so we<br>
// can propagate it to the backend.<br>
bool SplitDwarf = Args.hasArg(options::OPT_gsplit_dwarf) &&<br>
- getToolChain().getTriple().isOSLinux() &&<br>
- (isa<AssembleJobAction>(JA) || isa<CompileJobAction>(JA) ||<br>
- isa<BackendJobAction>(JA));<br>
+ getToolChain().getTriple().isOSLinux() &&<br>
+ (isa<AssembleJobAction>(JA) || isa<CompileJobAction>(JA) ||<br>
+ isa<BackendJobAction>(JA));<br>
const char *SplitDwarfOut;<br>
if (SplitDwarf) {<br>
CmdArgs.push_back("-split-dwarf-file");<br>
@@ -4862,7 +4809,6 @@ void Clang::ConstructJob(Compilation &C,<br>
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));<br>
}<br>
<br>
-<br>
// Handle the debug info splitting at object creation time if we're<br>
// creating an object.<br>
// TODO: Currently only works on linux with newer objcopy.<br>
@@ -4871,8 +4817,8 @@ void Clang::ConstructJob(Compilation &C,<br>
<br>
if (Arg *A = Args.getLastArg(options::OPT_pg))<br>
if (Args.hasArg(options::OPT_fomit_frame_pointer))<br>
- D.Diag(diag::err_drv_argument_not_allowed_with)<br>
- << "-fomit-frame-pointer" << A->getAsString(Args);<br>
+ D.Diag(diag::err_drv_argument_not_allowed_with) << "-fomit-frame-pointer"<br>
+ << A->getAsString(Args);<br>
<br>
// Claim some arguments which clang supports automatically.<br>
<br>
@@ -4897,9 +4843,9 @@ ObjCRuntime Clang::AddObjCRuntimeArgs(co<br>
ArgStringList &cmdArgs,<br>
RewriteKind rewriteKind) const {<br>
// Look for the controlling runtime option.<br>
- Arg *runtimeArg = args.getLastArg(options::OPT_fnext_runtime,<br>
- options::OPT_fgnu_runtime,<br>
- options::OPT_fobjc_runtime_EQ);<br>
+ Arg *runtimeArg =<br>
+ args.getLastArg(options::OPT_fnext_runtime, options::OPT_fgnu_runtime,<br>
+ options::OPT_fobjc_runtime_EQ);<br>
<br>
// Just forward -fobjc-runtime= to the frontend. This supercedes<br>
// options about fragility.<br>
@@ -4909,7 +4855,7 @@ ObjCRuntime Clang::AddObjCRuntimeArgs(co<br>
StringRef value = runtimeArg->getValue();<br>
if (runtime.tryParse(value)) {<br>
getToolChain().getDriver().Diag(diag::err_drv_unknown_objc_runtime)<br>
- << value;<br>
+ << value;<br>
}<br>
<br>
runtimeArg->render(args, cmdArgs);<br>
@@ -4932,26 +4878,25 @@ ObjCRuntime Clang::AddObjCRuntimeArgs(co<br>
else if (value == "3")<br>
objcABIVersion = 3;<br>
else<br>
- getToolChain().getDriver().Diag(diag::err_drv_clang_unsupported)<br>
- << value;<br>
+ getToolChain().getDriver().Diag(diag::err_drv_clang_unsupported) << value;<br>
} else {<br>
// Otherwise, determine if we are using the non-fragile ABI.<br>
- bool nonFragileABIIsDefault =<br>
- (rewriteKind == RK_NonFragile ||<br>
- (rewriteKind == RK_None &&<br>
- getToolChain().IsObjCNonFragileABIDefault()));<br>
+ bool nonFragileABIIsDefault =<br>
+ (rewriteKind == RK_NonFragile ||<br>
+ (rewriteKind == RK_None &&<br>
+ getToolChain().IsObjCNonFragileABIDefault()));<br>
if (args.hasFlag(options::OPT_fobjc_nonfragile_abi,<br>
options::OPT_fno_objc_nonfragile_abi,<br>
nonFragileABIIsDefault)) {<br>
- // Determine the non-fragile ABI version to use.<br>
+// Determine the non-fragile ABI version to use.<br>
#ifdef DISABLE_DEFAULT_NONFRAGILEABI_TWO<br>
unsigned nonFragileABIVersion = 1;<br>
#else<br>
unsigned nonFragileABIVersion = 2;<br>
#endif<br>
<br>
- if (Arg *abiArg = args.getLastArg(<br>
- options::OPT_fobjc_nonfragile_abi_version_EQ)) {<br>
+ if (Arg *abiArg =<br>
+ args.getLastArg(options::OPT_fobjc_nonfragile_abi_version_EQ)) {<br>
StringRef value = abiArg->getValue();<br>
if (value == "1")<br>
nonFragileABIVersion = 1;<br>
@@ -4959,7 +4904,7 @@ ObjCRuntime Clang::AddObjCRuntimeArgs(co<br>
nonFragileABIVersion = 2;<br>
else<br>
getToolChain().getDriver().Diag(diag::err_drv_clang_unsupported)<br>
- << value;<br>
+ << value;<br>
}<br>
<br>
objcABIVersion = 1 + nonFragileABIVersion;<br>
@@ -4988,30 +4933,30 @@ ObjCRuntime Clang::AddObjCRuntimeArgs(co<br>
break;<br>
}<br>
<br>
- // -fnext-runtime<br>
+ // -fnext-runtime<br>
} else if (runtimeArg->getOption().matches(options::OPT_fnext_runtime)) {<br>
// On Darwin, make this use the default behavior for the toolchain.<br>
if (getToolChain().getTriple().isOSDarwin()) {<br>
runtime = getToolChain().getDefaultObjCRuntime(isNonFragile);<br>
<br>
- // Otherwise, build for a generic macosx port.<br>
+ // Otherwise, build for a generic macosx port.<br>
} else {<br>
runtime = ObjCRuntime(ObjCRuntime::MacOSX, VersionTuple());<br>
}<br>
<br>
- // -fgnu-runtime<br>
+ // -fgnu-runtime<br>
} else {<br>
assert(runtimeArg->getOption().matches(options::OPT_fgnu_runtime));<br>
// Legacy behaviour is to target the gnustep runtime if we are i<br>
// non-fragile mode or the GCC runtime in fragile mode.<br>
if (isNonFragile)<br>
- runtime = ObjCRuntime(ObjCRuntime::GNUstep, VersionTuple(1,6));<br>
+ runtime = ObjCRuntime(ObjCRuntime::GNUstep, VersionTuple(1, 6));<br>
else<br>
runtime = ObjCRuntime(ObjCRuntime::GCC, VersionTuple());<br>
}<br>
<br>
- cmdArgs.push_back(args.MakeArgString(<br>
- "-fobjc-runtime=" + runtime.getAsString()));<br>
+ cmdArgs.push_back(<br>
+ args.MakeArgString("-fobjc-runtime=" + runtime.getAsString()));<br>
return runtime;<br>
}<br>
<br>
@@ -5038,14 +4983,22 @@ struct EHFlags {<br>
/// The default is /EHs-c-, meaning cleanups are disabled.<br>
static EHFlags parseClangCLEHFlags(const Driver &D, const ArgList &Args) {<br>
EHFlags EH;<br>
- std::vector<std::string> EHArgs = Args.getAllArgValues(options::OPT__SLASH_EH);<br>
+ std::vector<std::string> EHArgs =<br>
+ Args.getAllArgValues(options::OPT__SLASH_EH);<br>
for (auto EHVal : EHArgs) {<br>
for (size_t I = 0, E = EHVal.size(); I != E; ++I) {<br>
switch (EHVal[I]) {<br>
- case 'a': EH.Asynch = maybeConsumeDash(EHVal, I); continue;<br>
- case 'c': EH.NoExceptC = maybeConsumeDash(EHVal, I); continue;<br>
- case 's': EH.Synch = maybeConsumeDash(EHVal, I); continue;<br>
- default: break;<br>
+ case 'a':<br>
+ EH.Asynch = maybeConsumeDash(EHVal, I);<br>
+ continue;<br>
+ case 'c':<br>
+ EH.NoExceptC = maybeConsumeDash(EHVal, I);<br>
+ continue;<br>
+ case 's':<br>
+ EH.Synch = maybeConsumeDash(EHVal, I);<br>
+ continue;<br>
+ default:<br>
+ break;<br>
}<br>
D.Diag(clang::diag::err_drv_invalid_value) << "/EH" << EHVal;<br>
break;<br>
@@ -5065,33 +5018,33 @@ void Clang::AddClangCLArgs(const ArgList<br>
if (Arg *A = Args.getLastArg(options::OPT__SLASH_M_Group))<br>
RTOptionID = A->getOption().getID();<br>
<br>
- switch(RTOptionID) {<br>
- case options::OPT__SLASH_MD:<br>
- if (Args.hasArg(options::OPT__SLASH_LDd))<br>
- CmdArgs.push_back("-D_DEBUG");<br>
- CmdArgs.push_back("-D_MT");<br>
- CmdArgs.push_back("-D_DLL");<br>
- CmdArgs.push_back("--dependent-lib=msvcrt");<br>
- break;<br>
- case options::OPT__SLASH_MDd:<br>
+ switch (RTOptionID) {<br>
+ case options::OPT__SLASH_MD:<br>
+ if (Args.hasArg(options::OPT__SLASH_LDd))<br>
CmdArgs.push_back("-D_DEBUG");<br>
- CmdArgs.push_back("-D_MT");<br>
- CmdArgs.push_back("-D_DLL");<br>
- CmdArgs.push_back("--dependent-lib=msvcrtd");<br>
- break;<br>
- case options::OPT__SLASH_MT:<br>
- if (Args.hasArg(options::OPT__SLASH_LDd))<br>
- CmdArgs.push_back("-D_DEBUG");<br>
- CmdArgs.push_back("-D_MT");<br>
- CmdArgs.push_back("--dependent-lib=libcmt");<br>
- break;<br>
- case options::OPT__SLASH_MTd:<br>
+ CmdArgs.push_back("-D_MT");<br>
+ CmdArgs.push_back("-D_DLL");<br>
+ CmdArgs.push_back("--dependent-lib=msvcrt");<br>
+ break;<br>
+ case options::OPT__SLASH_MDd:<br>
+ CmdArgs.push_back("-D_DEBUG");<br>
+ CmdArgs.push_back("-D_MT");<br>
+ CmdArgs.push_back("-D_DLL");<br>
+ CmdArgs.push_back("--dependent-lib=msvcrtd");<br>
+ break;<br>
+ case options::OPT__SLASH_MT:<br>
+ if (Args.hasArg(options::OPT__SLASH_LDd))<br>
CmdArgs.push_back("-D_DEBUG");<br>
- CmdArgs.push_back("-D_MT");<br>
- CmdArgs.push_back("--dependent-lib=libcmtd");<br>
- break;<br>
- default:<br>
- llvm_unreachable("Unexpected option ID.");<br>
+ CmdArgs.push_back("-D_MT");<br>
+ CmdArgs.push_back("--dependent-lib=libcmt");<br>
+ break;<br>
+ case options::OPT__SLASH_MTd:<br>
+ CmdArgs.push_back("-D_DEBUG");<br>
+ CmdArgs.push_back("-D_MT");<br>
+ CmdArgs.push_back("--dependent-lib=libcmtd");<br>
+ break;<br>
+ default:<br>
+ llvm_unreachable("Unexpected option ID.");<br>
}<br>
<br>
// This provides POSIX compatibility (maps 'open' to '_open'), which most<br>
@@ -5193,8 +5146,7 @@ void ClangAs::AddMIPSTargetArgs(const Ar<br>
}<br>
<br>
void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,<br>
- const InputInfo &Output,<br>
- const InputInfoList &Inputs,<br>
+ const InputInfo &Output, const InputInfoList &Inputs,<br>
const ArgList &Args,<br>
const char *LinkingOutput) const {<br>
ArgStringList CmdArgs;<br>
@@ -5216,8 +5168,8 @@ void ClangAs::ConstructJob(Compilation &<br>
<br>
// Add the "effective" target triple.<br>
CmdArgs.push_back("-triple");<br>
- std::string TripleStr =<br>
- getToolChain().ComputeEffectiveClangTriple(Args, Input.getType());<br>
+ std::string TripleStr =<br>
+ getToolChain().ComputeEffectiveClangTriple(Args, Input.getType());<br>
CmdArgs.push_back(Args.MakeArgString(TripleStr));<br>
<br>
// Set the output mode, we currently only expect to be used as a real<br>
@@ -5243,7 +5195,7 @@ void ClangAs::ConstructJob(Compilation &<br>
getTargetFeatures(D, Triple, Args, CmdArgs, true);<br>
<br>
// Ignore explicit -force_cpusubtype_ALL option.<br>
- (void) Args.hasArg(options::OPT_force__cpusubtype__ALL);<br>
+ (void)Args.hasArg(options::OPT_force__cpusubtype__ALL);<br>
<br>
// Pass along any -I options so we get proper .include search paths.<br>
Args.AddAllArgs(CmdArgs, options::OPT_I_Group);<br>
@@ -5303,7 +5255,7 @@ void ClangAs::ConstructJob(Compilation &<br>
// FIXME: Add -static support, once we have it.<br>
<br>
// Add target specific flags.<br>
- switch(getToolChain().getArch()) {<br>
+ switch (getToolChain().getArch()) {<br>
default:<br>
break;<br>
<br>
@@ -5351,8 +5303,7 @@ void GnuTool::anchor() {}<br>
<br>
void gcc::Common::ConstructJob(Compilation &C, const JobAction &JA,<br>
const InputInfo &Output,<br>
- const InputInfoList &Inputs,<br>
- const ArgList &Args,<br>
+ const InputInfoList &Inputs, const ArgList &Args,<br>
const char *LinkingOutput) const {<br>
const Driver &D = getToolChain().getDriver();<br>
ArgStringList CmdArgs;<br>
@@ -5384,7 +5335,7 @@ void gcc::Common::ConstructJob(Compilati<br>
if (getToolChain().getTriple().isOSDarwin()) {<br>
CmdArgs.push_back("-arch");<br>
CmdArgs.push_back(<br>
- Args.MakeArgString(getToolChain().getDefaultUniversalArchName()));<br>
+ Args.MakeArgString(getToolChain().getDefaultUniversalArchName()));<br>
}<br>
<br>
// Try to force gcc to match the tool chain we want, if we recognize<br>
@@ -5407,8 +5358,7 @@ void gcc::Common::ConstructJob(Compilati<br>
CmdArgs.push_back("-fsyntax-only");<br>
}<br>
<br>
- Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,<br>
- options::OPT_Xassembler);<br>
+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);<br>
<br>
// Only pass -x if gcc will understand it; otherwise hope gcc<br>
// understands the suffix correctly. The main use case this would go<br>
@@ -5423,13 +5373,12 @@ void gcc::Common::ConstructJob(Compilati<br>
if (II.getType() == types::TY_LLVM_IR || II.getType() == types::TY_LTO_IR ||<br>
II.getType() == types::TY_LLVM_BC || II.getType() == types::TY_LTO_BC)<br>
D.Diag(diag::err_drv_no_linker_llvm_support)<br>
- << getToolChain().getTripleString();<br>
+ << getToolChain().getTripleString();<br>
else if (II.getType() == types::TY_AST)<br>
- D.Diag(diag::err_drv_no_ast_support)<br>
- << getToolChain().getTripleString();<br>
+ D.Diag(diag::err_drv_no_ast_support) << getToolChain().getTripleString();<br>
else if (II.getType() == types::TY_ModuleFile)<br>
D.Diag(diag::err_drv_no_module_support)<br>
- << getToolChain().getTripleString();<br>
+ << getToolChain().getTripleString();<br>
<br>
if (types::canTypeBeUserSpecified(II.getType())) {<br>
CmdArgs.push_back("-x");<br>
@@ -5461,8 +5410,7 @@ void gcc::Common::ConstructJob(Compilati<br>
} else<br>
GCCName = "gcc";<br>
<br>
- const char *Exec =<br>
- Args.MakeArgString(getToolChain().GetProgramPath(GCCName));<br>
+ const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath(GCCName));<br>
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));<br>
}<br>
<br>
@@ -5526,11 +5474,10 @@ void hexagon::Assembler::ConstructJob(Co<br>
CmdArgs.push_back("-fsyntax-only");<br>
}<br>
<br>
- if (const char* v = toolchains::Hexagon_TC::GetSmallDataThreshold(Args))<br>
+ if (const char *v = toolchains::Hexagon_TC::GetSmallDataThreshold(Args))<br>
CmdArgs.push_back(Args.MakeArgString(std::string("-G") + v));<br>
<br>
- Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,<br>
- options::OPT_Xassembler);<br>
+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);<br>
<br>
// Only pass -x if gcc will understand it; otherwise hope gcc<br>
// understands the suffix correctly. The main use case this would go<br>
@@ -5545,18 +5492,19 @@ void hexagon::Assembler::ConstructJob(Co<br>
if (II.getType() == types::TY_LLVM_IR || II.getType() == types::TY_LTO_IR ||<br>
II.getType() == types::TY_LLVM_BC || II.getType() == types::TY_LTO_BC)<br>
D.Diag(clang::diag::err_drv_no_linker_llvm_support)<br>
- << getToolChain().getTripleString();<br>
+ << getToolChain().getTripleString();<br>
else if (II.getType() == types::TY_AST)<br>
D.Diag(clang::diag::err_drv_no_ast_support)<br>
- << getToolChain().getTripleString();<br>
+ << getToolChain().getTripleString();<br>
else if (II.getType() == types::TY_ModuleFile)<br>
D.Diag(diag::err_drv_no_module_support)<br>
- << getToolChain().getTripleString();<br>
+ << getToolChain().getTripleString();<br>
<br>
if (II.isFilename())<br>
CmdArgs.push_back(II.getFilename());<br>
else<br>
- // Don't render as input, we need gcc to do the translations. FIXME: Pranav: What is this ?<br>
+ // Don't render as input, we need gcc to do the translations.<br>
+ // FIXME: Pranav: What is this ?<br>
II.getInputArg().render(Args, CmdArgs);<br>
}<br>
<br>
@@ -5571,16 +5519,15 @@ void hexagon::Linker::RenderExtraToolArg<br>
}<br>
<br>
static void constructHexagonLinkArgs(Compilation &C, const JobAction &JA,<br>
- const toolchains::Hexagon_TC& ToolChain,<br>
- const InputInfo &Output,<br>
- const InputInfoList &Inputs,<br>
- const ArgList &Args,<br>
- ArgStringList &CmdArgs,<br>
- const char *LinkingOutput) {<br>
+ const toolchains::Hexagon_TC &ToolChain,<br>
+ const InputInfo &Output,<br>
+ const InputInfoList &Inputs,<br>
+ const ArgList &Args,<br>
+ ArgStringList &CmdArgs,<br>
+ const char *LinkingOutput) {<br>
<br>
const Driver &D = ToolChain.getDriver();<br>
<br>
-<br>
//----------------------------------------------------------------------------<br>
//<br>
//----------------------------------------------------------------------------<br>
@@ -5624,7 +5571,7 @@ static void constructHexagonLinkArgs(Com<br>
if (buildPIE && !buildingLib)<br>
CmdArgs.push_back("-pie");<br>
<br>
- if (const char* v = toolchains::Hexagon_TC::GetSmallDataThreshold(Args)) {<br>
+ if (const char *v = toolchains::Hexagon_TC::GetSmallDataThreshold(Args)) {<br>
CmdArgs.push_back(Args.MakeArgString(std::string("-G") + v));<br>
useG0 = toolchains::Hexagon_TC::UsesG0(v);<br>
}<br>
@@ -5640,15 +5587,14 @@ static void constructHexagonLinkArgs(Com<br>
const std::string MarchG0Suffix = MarchSuffix + G0Suffix;<br>
const std::string RootDir =<br>
toolchains::Hexagon_TC::GetGnuDir(D.InstalledDir, Args) + "/";<br>
- const std::string StartFilesDir = RootDir<br>
- + "hexagon/lib"<br>
- + (useG0 ? MarchG0Suffix : MarchSuffix);<br>
+ const std::string StartFilesDir =<br>
+ RootDir + "hexagon/lib" + (useG0 ? MarchG0Suffix : MarchSuffix);<br>
<br>
//----------------------------------------------------------------------------<br>
// moslib<br>
//----------------------------------------------------------------------------<br>
std::vector<std::string> oslibs;<br>
- bool hasStandalone= false;<br>
+ bool hasStandalone = false;<br>
<br>
for (const Arg *A : Args.filtered(options::OPT_moslib_EQ)) {<br>
A->claim();<br>
@@ -5668,7 +5614,7 @@ static void constructHexagonLinkArgs(Com<br>
if (!buildingLib) {<br>
if (hasStandalone) {<br>
CmdArgs.push_back(<br>
- Args.MakeArgString(StartFilesDir + "/crt0_standalone.o"));<br>
+ Args.MakeArgString(StartFilesDir + "/crt0_standalone.o"));<br>
}<br>
CmdArgs.push_back(Args.MakeArgString(StartFilesDir + "/crt0.o"));<br>
}<br>
@@ -5706,8 +5652,9 @@ static void constructHexagonLinkArgs(Com<br>
CmdArgs.push_back("--start-group");<br>
<br>
if (!buildingLib) {<br>
- for(std::vector<std::string>::iterator i = oslibs.begin(),<br>
- e = oslibs.end(); i != e; ++i)<br>
+ for (std::vector<std::string>::iterator i = oslibs.begin(),<br>
+ e = oslibs.end();<br>
+ i != e; ++i)<br>
CmdArgs.push_back(Args.MakeArgString("-l" + *i));<br>
CmdArgs.push_back("-lc");<br>
}<br>
@@ -5731,8 +5678,8 @@ void hexagon::Linker::ConstructJob(Compi<br>
const ArgList &Args,<br>
const char *LinkingOutput) const {<br>
<br>
- const toolchains::Hexagon_TC& ToolChain =<br>
- static_cast<const toolchains::Hexagon_TC&>(getToolChain());<br>
+ const toolchains::Hexagon_TC &ToolChain =<br>
+ static_cast<const toolchains::Hexagon_TC &>(getToolChain());<br>
<br>
ArgStringList CmdArgs;<br>
constructHexagonLinkArgs(C, JA, ToolChain, Output, Inputs, Args, CmdArgs,<br>
@@ -5764,7 +5711,7 @@ const std::string arm::getARMArch(const<br>
const char *Suffix = arm::getLLVMArchSuffixForARM(CPU, MArch);<br>
// If there is no valid architecture suffix for this CPU we don't know how<br>
// to handle it, so return no architecture.<br>
- if (strcmp(Suffix,"") == 0)<br>
+ if (strcmp(Suffix, "") == 0)<br>
MArch = "";<br>
else<br>
MArch = std::string("arm") + Suffix;<br>
@@ -5793,7 +5740,7 @@ const char *arm::getARMCPUForMArch(const<br>
<br>
/// getARMTargetCPU - Get the (LLVM) name of the ARM cpu we are targeting.<br>
std::string arm::getARMTargetCPU(const ArgList &Args,<br>
- const llvm::Triple &Triple) {<br>
+ const llvm::Triple &Triple) {<br>
// FIXME: Warn on inconsistent use of -mcpu and -march.<br>
// If we have -mcpu=, use that.<br>
if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {<br>
@@ -5822,7 +5769,7 @@ const char *arm::getLLVMArchSuffixForARM<br>
return llvm::ARMTargetParser::getSubArch(ArchKind);<br>
}<br>
<br>
-void arm::appendEBLinkFlags(const ArgList &Args, ArgStringList &CmdArgs,<br>
+void arm::appendEBLinkFlags(const ArgList &Args, ArgStringList &CmdArgs,<br>
const llvm::Triple &Triple) {<br>
if (Args.hasArg(options::OPT_r))<br>
return;<br>
@@ -5866,14 +5813,14 @@ bool mips::isUCLibc(const ArgList &Args)<br>
bool mips::isNaN2008(const ArgList &Args, const llvm::Triple &Triple) {<br>
if (Arg *NaNArg = Args.getLastArg(options::OPT_mnan_EQ))<br>
return llvm::StringSwitch<bool>(NaNArg->getValue())<br>
- .Case("2008", true)<br>
- .Case("legacy", false)<br>
- .Default(false);<br>
+ .Case("2008", true)<br>
+ .Case("legacy", false)<br>
+ .Default(false);<br>
<br>
// NaN2008 is the default for MIPS32r6/MIPS64r6.<br>
return llvm::StringSwitch<bool>(getCPUName(Args, Triple))<br>
- .Cases("mips32r6", "mips64r6", true)<br>
- .Default(false);<br>
+ .Cases("mips32r6", "mips64r6", true)<br>
+ .Default(false);<br>
<br>
return false;<br>
}<br>
@@ -5893,10 +5840,10 @@ bool mips::isFPXXDefault(const llvm::Tri<br>
return false;<br>
<br>
return llvm::StringSwitch<bool>(CPUName)<br>
- .Cases("mips2", "mips3", "mips4", "mips5", true)<br>
- .Cases("mips32", "mips32r2", "mips32r3", "mips32r5", true)<br>
- .Cases("mips64", "mips64r2", "mips64r3", "mips64r5", true)<br>
- .Default(false);<br>
+ .Cases("mips2", "mips3", "mips4", "mips5", true)<br>
+ .Cases("mips32", "mips32r2", "mips32r3", "mips32r5", true)<br>
+ .Cases("mips64", "mips64r2", "mips64r3", "mips64r5", true)<br>
+ .Default(false);<br>
}<br>
<br>
bool mips::shouldUseFPXX(const ArgList &Args, const llvm::Triple &Triple,<br>
@@ -5927,25 +5874,25 @@ llvm::Triple::ArchType darwin::getArchTy<br>
// translation.<br>
<br>
return llvm::StringSwitch<llvm::Triple::ArchType>(Str)<br>
- .Cases("ppc", "ppc601", "ppc603", "ppc604", "ppc604e", llvm::Triple::ppc)<br>
- .Cases("ppc750", "ppc7400", "ppc7450", "ppc970", llvm::Triple::ppc)<br>
- .Case("ppc64", llvm::Triple::ppc64)<br>
- .Cases("i386", "i486", "i486SX", "i586", "i686", llvm::Triple::x86)<br>
- .Cases("pentium", "pentpro", "pentIIm3", "pentIIm5", "pentium4",<br>
- llvm::Triple::x86)<br>
- .Cases("x86_64", "x86_64h", llvm::Triple::x86_64)<br>
- // This is derived from the driver driver.<br>
- .Cases("arm", "armv4t", "armv5", "armv6", "armv6m", llvm::Triple::arm)<br>
- .Cases("armv7", "armv7em", "armv7k", "armv7m", llvm::Triple::arm)<br>
- .Cases("armv7s", "xscale", llvm::Triple::arm)<br>
- .Case("arm64", llvm::Triple::aarch64)<br>
- .Case("r600", llvm::Triple::r600)<br>
- .Case("amdgcn", llvm::Triple::amdgcn)<br>
- .Case("nvptx", llvm::Triple::nvptx)<br>
- .Case("nvptx64", llvm::Triple::nvptx64)<br>
- .Case("amdil", llvm::Triple::amdil)<br>
- .Case("spir", llvm::Triple::spir)<br>
- .Default(llvm::Triple::UnknownArch);<br>
+ .Cases("ppc", "ppc601", "ppc603", "ppc604", "ppc604e", llvm::Triple::ppc)<br>
+ .Cases("ppc750", "ppc7400", "ppc7450", "ppc970", llvm::Triple::ppc)<br>
+ .Case("ppc64", llvm::Triple::ppc64)<br>
+ .Cases("i386", "i486", "i486SX", "i586", "i686", llvm::Triple::x86)<br>
+ .Cases("pentium", "pentpro", "pentIIm3", "pentIIm5", "pentium4",<br>
+ llvm::Triple::x86)<br>
+ .Cases("x86_64", "x86_64h", llvm::Triple::x86_64)<br>
+ // This is derived from the driver driver.<br>
+ .Cases("arm", "armv4t", "armv5", "armv6", "armv6m", llvm::Triple::arm)<br>
+ .Cases("armv7", "armv7em", "armv7k", "armv7m", llvm::Triple::arm)<br>
+ .Cases("armv7s", "xscale", llvm::Triple::arm)<br>
+ .Case("arm64", llvm::Triple::aarch64)<br>
+ .Case("r600", llvm::Triple::r600)<br>
+ .Case("amdgcn", llvm::Triple::amdgcn)<br>
+ .Case("nvptx", llvm::Triple::nvptx)<br>
+ .Case("nvptx64", llvm::Triple::nvptx64)<br>
+ .Case("amdil", llvm::Triple::amdil)<br>
+ .Case("spir", llvm::Triple::spir)<br>
+ .Default(llvm::Triple::UnknownArch);<br>
}<br>
<br>
void darwin::setTripleTypeForMachOArchName(llvm::Triple &T, StringRef Str) {<br>
@@ -6112,8 +6059,7 @@ void darwin::Assembler::ConstructJob(Com<br>
Args.hasArg(options::OPT_static)))<br>
CmdArgs.push_back("-static");<br>
<br>
- Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,<br>
- options::OPT_Xassembler);<br>
+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);<br>
<br>
assert(Output.isFilename() && "Unexpected lipo output.");<br>
CmdArgs.push_back("-o");<br>
@@ -6124,8 +6070,7 @@ void darwin::Assembler::ConstructJob(Com<br>
<br>
// asm_final spec is empty.<br>
<br>
- const char *Exec =<br>
- Args.MakeArgString(getToolChain().GetProgramPath("as"));<br>
+ const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));<br>
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));<br>
}<br>
<br>
@@ -6161,14 +6106,13 @@ void darwin::Linker::AddLinkArgs(Compila<br>
const Driver &D = getToolChain().getDriver();<br>
const toolchains::MachO &MachOTC = getMachOToolChain();<br>
<br>
- unsigned Version[3] = { 0, 0, 0 };<br>
+ unsigned Version[3] = {0, 0, 0};<br>
if (Arg *A = Args.getLastArg(options::OPT_mlinker_version_EQ)) {<br>
bool HadExtra;<br>
- if (!Driver::GetReleaseVersion(A->getValue(), Version[0],<br>
- Version[1], Version[2], HadExtra) ||<br>
+ if (!Driver::GetReleaseVersion(A->getValue(), Version[0], Version[1],<br>
+ Version[2], HadExtra) ||<br>
HadExtra)<br>
- D.Diag(diag::err_drv_invalid_version_number)<br>
- << A->getAsString(Args);<br>
+ D.Diag(diag::err_drv_invalid_version_number) << A->getAsString(Args);<br>
}<br>
<br>
// Newer linkers support -demangle. Pass it if supported and not disabled by<br>
@@ -6190,7 +6134,7 @@ void darwin::Linker::AddLinkArgs(Compila<br>
// dsymutil step.<br>
if (Version[0] >= 116 && D.IsUsingLTO(Args) && NeedsTempPath(Inputs)) {<br>
const char *TmpPath = C.getArgs().MakeArgString(<br>
- D.GetTemporaryPath("cc", types::getTypeTempSuffix(types::TY_Object)));<br>
+ D.GetTemporaryPath("cc", types::getTypeTempSuffix(types::TY_Object)));<br>
C.addTempFile(TmpPath);<br>
CmdArgs.push_back("-object_path_lto");<br>
CmdArgs.push_back(TmpPath);<br>
@@ -6218,8 +6162,8 @@ void darwin::Linker::AddLinkArgs(Compila<br>
if ((A = Args.getLastArg(options::OPT_compatibility__version)) ||<br>
(A = Args.getLastArg(options::OPT_current__version)) ||<br>
(A = Args.getLastArg(options::OPT_install__name)))<br>
- D.Diag(diag::err_drv_argument_only_allowed_with)<br>
- << A->getAsString(Args) << "-dynamiclib";<br>
+ D.Diag(diag::err_drv_argument_only_allowed_with) << A->getAsString(Args)<br>
+ << "-dynamiclib";<br>
<br>
Args.AddLastArg(CmdArgs, options::OPT_force__flat__namespace);<br>
Args.AddLastArg(CmdArgs, options::OPT_keep__private__externs);<br>
@@ -6234,8 +6178,8 @@ void darwin::Linker::AddLinkArgs(Compila<br>
(A = Args.getLastArg(options::OPT_force__flat__namespace)) ||<br>
(A = Args.getLastArg(options::OPT_keep__private__externs)) ||<br>
(A = Args.getLastArg(options::OPT_private__bundle)))<br>
- D.Diag(diag::err_drv_argument_not_allowed_with)<br>
- << A->getAsString(Args) << "-dynamiclib";<br>
+ D.Diag(diag::err_drv_argument_not_allowed_with) << A->getAsString(Args)<br>
+ << "-dynamiclib";<br>
<br>
Args.AddAllArgsTranslated(CmdArgs, options::OPT_compatibility__version,<br>
"-dylib_compatibility_version");<br>
@@ -6273,9 +6217,9 @@ void darwin::Linker::AddLinkArgs(Compila<br>
Args.AddAllArgs(CmdArgs, options::OPT_multiply__defined);<br>
Args.AddAllArgs(CmdArgs, options::OPT_multiply__defined__unused);<br>
<br>
- if (const Arg *A = Args.getLastArg(options::OPT_fpie, options::OPT_fPIE,<br>
- options::OPT_fno_pie,<br>
- options::OPT_fno_PIE)) {<br>
+ if (const Arg *A =<br>
+ Args.getLastArg(options::OPT_fpie, options::OPT_fPIE,<br>
+ options::OPT_fno_pie, options::OPT_fno_PIE)) {<br>
if (A->getOption().matches(options::OPT_fpie) ||<br>
A->getOption().matches(options::OPT_fPIE))<br>
CmdArgs.push_back("-pie");<br>
@@ -6358,7 +6302,7 @@ void darwin::Linker::ConstructJob(Compil<br>
for (const auto &Arg : Args)<br>
Arg->claim();<br>
const char *Exec =<br>
- Args.MakeArgString(getToolChain().GetProgramPath("touch"));<br>
+ Args.MakeArgString(getToolChain().GetProgramPath("touch"));<br>
CmdArgs.push_back(Output.getFilename());<br>
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));<br>
return;<br>
@@ -6436,8 +6380,7 @@ void darwin::Linker::ConstructJob(Compil<br>
InputFileList.push_back(II.getFilename());<br>
}<br>
<br>
- if (isObjCRuntimeLinked(Args) &&<br>
- !Args.hasArg(options::OPT_nostdlib) &&<br>
+ if (isObjCRuntimeLinked(Args) && !Args.hasArg(options::OPT_nostdlib) &&<br>
!Args.hasArg(options::OPT_nodefaultlibs)) {<br>
// We use arclite library for both ARC and subscripting support.<br>
getMachOToolChain().AddLinkARCArgs(Args, CmdArgs);<br>
@@ -6495,10 +6438,9 @@ void darwin::Linker::ConstructJob(Compil<br>
}<br>
}<br>
<br>
- const char *Exec =<br>
- Args.MakeArgString(getToolChain().GetLinkerPath());<br>
+ const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());<br>
std::unique_ptr<Command> Cmd =<br>
- llvm::make_unique<Command>(JA, *this, Exec, CmdArgs);<br>
+ llvm::make_unique<Command>(JA, *this, Exec, CmdArgs);<br>
Cmd->setInputFileList(std::move(InputFileList));<br>
C.addCommand(std::move(Cmd));<br>
}<br>
@@ -6541,7 +6483,7 @@ void darwin::Dsymutil::ConstructJob(Comp<br>
CmdArgs.push_back(Input.getFilename());<br>
<br>
const char *Exec =<br>
- Args.MakeArgString(getToolChain().GetProgramPath("dsymutil"));<br>
+ Args.MakeArgString(getToolChain().GetProgramPath("dsymutil"));<br>
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));<br>
}<br>
<br>
@@ -6564,7 +6506,7 @@ void darwin::VerifyDebug::ConstructJob(C<br>
CmdArgs.push_back(Input.getFilename());<br>
<br>
const char *Exec =<br>
- Args.MakeArgString(getToolChain().GetProgramPath("dwarfdump"));<br>
+ Args.MakeArgString(getToolChain().GetProgramPath("dwarfdump"));<br>
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));<br>
}<br>
<br>
@@ -6576,8 +6518,7 @@ void solaris::Assembler::ConstructJob(Co<br>
claimNoWarnArgs(Args);<br>
ArgStringList CmdArgs;<br>
<br>
- Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,<br>
- options::OPT_Xassembler);<br>
+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);<br>
<br>
CmdArgs.push_back("-o");<br>
CmdArgs.push_back(Output.getFilename());<br>
@@ -6689,8 +6630,7 @@ void solaris::Linker::ConstructJob(Compi<br>
<br>
addProfileRT(getToolChain(), Args, CmdArgs);<br>
<br>
- const char *Exec =<br>
- Args.MakeArgString(getToolChain().GetLinkerPath());<br>
+ const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());<br>
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));<br>
}<br>
<br>
@@ -6752,8 +6692,7 @@ void openbsd::Assembler::ConstructJob(Co<br>
if (NeedsKPIC)<br>
addAssemblerKPIC(Args, CmdArgs);<br>
<br>
- Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,<br>
- options::OPT_Xassembler);<br>
+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);<br>
<br>
CmdArgs.push_back("-o");<br>
CmdArgs.push_back(Output.getFilename());<br>
@@ -6761,8 +6700,7 @@ void openbsd::Assembler::ConstructJob(Co<br>
for (const auto &II : Inputs)<br>
CmdArgs.push_back(II.getFilename());<br>
<br>
- const char *Exec =<br>
- Args.MakeArgString(getToolChain().GetProgramPath("as"));<br>
+ const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));<br>
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));<br>
}<br>
<br>
@@ -6821,25 +6759,25 @@ void openbsd::Linker::ConstructJob(Compi<br>
if (!Args.hasArg(options::OPT_nostdlib) &&<br>
!Args.hasArg(options::OPT_nostartfiles)) {<br>
if (!Args.hasArg(options::OPT_shared)) {<br>
- if (Args.hasArg(options::OPT_pg))<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("gcrt0.o")));<br>
+ if (Args.hasArg(options::OPT_pg))<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("gcrt0.o")));<br>
else<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crt0.o")));<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtbegin.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crt0.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o")));<br>
} else {<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtbeginS.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtbeginS.o")));<br>
}<br>
}<br>
<br>
std::string Triple = getToolChain().getTripleString();<br>
if (Triple.substr(0, 6) == "x86_64")<br>
Triple.replace(0, 6, "amd64");<br>
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc-lib/" + Triple +<br>
- "/4.2.1"));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString("-L/usr/lib/gcc-lib/" + Triple + "/4.2.1"));<br>
<br>
Args.AddAllArgs(CmdArgs, options::OPT_L);<br>
Args.AddAllArgs(CmdArgs, options::OPT_T_Group);<br>
@@ -6855,7 +6793,7 @@ void openbsd::Linker::ConstructJob(Compi<br>
!Args.hasArg(options::OPT_nodefaultlibs)) {<br>
if (D.CCCIsCXX()) {<br>
getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs);<br>
- if (Args.hasArg(options::OPT_pg))<br>
+ if (Args.hasArg(options::OPT_pg))<br>
CmdArgs.push_back("-lm_p");<br>
else<br>
CmdArgs.push_back("-lm");<br>
@@ -6866,18 +6804,17 @@ void openbsd::Linker::ConstructJob(Compi<br>
CmdArgs.push_back("-lgcc");<br>
<br>
if (Args.hasArg(options::OPT_pthread)) {<br>
- if (!Args.hasArg(options::OPT_shared) &&<br>
- Args.hasArg(options::OPT_pg))<br>
- CmdArgs.push_back("-lpthread_p");<br>
+ if (!Args.hasArg(options::OPT_shared) && Args.hasArg(options::OPT_pg))<br>
+ CmdArgs.push_back("-lpthread_p");<br>
else<br>
- CmdArgs.push_back("-lpthread");<br>
+ CmdArgs.push_back("-lpthread");<br>
}<br>
<br>
if (!Args.hasArg(options::OPT_shared)) {<br>
if (Args.hasArg(options::OPT_pg))<br>
- CmdArgs.push_back("-lc_p");<br>
+ CmdArgs.push_back("-lc_p");<br>
else<br>
- CmdArgs.push_back("-lc");<br>
+ CmdArgs.push_back("-lc");<br>
}<br>
<br>
CmdArgs.push_back("-lgcc");<br>
@@ -6886,15 +6823,14 @@ void openbsd::Linker::ConstructJob(Compi<br>
if (!Args.hasArg(options::OPT_nostdlib) &&<br>
!Args.hasArg(options::OPT_nostartfiles)) {<br>
if (!Args.hasArg(options::OPT_shared))<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtend.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtend.o")));<br>
else<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtendS.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtendS.o")));<br>
}<br>
<br>
- const char *Exec =<br>
- Args.MakeArgString(getToolChain().GetLinkerPath());<br>
+ const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());<br>
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));<br>
}<br>
<br>
@@ -6906,8 +6842,7 @@ void bitrig::Assembler::ConstructJob(Com<br>
claimNoWarnArgs(Args);<br>
ArgStringList CmdArgs;<br>
<br>
- Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,<br>
- options::OPT_Xassembler);<br>
+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);<br>
<br>
CmdArgs.push_back("-o");<br>
CmdArgs.push_back(Output.getFilename());<br>
@@ -6959,16 +6894,16 @@ void bitrig::Linker::ConstructJob(Compil<br>
!Args.hasArg(options::OPT_nostartfiles)) {<br>
if (!Args.hasArg(options::OPT_shared)) {<br>
if (Args.hasArg(options::OPT_pg))<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("gcrt0.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("gcrt0.o")));<br>
else<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crt0.o")));<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtbegin.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crt0.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o")));<br>
} else {<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtbeginS.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtbeginS.o")));<br>
}<br>
}<br>
<br>
@@ -6989,8 +6924,7 @@ void bitrig::Linker::ConstructJob(Compil<br>
}<br>
<br>
if (Args.hasArg(options::OPT_pthread)) {<br>
- if (!Args.hasArg(options::OPT_shared) &&<br>
- Args.hasArg(options::OPT_pg))<br>
+ if (!Args.hasArg(options::OPT_shared) && Args.hasArg(options::OPT_pg))<br>
CmdArgs.push_back("-lpthread_p");<br>
else<br>
CmdArgs.push_back("-lpthread");<br>
@@ -7023,15 +6957,14 @@ void bitrig::Linker::ConstructJob(Compil<br>
if (!Args.hasArg(options::OPT_nostdlib) &&<br>
!Args.hasArg(options::OPT_nostartfiles)) {<br>
if (!Args.hasArg(options::OPT_shared))<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtend.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtend.o")));<br>
else<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtendS.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtendS.o")));<br>
}<br>
<br>
- const char *Exec =<br>
- Args.MakeArgString(getToolChain().GetLinkerPath());<br>
+ const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());<br>
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));<br>
}<br>
<br>
@@ -7084,7 +7017,7 @@ void freebsd::Assembler::ConstructJob(Co<br>
CmdArgs.push_back("-mfpu=softvfp");<br>
}<br>
<br>
- switch(getToolChain().getTriple().getEnvironment()) {<br>
+ switch (getToolChain().getTriple().getEnvironment()) {<br>
case llvm::Triple::GNUEABIHF:<br>
case llvm::Triple::GNUEABI:<br>
case llvm::Triple::EABI:<br>
@@ -7105,8 +7038,7 @@ void freebsd::Assembler::ConstructJob(Co<br>
addAssemblerKPIC(Args, CmdArgs);<br>
}<br>
<br>
- Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,<br>
- options::OPT_Xassembler);<br>
+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);<br>
<br>
CmdArgs.push_back("-o");<br>
CmdArgs.push_back(Output.getFilename());<br>
@@ -7297,8 +7229,7 @@ void freebsd::Linker::ConstructJob(Compi<br>
<br>
addProfileRT(ToolChain, Args, CmdArgs);<br>
<br>
- const char *Exec =<br>
- Args.MakeArgString(getToolChain().GetLinkerPath());<br>
+ const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());<br>
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));<br>
}<br>
<br>
@@ -7362,11 +7293,10 @@ void netbsd::Assembler::ConstructJob(Com<br>
break;<br>
<br>
default:<br>
- break;<br>
+ break;<br>
}<br>
<br>
- Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,<br>
- options::OPT_Xassembler);<br>
+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);<br>
<br>
CmdArgs.push_back("-o");<br>
CmdArgs.push_back(Output.getFilename());<br>
@@ -7429,7 +7359,8 @@ void netbsd::Linker::ConstructJob(Compil<br>
break;<br>
case llvm::Triple::armeb:<br>
case llvm::Triple::thumbeb:<br>
- arm::appendEBLinkFlags(Args, CmdArgs,<br>
+ arm::appendEBLinkFlags(<br>
+ Args, CmdArgs,<br>
llvm::Triple(getToolChain().ComputeEffectiveClangTriple(Args)));<br>
CmdArgs.push_back("-m");<br>
switch (getToolChain().getTriple().getEnvironment()) {<br>
@@ -7454,14 +7385,14 @@ void netbsd::Linker::ConstructJob(Compil<br>
CmdArgs.push_back("elf32btsmip");<br>
else<br>
CmdArgs.push_back("elf32ltsmip");<br>
- } else if (mips::hasMipsAbiArg(Args, "64")) {<br>
- CmdArgs.push_back("-m");<br>
- if (getToolChain().getArch() == llvm::Triple::mips64)<br>
- CmdArgs.push_back("elf64btsmip");<br>
- else<br>
- CmdArgs.push_back("elf64ltsmip");<br>
- }<br>
- break;<br>
+ } else if (mips::hasMipsAbiArg(Args, "64")) {<br>
+ CmdArgs.push_back("-m");<br>
+ if (getToolChain().getArch() == llvm::Triple::mips64)<br>
+ CmdArgs.push_back("elf64btsmip");<br>
+ else<br>
+ CmdArgs.push_back("elf64ltsmip");<br>
+ }<br>
+ break;<br>
case llvm::Triple::ppc:<br>
CmdArgs.push_back("-m");<br>
CmdArgs.push_back("elf32ppc_nbsd");<br>
@@ -7497,17 +7428,17 @@ void netbsd::Linker::ConstructJob(Compil<br>
if (!Args.hasArg(options::OPT_nostdlib) &&<br>
!Args.hasArg(options::OPT_nostartfiles)) {<br>
if (!Args.hasArg(options::OPT_shared)) {<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crt0.o")));<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crti.o")));<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtbegin.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crt0.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crti.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o")));<br>
} else {<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crti.o")));<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtbeginS.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crti.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtbeginS.o")));<br>
}<br>
}<br>
<br>
@@ -7525,7 +7456,7 @@ void netbsd::Linker::ConstructJob(Compil<br>
getToolChain().getTriple().getOSVersion(Major, Minor, Micro);<br>
bool useLibgcc = true;<br>
if (Major >= 7 || (Major == 6 && Minor == 99 && Micro >= 49) || Major == 0) {<br>
- switch(getToolChain().getArch()) {<br>
+ switch (getToolChain().getArch()) {<br>
case llvm::Triple::aarch64:<br>
case llvm::Triple::arm:<br>
case llvm::Triple::armeb:<br>
@@ -7573,13 +7504,12 @@ void netbsd::Linker::ConstructJob(Compil<br>
if (!Args.hasArg(options::OPT_nostdlib) &&<br>
!Args.hasArg(options::OPT_nostartfiles)) {<br>
if (!Args.hasArg(options::OPT_shared))<br>
- CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(<br>
- "crtend.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtend.o")));<br>
else<br>
- CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(<br>
- "crtendS.o")));<br>
- CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(<br>
- "crtn.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtendS.o")));<br>
+ CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crtn.o")));<br>
}<br>
<br>
addProfileRT(getToolChain(), Args, CmdArgs);<br>
@@ -7667,8 +7597,8 @@ void gnutools::Assembler::ConstructJob(C<br>
// march from being picked in the absence of a cpu flag.<br>
Arg *A;<br>
if ((A = Args.getLastArg(options::OPT_mcpu_EQ)) &&<br>
- StringRef(A->getValue()).lower() == "krait")<br>
- CmdArgs.push_back("-march=armv7-a");<br>
+ StringRef(A->getValue()).lower() == "krait")<br>
+ CmdArgs.push_back("-march=armv7-a");<br>
else<br>
Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);<br>
Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ);<br>
@@ -7732,8 +7662,8 @@ void gnutools::Assembler::ConstructJob(C<br>
<br>
// Pass on -mmips16 or -mno-mips16. However, the assembler equivalent of<br>
// -mno-mips16 is actually -no-mips16.<br>
- if (Arg *A = Args.getLastArg(options::OPT_mips16,<br>
- options::OPT_mno_mips16)) {<br>
+ if (Arg *A =<br>
+ Args.getLastArg(options::OPT_mips16, options::OPT_mno_mips16)) {<br>
if (A->getOption().matches(options::OPT_mips16)) {<br>
A->claim();<br>
A->render(Args, CmdArgs);<br>
@@ -7779,8 +7709,7 @@ void gnutools::Assembler::ConstructJob(C<br>
if (NeedsKPIC)<br>
addAssemblerKPIC(Args, CmdArgs);<br>
<br>
- Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,<br>
- options::OPT_Xassembler);<br>
+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);<br>
<br>
CmdArgs.push_back("-o");<br>
CmdArgs.push_back(Output.getFilename());<br>
@@ -7908,7 +7837,8 @@ static void AddRunTimeLibs(const ToolCha<br>
switch (RLT) {<br>
case ToolChain::RLT_CompilerRT:<br>
switch (TC.getTriple().getOS()) {<br>
- default: llvm_unreachable("unsupported OS");<br>
+ default:<br>
+ llvm_unreachable("unsupported OS");<br>
case llvm::Triple::Win32:<br>
case llvm::Triple::Linux:<br>
addClangRT(TC, Args, CmdArgs);<br>
@@ -8047,7 +7977,7 @@ void gnutools::Linker::ConstructJob(Comp<br>
!Args.hasArg(options::OPT_nostartfiles)) {<br>
if (!isAndroid) {<br>
const char *crt1 = nullptr;<br>
- if (!Args.hasArg(options::OPT_shared)){<br>
+ if (!Args.hasArg(options::OPT_shared)) {<br>
if (Args.hasArg(options::OPT_pg))<br>
crt1 = "gcrt1.o";<br>
else if (IsPIE)<br>
@@ -8095,11 +8025,10 @@ void gnutools::Linker::ConstructJob(Comp<br>
// The profile runtime also needs access to system libraries.<br>
addProfileRT(getToolChain(), Args, CmdArgs);<br>
<br>
- if (D.CCCIsCXX() &&<br>
- !Args.hasArg(options::OPT_nostdlib) &&<br>
+ if (D.CCCIsCXX() && !Args.hasArg(options::OPT_nostdlib) &&<br>
!Args.hasArg(options::OPT_nodefaultlibs)) {<br>
bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) &&<br>
- !Args.hasArg(options::OPT_static);<br>
+ !Args.hasArg(options::OPT_static);<br>
if (OnlyLibstdcxxStatic)<br>
CmdArgs.push_back("-Bstatic");<br>
ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs);<br>
@@ -8180,7 +8109,6 @@ void gnutools::Linker::ConstructJob(Comp<br>
llvm::make_unique<Command>(JA, *this, ToolChain.Linker.c_str(), CmdArgs));<br>
}<br>
<br>
-<br>
// NaCl ARM assembly (inline or standalone) can be written with a set of macros<br>
// for the various SFI requirements like register masking. The assembly tool<br>
// inserts the file containing the macros as an input into all the assembly<br>
@@ -8190,8 +8118,8 @@ void nacltools::AssemblerARM::ConstructJ<br>
const InputInfoList &Inputs,<br>
const ArgList &Args,<br>
const char *LinkingOutput) const {<br>
- const toolchains::NaCl_TC& ToolChain =<br>
- static_cast<const toolchains::NaCl_TC&>(getToolChain());<br>
+ const toolchains::NaCl_TC &ToolChain =<br>
+ static_cast<const toolchains::NaCl_TC &>(getToolChain());<br>
InputInfo NaClMacros(ToolChain.GetNaClArmMacrosPath(), types::TY_PP_Asm,<br>
"nacl-arm-macros.s");<br>
InputInfoList NewInputs;<br>
@@ -8291,11 +8219,10 @@ void nacltools::Linker::ConstructJob(Com<br>
<br>
AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs);<br>
<br>
- if (D.CCCIsCXX() &&<br>
- !Args.hasArg(options::OPT_nostdlib) &&<br>
+ if (D.CCCIsCXX() && !Args.hasArg(options::OPT_nostdlib) &&<br>
!Args.hasArg(options::OPT_nodefaultlibs)) {<br>
- bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) &&<br>
- !IsStatic;<br>
+ bool OnlyLibstdcxxStatic =<br>
+ Args.hasArg(options::OPT_static_libstdcxx) && !IsStatic;<br>
if (OnlyLibstdcxxStatic)<br>
CmdArgs.push_back("-Bstatic");<br>
ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs);<br>
@@ -8312,8 +8239,7 @@ void nacltools::Linker::ConstructJob(Com<br>
// NaCl's libc++ currently requires libpthread, so just always include it<br>
// in the group for C++.<br>
if (Args.hasArg(options::OPT_pthread) ||<br>
- Args.hasArg(options::OPT_pthreads) ||<br>
- D.CCCIsCXX()) {<br>
+ Args.hasArg(options::OPT_pthreads) || D.CCCIsCXX()) {<br>
CmdArgs.push_back("-lpthread");<br>
}<br>
<br>
@@ -8339,8 +8265,8 @@ void nacltools::Linker::ConstructJob(Com<br>
}<br>
}<br>
<br>
- C.addCommand(llvm::make_unique<Command>(JA, *this,<br>
- ToolChain.Linker.c_str(), CmdArgs));<br>
+ C.addCommand(<br>
+ llvm::make_unique<Command>(JA, *this, ToolChain.Linker.c_str(), CmdArgs));<br>
}<br>
<br>
void minix::Assembler::ConstructJob(Compilation &C, const JobAction &JA,<br>
@@ -8380,10 +8306,11 @@ void minix::Linker::ConstructJob(Compila<br>
<br>
if (!Args.hasArg(options::OPT_nostdlib) &&<br>
!Args.hasArg(options::OPT_nostartfiles)) {<br>
- CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crt1.o")));<br>
- CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crti.o")));<br>
- CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o")));<br>
- CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crtn.o")));<br>
+ CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crt1.o")));<br>
+ CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crti.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o")));<br>
+ CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crtn.o")));<br>
}<br>
<br>
Args.AddAllArgs(CmdArgs, options::OPT_L);<br>
@@ -8410,7 +8337,7 @@ void minix::Linker::ConstructJob(Compila<br>
CmdArgs.push_back("-lCompilerRT-Generic");<br>
CmdArgs.push_back("-L/usr/pkg/compiler-rt/lib");<br>
CmdArgs.push_back(<br>
- Args.MakeArgString(getToolChain().GetFilePath("crtend.o")));<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtend.o")));<br>
}<br>
<br>
const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());<br>
@@ -8491,25 +8418,24 @@ void dragonfly::Linker::ConstructJob(Com<br>
!Args.hasArg(options::OPT_nostartfiles)) {<br>
if (!Args.hasArg(options::OPT_shared)) {<br>
if (Args.hasArg(options::OPT_pg))<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("gcrt1.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("gcrt1.o")));<br>
else {<br>
if (Args.hasArg(options::OPT_pie))<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("Scrt1.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("Scrt1.o")));<br>
else<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crt1.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crt1.o")));<br>
}<br>
}<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crti.o")));<br>
+ CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crti.o")));<br>
if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie))<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtbeginS.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtbeginS.o")));<br>
else<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtbegin.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o")));<br>
}<br>
<br>
Args.AddAllArgs(CmdArgs, options::OPT_L);<br>
@@ -8578,13 +8504,12 @@ void dragonfly::Linker::ConstructJob(Com<br>
if (!Args.hasArg(options::OPT_nostdlib) &&<br>
!Args.hasArg(options::OPT_nostartfiles)) {<br>
if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie))<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtendS.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtendS.o")));<br>
else<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtend.o")));<br>
- CmdArgs.push_back(Args.MakeArgString(<br>
- getToolChain().GetFilePath("crtn.o")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getToolChain().GetFilePath("crtend.o")));<br>
+ CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crtn.o")));<br>
}<br>
<br>
addProfileRT(getToolChain(), Args, CmdArgs);<br>
@@ -8623,8 +8548,8 @@ void visualstudio::Linker::ConstructJob(<br>
<br>
assert((Output.isFilename() || Output.isNothing()) && "invalid output");<br>
if (Output.isFilename())<br>
- CmdArgs.push_back(Args.MakeArgString(std::string("-out:") +<br>
- Output.getFilename()));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(std::string("-out:") + Output.getFilename()));<br>
<br>
if (!Args.hasArg(options::OPT_nostdlib) &&<br>
!Args.hasArg(options::OPT_nostartfiles) && !C.getDriver().IsCLMode())<br>
@@ -8668,16 +8593,14 @@ void visualstudio::Linker::ConstructJob(<br>
if (Args.hasArg(options::OPT_g_Group))<br>
CmdArgs.push_back("-debug");<br>
<br>
- bool DLL = Args.hasArg(options::OPT__SLASH_LD,<br>
- options::OPT__SLASH_LDd,<br>
+ bool DLL = Args.hasArg(options::OPT__SLASH_LD, options::OPT__SLASH_LDd,<br>
options::OPT_shared);<br>
if (DLL) {<br>
CmdArgs.push_back(Args.MakeArgString("-dll"));<br>
<br>
SmallString<128> ImplibName(Output.getFilename());<br>
llvm::sys::path::replace_extension(ImplibName, "lib");<br>
- CmdArgs.push_back(Args.MakeArgString(std::string("-implib:") +<br>
- ImplibName));<br>
+ CmdArgs.push_back(Args.MakeArgString(std::string("-implib:") + ImplibName));<br>
}<br>
<br>
if (TC.getSanitizerArgs().needsAsanRt()) {<br>
@@ -8685,8 +8608,7 @@ void visualstudio::Linker::ConstructJob(<br>
CmdArgs.push_back(Args.MakeArgString("-incremental:no"));<br>
if (Args.hasArg(options::OPT__SLASH_MD, options::OPT__SLASH_MDd)) {<br>
static const char *CompilerRTComponents[] = {<br>
- "asan_dynamic",<br>
- "asan_dynamic_runtime_thunk",<br>
+ "asan_dynamic", "asan_dynamic_runtime_thunk",<br>
};<br>
for (const auto &Component : CompilerRTComponents)<br>
CmdArgs.push_back(Args.MakeArgString(getCompilerRT(TC, Component)));<br>
@@ -8694,11 +8616,11 @@ void visualstudio::Linker::ConstructJob(<br>
// to ensure proper SEH handling.<br>
CmdArgs.push_back(Args.MakeArgString("-include:___asan_seh_interceptor"));<br>
} else if (DLL) {<br>
- CmdArgs.push_back(Args.MakeArgString(getCompilerRT(TC, "asan_dll_thunk")));<br>
+ CmdArgs.push_back(<br>
+ Args.MakeArgString(getCompilerRT(TC, "asan_dll_thunk")));<br>
} else {<br>
static const char *CompilerRTComponents[] = {<br>
- "asan",<br>
- "asan_cxx",<br>
+ "asan", "asan_cxx",<br>
};<br>
for (const auto &Component : CompilerRTComponents)<br>
CmdArgs.push_back(Args.MakeArgString(getCompilerRT(TC, Component)));<br>
@@ -8771,7 +8693,7 @@ std::unique_ptr<Command> visualstudio::C<br>
const char *LinkingOutput) const {<br>
ArgStringList CmdArgs;<br>
CmdArgs.push_back("/nologo");<br>
- CmdArgs.push_back("/c"); // Compile only.<br>
+ CmdArgs.push_back("/c"); // Compile only.<br>
CmdArgs.push_back("/W0"); // No warnings.<br>
<br>
// The goal is to be able to invoke this tool correctly based on<br>
@@ -8829,7 +8751,6 @@ std::unique_ptr<Command> visualstudio::C<br>
options::OPT__SLASH_MT, options::OPT__SLASH_MTd))<br>
A->render(Args, CmdArgs);<br>
<br>
-<br>
// Input filename.<br>
assert(Inputs.size() == 1);<br>
const InputInfo &II = Inputs[0];<br>
@@ -8842,8 +8763,8 @@ std::unique_ptr<Command> visualstudio::C<br>
<br>
// Output filename.<br>
assert(Output.getType() == types::TY_Object);<br>
- const char *Fo = Args.MakeArgString(std::string("/Fo") +<br>
- Output.getFilename());<br>
+ const char *Fo =<br>
+ Args.MakeArgString(std::string("/Fo") + Output.getFilename());<br>
CmdArgs.push_back(Fo);<br>
<br>
const Driver &D = getToolChain().getDriver();<br>
@@ -8880,8 +8801,7 @@ void XCore::Assembler::ConstructJob(Comp<br>
false))<br>
CmdArgs.push_back("-fverbose-asm");<br>
<br>
- Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,<br>
- options::OPT_Xassembler);<br>
+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);<br>
<br>
for (const auto &II : Inputs)<br>
CmdArgs.push_back(II.getFilename());<br>
@@ -8928,7 +8848,8 @@ void CrossWindows::Assembler::ConstructJ<br>
const char *Exec;<br>
<br>
switch (TC.getArch()) {<br>
- default: llvm_unreachable("unsupported architecture");<br>
+ default:<br>
+ llvm_unreachable("unsupported architecture");<br>
case llvm::Triple::arm:<br>
case llvm::Triple::thumb:<br>
break;<br>
@@ -8987,7 +8908,8 @@ void CrossWindows::Linker::ConstructJob(<br>
<br>
CmdArgs.push_back("-m");<br>
switch (TC.getArch()) {<br>
- default: llvm_unreachable("unsupported architecture");<br>
+ default:<br>
+ llvm_unreachable("unsupported architecture");<br>
case llvm::Triple::arm:<br>
case llvm::Triple::thumb:<br>
// FIXME: this is incorrect for WinCE<br>
@@ -9004,7 +8926,8 @@ void CrossWindows::Linker::ConstructJob(<br>
<br>
if (Args.hasArg(options::OPT_shared)) {<br>
switch (T.getArch()) {<br>
- default: llvm_unreachable("unsupported architecture");<br>
+ default:<br>
+ llvm_unreachable("unsupported architecture");<br>
case llvm::Triple::arm:<br>
case llvm::Triple::thumb:<br>
case llvm::Triple::x86_64:<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>