diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l index 3cd08e9aeee..7c524a2ba5e 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 8bd2f432d8f..4271273573c 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -1078,7 +1078,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) { %token 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 ;