aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/AsmParser/Lexer.l1
-rw-r--r--lib/AsmParser/llvmAsmParser.y7
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