From ccb67a3d85a227b045b740ce6c39ae169425f060 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Thu, 13 Nov 2008 01:02:14 +0000 Subject: Implement stack protectors as function attributes: "ssp" and "sspreq". llvm-svn: 59202 --- llvm/lib/AsmParser/LLLexer.cpp | 2 ++ llvm/lib/AsmParser/llvmAsmParser.y | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'llvm/lib/AsmParser') diff --git a/llvm/lib/AsmParser/LLLexer.cpp b/llvm/lib/AsmParser/LLLexer.cpp index 39d62bf71cf..20b2b888b1f 100644 --- a/llvm/lib/AsmParser/LLLexer.cpp +++ b/llvm/lib/AsmParser/LLLexer.cpp @@ -499,6 +499,8 @@ int LLLexer::LexIdentifier() { KEYWORD("noinline", NOINLINE); KEYWORD("alwaysinline", ALWAYSINLINE); KEYWORD("optsize", OPTSIZE); + KEYWORD("ssp", SSP); + KEYWORD("sspreq", SSPREQ); KEYWORD("type", TYPE); KEYWORD("opaque", OPAQUE); diff --git a/llvm/lib/AsmParser/llvmAsmParser.y b/llvm/lib/AsmParser/llvmAsmParser.y index 36b827d6b72..af8e3afee3f 100644 --- a/llvm/lib/AsmParser/llvmAsmParser.y +++ b/llvm/lib/AsmParser/llvmAsmParser.y @@ -1137,7 +1137,7 @@ Module *llvm::RunVMAsmParser(llvm::MemoryBuffer *MB) { // Function Attributes %token SIGNEXT ZEROEXT NORETURN INREG SRET NOUNWIND NOALIAS BYVAL NEST -%token READNONE READONLY GC OPTSIZE NOINLINE ALWAYSINLINE +%token READNONE READONLY GC OPTSIZE NOINLINE ALWAYSINLINE SSP SSPREQ // Visibility Styles %token DEFAULT HIDDEN PROTECTED @@ -1305,7 +1305,9 @@ FuncAttr : NORETURN { $$ = Attribute::NoReturn; } | READONLY { $$ = Attribute::ReadOnly; } | NOINLINE { $$ = Attribute::NoInline; } | ALWAYSINLINE { $$ = Attribute::AlwaysInline; } - | OPTSIZE { $$ = Attribute::OptimizeForSize; } + | OPTSIZE { $$ = Attribute::OptimizeForSize; } + | SSP { $$ = Attribute::StackProtect; } + | SSPREQ { $$ = Attribute::StackProtectReq; } ; OptFuncAttrs : /* empty */ { $$ = Attribute::None; } -- cgit v1.2.3