[llvm-commits] [llvm-gcc-4.2] r59205 - in /llvm-gcc-4.2/trunk/gcc: llvm-backend.cpp llvm-convert.cpp
Bill Wendling
isanbard at gmail.com
Wed Nov 12 17:04:15 PST 2008
Author: void
Date: Wed Nov 12 19:04:15 2008
New Revision: 59205
URL: http://llvm.org/viewvc/llvm-project?rev=59205&view=rev
Log:
Implement stack protectors using function attributes instead of command line
options. This allows LTO to generate proper stack protectors.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=59205&r1=59204&r2=59205&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Wed Nov 12 19:04:15 2008
@@ -167,16 +167,8 @@
}
if (flag_stack_protect > 0) {
- std::string Arg;
-
- if (flag_stack_protect == 1)
- Arg = "--enable-stack-protector=some";
- else
- Arg = "--enable-stack-protector=all";
-
- ArgStrings.push_back(Arg);
- Arg = "--stack-protector-buffer-size=" +
- utostr(PARAM_VALUE(PARAM_SSP_BUFFER_SIZE));
+ std::string Arg("--stack-protector-buffer-size=" +
+ utostr(PARAM_VALUE(PARAM_SSP_BUFFER_SIZE)));
ArgStrings.push_back(Arg);
}
Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=59205&r1=59204&r2=59205&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Wed Nov 12 19:04:15 2008
@@ -679,6 +679,12 @@
if (optimize_size)
Fn->addFnAttr(Attribute::OptimizeForSize);
+ // Handle stack smashing protection.
+ if (flag_stack_protect == 1)
+ Fn->addFnAttr(Attribute::StackProtect);
+ else if (flag_stack_protect == 2)
+ Fn->addFnAttr(Attribute::StackProtectReq);
+
// Handle annotate attributes
if (DECL_ATTRIBUTES(FnDecl))
AddAnnotateAttrsToGlobal(Fn, FnDecl);
More information about the llvm-commits
mailing list