diff options
author | Bill Wendling <isanbard@gmail.com> | 2008-11-13 01:02:14 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2008-11-13 01:02:14 +0000 |
commit | ccb67a3d85a227b045b740ce6c39ae169425f060 (patch) | |
tree | d413a3874f8bf4466ac23c7d50942331dea6b7ee /llvm/lib/AsmParser | |
parent | f75c823e5c2ab23878c060e0825b9fe99fac2d52 (diff) | |
download | bcm5719-llvm-ccb67a3d85a227b045b740ce6c39ae169425f060.tar.gz bcm5719-llvm-ccb67a3d85a227b045b740ce6c39ae169425f060.zip |
Implement stack protectors as function attributes: "ssp" and "sspreq".
llvm-svn: 59202
Diffstat (limited to 'llvm/lib/AsmParser')
-rw-r--r-- | llvm/lib/AsmParser/LLLexer.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/AsmParser/llvmAsmParser.y | 6 |
2 files changed, 6 insertions, 2 deletions
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; } |