summaryrefslogtreecommitdiffstats
path: root/llvm/lib
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
commita483577d2101b9a3c19ecf54f9f404d335e3fd0c (patch)
tree1ba41e5fca0803d2e59550483756e50144487fc5 /llvm/lib
parentb0da7ed9c8bdbc54086b74accd68e56bb4366fe5 (diff)
downloadbcm5719-llvm-a483577d2101b9a3c19ecf54f9f404d335e3fd0c.tar.gz
bcm5719-llvm-a483577d2101b9a3c19ecf54f9f404d335e3fd0c.zip
Add support for the noreturn and nounwind function attributes.
llvm-svn: 35258
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/AsmParser/Lexer.l2
-rw-r--r--llvm/lib/AsmParser/llvmAsmParser.y3
2 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/AsmParser/Lexer.l b/llvm/lib/AsmParser/Lexer.l
index 3cd08e9aeee..7c524a2ba5e 100644
--- a/llvm/lib/AsmParser/Lexer.l
+++ b/llvm/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/llvm/lib/AsmParser/llvmAsmParser.y b/llvm/lib/AsmParser/llvmAsmParser.y
index 8bd2f432d8f..4271273573c 100644
--- a/llvm/lib/AsmParser/llvmAsmParser.y
+++ b/llvm/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
;
OpenPOWER on IntegriCloud