| ... | @@ -2377,6 +2377,7 @@ fn varDecl( | ... | @@ -2377,6 +2377,7 @@ fn varDecl( |
| 2377 | const gpa = astgen.gpa; | 2377 | const gpa = astgen.gpa; |
| 2378 | const tree = astgen.tree; | 2378 | const tree = astgen.tree; |
| 2379 | const token_tags = tree.tokens.items(.tag); | 2379 | const token_tags = tree.tokens.items(.tag); |
| | 2380 | const main_tokens = tree.nodes.items(.main_token); |
| 2380 | | 2381 | |
| 2381 | const name_token = var_decl.ast.mut_token + 1; | 2382 | const name_token = var_decl.ast.mut_token + 1; |
| 2382 | const ident_name_raw = tree.tokenSlice(name_token); | 2383 | const ident_name_raw = tree.tokenSlice(name_token); |
| ... | @@ -2391,6 +2392,14 @@ fn varDecl( | ... | @@ -2391,6 +2392,14 @@ fn varDecl( |
| 2391 | return astgen.failNode(node, "variables must be initialized", .{}); | 2392 | return astgen.failNode(node, "variables must be initialized", .{}); |
| 2392 | } | 2393 | } |
| 2393 | | 2394 | |
| | 2395 | if (var_decl.ast.addrspace_node != 0) { |
| | 2396 | return astgen.failTok(main_tokens[var_decl.ast.addrspace_node], "cannot set address space of local variable '{s}'", .{ ident_name_raw }); |
| | 2397 | } |
| | 2398 | |
| | 2399 | if (var_decl.ast.section_node != 0) { |
| | 2400 | return astgen.failTok(main_tokens[var_decl.ast.section_node], "cannot set section of local variable '{s}'", .{ ident_name_raw }); |
| | 2401 | } |
| | 2402 | |
| 2394 | const align_inst: Zir.Inst.Ref = if (var_decl.ast.align_node != 0) | 2403 | const align_inst: Zir.Inst.Ref = if (var_decl.ast.align_node != 0) |
| 2395 | try expr(gz, scope, align_rl, var_decl.ast.align_node) | 2404 | try expr(gz, scope, align_rl, var_decl.ast.align_node) |
| 2396 | else | 2405 | else |