mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 12:59:04 +00:00
parent
0e77b0ac89
commit
34eff50326
@ -8212,10 +8212,9 @@ static IrInstruction *ir_get_var_ptr(IrAnalyze *ira, IrInstruction *instruction,
|
||||
bool comptime_var_mem = ir_get_var_is_comptime(var);
|
||||
|
||||
ConstExprValue *mem_slot = nullptr;
|
||||
FnTableEntry *fn_entry = scope_fn_entry(var->parent_scope);
|
||||
if (var->value->special == ConstValSpecialStatic) {
|
||||
mem_slot = var->value;
|
||||
} else if (fn_entry) {
|
||||
} else {
|
||||
// TODO once the analyze code is fully ported over to IR we won't need this SIZE_MAX thing.
|
||||
if (var->mem_slot_index != SIZE_MAX && (comptime_var_mem || var->gen_is_const))
|
||||
mem_slot = &ira->exec_context.mem_slot_list[var->mem_slot_index];
|
||||
|
||||
@ -299,3 +299,18 @@ const Foo = struct {
|
||||
|
||||
var foo_contents = Foo { .name = "a", };
|
||||
const foo_ref = &foo_contents;
|
||||
|
||||
|
||||
|
||||
test "create global array with for loop" {
|
||||
assert(global_array[5] == 5 * 5);
|
||||
assert(global_array[9] == 9 * 9);
|
||||
}
|
||||
|
||||
const global_array = {
|
||||
var result: [10]usize = undefined;
|
||||
for (result) |*item, index| {
|
||||
*item = index * index;
|
||||
}
|
||||
result
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user