virtual bool useRelaxRelocations() const;
/// GetDefaultStackProtectorLevel - Get the default stack protector level for
- /// this tool chain (0=off, 1=on, 2=strong, 3=all).
- virtual unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const {
- return 0;
+ /// this tool chain.
+ virtual LangOptions::StackProtectorMode
+ GetDefaultStackProtectorLevel(bool KernelOrKext) const {
+ return LangOptions::SSPOff;
}
/// Get the default trivial automatic variable initialization.
return;
// -stack-protector=0 is default.
- unsigned StackProtectorLevel = 0;
- unsigned DefaultStackProtectorLevel =
+ LangOptions::StackProtectorMode StackProtectorLevel = LangOptions::SSPOff;
+ LangOptions::StackProtectorMode DefaultStackProtectorLevel =
TC.GetDefaultStackProtectorLevel(KernelOrKext);
if (Arg *A = Args.getLastArg(options::OPT_fno_stack_protector,
options::OPT_fstack_protector)) {
if (A->getOption().matches(options::OPT_fstack_protector))
StackProtectorLevel =
- std::max<unsigned>(LangOptions::SSPOn, DefaultStackProtectorLevel);
+ std::max<>(LangOptions::SSPOn, DefaultStackProtectorLevel);
else if (A->getOption().matches(options::OPT_fstack_protector_strong))
StackProtectorLevel = LangOptions::SSPStrong;
else if (A->getOption().matches(options::OPT_fstack_protector_all))
#include "Cuda.h"
#include "Gnu.h"
+#include "clang/Basic/LangOptions.h"
#include "clang/Driver/Tool.h"
#include "clang/Driver/ToolChain.h"
bool isPIEDefault() const override;
bool isPICDefaultForced() const override;
- unsigned int GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
- return 0;
+ LangOptions::StackProtectorMode
+ GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
+ return LangOptions::SSPOff;
}
void
#include "Cuda.h"
#include "ROCm.h"
+#include "clang/Basic/LangOptions.h"
#include "clang/Driver/DarwinSDKInfo.h"
#include "clang/Driver/Tool.h"
#include "clang/Driver/ToolChain.h"
return !(isTargetMacOS() && isMacosxVersionLT(10, 6));
}
- unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
+ LangOptions::StackProtectorMode
+ GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
// Stack protectors default to on for user code on 10.5,
// and for everything in 10.6 and beyond
if (isTargetIOSBased() || isTargetWatchOSBased())
- return 1;
+ return LangOptions::SSPOn;
else if (isTargetMacOS() && !isMacosxVersionLT(10, 6))
- return 1;
+ return LangOptions::SSPOn;
else if (isTargetMacOS() && !isMacosxVersionLT(10, 5) && !KernelOrKext)
- return 1;
+ return LangOptions::SSPOn;
- return 0;
+ return LangOptions::SSPOff;
}
void CheckObjCARC() const override;
#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_FUCHSIA_H
#include "Gnu.h"
+#include "clang/Basic/LangOptions.h"
#include "clang/Driver/Tool.h"
#include "clang/Driver/ToolChain.h"
return llvm::DebuggerKind::GDB;
}
- unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
- return 2; // SSPStrong
+ LangOptions::StackProtectorMode
+ GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
+ return LangOptions::SSPStrong;
}
std::string ComputeEffectiveClangTriple(const llvm::opt::ArgList &Args,
#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_OPENBSD_H
#include "Gnu.h"
+#include "clang/Basic/LangOptions.h"
#include "clang/Driver/Tool.h"
#include "clang/Driver/ToolChain.h"
std::string getCompilerRT(const llvm::opt::ArgList &Args, StringRef Component,
FileType Type = ToolChain::FT_Static) const override;
- unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
- return 2;
+ LangOptions::StackProtectorMode
+ GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
+ return LangOptions::SSPStrong;
}
unsigned GetDefaultDwarfVersion() const override { return 2; }
#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_PS4CPU_H
#include "Gnu.h"
+#include "clang/Basic/LangOptions.h"
#include "clang/Driver/Tool.h"
#include "clang/Driver/ToolChain.h"
bool HasNativeLLVMSupport() const override;
bool isPICDefault() const override;
- unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
- return 2; // SSPStrong
+ LangOptions::StackProtectorMode
+ GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
+ return LangOptions::SSPStrong;
}
llvm::DebuggerKind getDefaultDebuggerTuning() const override {