clang  5.0.0
Functions
Darwin.cpp File Reference
#include "Darwin.h"
#include "Arch/ARM.h"
#include "CommonArgs.h"
#include "clang/Basic/ObjCRuntime.h"
#include "clang/Basic/VirtualFileSystem.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/DriverDiagnostic.h"
#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/ScopedPrinter.h"
#include "llvm/Support/TargetParser.h"
#include <cstdlib>
Include dependency graph for Darwin.cpp:

Go to the source code of this file.

Functions

static bool shouldLinkerNotDedup (bool IsLinkerOnlyAction, const ArgList &Args)
 Pass -no_deduplicate to ld64 under certain conditions: More...
 
static bool isObjCRuntimeLinked (const ArgList &Args)
 Determine whether we are linking the ObjC runtime. More...
 
static const char * ArmMachOArchName (StringRef Arch)
 
static const char * ArmMachOArchNameCPU (StringRef CPU)
 
static std::string getSystemOrSDKMacOSVersion (StringRef MacOSSDKVersion)
 Returns the most appropriate macOS target version for the current process. More...
 

Function Documentation

static const char* ArmMachOArchName ( StringRef  Arch)
static

Definition at line 724 of file Darwin.cpp.

Referenced by clang::driver::toolchains::MachO::getMachOArchName().

static const char* ArmMachOArchNameCPU ( StringRef  CPU)
static

Definition at line 741 of file Darwin.cpp.

Referenced by clang::driver::toolchains::MachO::getMachOArchName().

static std::string getSystemOrSDKMacOSVersion ( StringRef  MacOSSDKVersion)
static

Returns the most appropriate macOS target version for the current process.

If the macOS SDK version is the same or earlier than the system version, then the SDK version is returned. Otherwise the system version is returned.

Definition at line 1125 of file Darwin.cpp.

References clang::VersionTuple::getAsString(), and clang::driver::Driver::GetReleaseVersion().

static bool isObjCRuntimeLinked ( const ArgList &  Args)
static

Determine whether we are linking the ObjC runtime.

Definition at line 412 of file Darwin.cpp.

References clang::driver::tools::isObjCAutoRefCount().

Referenced by clang::driver::tools::darwin::Linker::ConstructJob().

static bool shouldLinkerNotDedup ( bool  IsLinkerOnlyAction,
const ArgList &  Args 
)
static

Pass -no_deduplicate to ld64 under certain conditions:

  • Either -O0 or -O1 is explicitly specified
  • No -O option is specified and this is a compile+link (implicit -O0)

Also do not add -no_deduplicate when no -O option is specified and this is just a link (we can't imply -O0)

Definition at line 184 of file Darwin.cpp.