diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/AsmParser/Lexer.l | 1 | ||||
-rw-r--r-- | lib/AsmParser/llvmAsmParser.y | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l index 7a56fcc896..e124d24c14 100644 --- a/lib/AsmParser/Lexer.l +++ b/lib/AsmParser/Lexer.l @@ -174,6 +174,7 @@ appending { return APPENDING; } uninitialized { return EXTERNAL; } /* Deprecated, turn into external */ external { return EXTERNAL; } implementation { return IMPLEMENTATION; } +zeroinitializer { return ZEROINITIALIZER; } \.\.\. { return DOTDOTDOT; } null { return NULL_TOK; } to { return TO; } diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index ca5b48d01f..233d9ea6ba 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -702,7 +702,8 @@ Module *RunVMAsmParser(const std::string &Filename, FILE *F) { %type <StrVal> OptVAR_ID OptAssign FuncName -%token IMPLEMENTATION TRUE FALSE BEGINTOK ENDTOK DECLARE GLOBAL CONSTANT +%token IMPLEMENTATION ZEROINITIALIZER TRUE FALSE BEGINTOK ENDTOK +%token DECLARE GLOBAL CONSTANT %token TO EXCEPT DOTDOTDOT NULL_TOK CONST INTERNAL LINKONCE APPENDING %token OPAQUE NOT EXTERNAL TARGET ENDIAN POINTERSIZE LITTLE BIG @@ -1039,6 +1040,10 @@ ConstVal: Types '[' ConstVector ']' { // Nonempty unsized arr ThrowException("Mismatched types for constant expression!"); $$ = $2; delete $1; + } + | Types ZEROINITIALIZER { + $$ = Constant::getNullValue($1->get()); + delete $1; }; ConstVal : SIntType EINT64VAL { // integral constants |