Commit bfe9d4184f

Vexu <git@vexu.eu>
2020-07-11 19:35:00
fix alignment parsing in stage1
1 parent fe08a4d
Changed files (2)
src
test
stage1
behavior
src/parser.cpp
@@ -2679,7 +2679,7 @@ static AstNode *ast_parse_prefix_type_op(ParseContext *pc) {
 
             if (eat_token_if(pc, TokenIdKeywordAlign) != nullptr) {
                 expect_token(pc, TokenIdLParen);
-                AstNode *align_expr = ast_parse_expr(pc);
+                AstNode *align_expr = ast_expect(pc, ast_parse_expr);
                 child->data.pointer_type.align_expr = align_expr;
                 if (eat_token_if(pc, TokenIdColon) != nullptr) {
                     Token *bit_offset_start = expect_token(pc, TokenIdIntLiteral);
test/stage1/behavior/eval.zig
@@ -758,7 +758,7 @@ test "comptime bitwise operators" {
 test "*align(1) u16 is the same as *align(1:0:2) u16" {
     comptime {
         expect(*align(1:0:2) u16 == *align(1) u16);
-        expect(*align(:0:2) u16 == *u16);
+        expect(*align(2:0:2) u16 == *u16);
     }
 }