summaryrefslogtreecommitdiff
path: root/lib/AsmParser
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-03-22 02:13:23 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-03-22 02:13:23 +0000
commita39dfd39e4836f1fdc49b970884523f0917c9080 (patch)
treea7af539ee2c91f85e3f6c2a2228e6686b5a32b9d /lib/AsmParser
parent27e4da93b6924879aabf941bc6c71d4299e92229 (diff)
downloadllvm-a39dfd39e4836f1fdc49b970884523f0917c9080.tar.gz
llvm-a39dfd39e4836f1fdc49b970884523f0917c9080.tar.bz2
llvm-a39dfd39e4836f1fdc49b970884523f0917c9080.tar.xz
Add support for the noreturn and nounwind function attributes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35258 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AsmParser')
-rw-r--r--lib/AsmParser/Lexer.l2
-rw-r--r--lib/AsmParser/llvmAsmParser.y3
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l
index 3cd08e9aee..7c524a2ba5 100644
--- a/lib/AsmParser/Lexer.l
+++ b/lib/AsmParser/Lexer.l
@@ -235,6 +235,8 @@ x86_fastcallcc { return X86_FASTCALLCC_TOK; }
inreg { return INREG; }
sret { return SRET; }
+nounwind { return NOUNWIND; }
+noreturn { return NORETURN; }
void { RET_TY(Type::VoidTy, VOID); }
float { RET_TY(Type::FloatTy, FLOAT); }
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 8bd2f432d8..4271273573 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -1078,7 +1078,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
%token <OtherOpVal> EXTRACTELEMENT INSERTELEMENT SHUFFLEVECTOR
// Function Attributes
-%token NORETURN INREG SRET
+%token NORETURN INREG SRET NOUNWIND
// Visibility Styles
%token DEFAULT HIDDEN
@@ -1204,6 +1204,7 @@ OptParamAttrs : /* empty */ { $$ = FunctionType::NoAttributeSet; }
;
FuncAttr : NORETURN { $$ = FunctionType::NoReturnAttribute; }
+ | NOUNWIND { $$ = FunctionType::NoUnwindAttribute; }
| ParamAttr
;