summaryrefslogtreecommitdiffstats
path: root/clang/tools
diff options
context:
space:
mode:
Diffstat (limited to 'clang/tools')
-rw-r--r--clang/tools/clang-cc/clang-cc.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/tools/clang-cc/clang-cc.cpp b/clang/tools/clang-cc/clang-cc.cpp
index a3ffb48281d..a1efe0101d7 100644
--- a/clang/tools/clang-cc/clang-cc.cpp
+++ b/clang/tools/clang-cc/clang-cc.cpp
@@ -660,6 +660,11 @@ PICLevel("pic-level", llvm::cl::desc("Value for __PIC__"));
static llvm::cl::opt<bool>
StaticDefine("static-define", llvm::cl::desc("Should __STATIC__ be defined"));
+static llvm::cl::opt<int>
+StackProtector("stack-protector",
+ llvm::cl::desc("Enable stack protectors"),
+ llvm::cl::init(-1));
+
static void InitializeLanguageStandard(LangOptions &Options, LangKind LK,
TargetInfo *Target,
const llvm::StringMap<bool> &Features) {
@@ -814,6 +819,10 @@ static void InitializeLanguageStandard(LangOptions &Options, LangKind LK,
Options.Static = StaticDefine;
+ assert(StackProtector <= 2 && "Invalid value for -stack-protector");
+ if (StackProtector != -1)
+ Options.StackProtector = StackProtector;
+
if (MainFileName.getPosition())
Options.setMainFileName(MainFileName.c_str());
}
OpenPOWER on IntegriCloud