summaryrefslogtreecommitdiffstats
path: root/llvm/lib/AsmParser
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2008-11-13 01:02:14 +0000
committerBill Wendling <isanbard@gmail.com>2008-11-13 01:02:14 +0000
commitccb67a3d85a227b045b740ce6c39ae169425f060 (patch)
treed413a3874f8bf4466ac23c7d50942331dea6b7ee /llvm/lib/AsmParser
parentf75c823e5c2ab23878c060e0825b9fe99fac2d52 (diff)
downloadbcm5719-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.cpp2
-rw-r--r--llvm/lib/AsmParser/llvmAsmParser.y6
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; }
OpenPOWER on IntegriCloud