diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2022-10-16 14:44:51 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-10-17 07:50:01 -0400 |
| commit | 1e0f74a9e6a9071bfb82fa3ce5a40ac90bdb91cd (patch) | |
| tree | 0130fa70beea11de638540bc095522364b145fa3 /lib | |
| parent | 059e397ffcf5ad348dae6de1cd552f8a742a2fbc (diff) | |
| download | zig-1e0f74a9e6a9071bfb82fa3ce5a40ac90bdb91cd.tar.gz zig-1e0f74a9e6a9071bfb82fa3ce5a40ac90bdb91cd.zip | |
emutls: add const to default_value field
Commit f14cc75 accidentally added a const when grepping for assignments
to `std.builtin.Type.StructField.default_value`, however when looking
into it further, I noticed that even though this default_value field is
emitted into the .data section, the value it points to is actually
emitted into the .rodata section, so it seems correct to use const here.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/compiler_rt/emutls.zig | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/compiler_rt/emutls.zig b/lib/compiler_rt/emutls.zig index 2a49fa564f..379be7e23f 100644 --- a/lib/compiler_rt/emutls.zig +++ b/lib/compiler_rt/emutls.zig @@ -141,7 +141,7 @@ const ObjectArray = struct { if (control.default_value) |value| { // default value: copy the content to newly allocated object. - @memcpy(data, @ptrCast([*]u8, value), size); + @memcpy(data, @ptrCast([*]const u8, value), size); } else { // no default: return zeroed memory. @memset(data, 0, size); @@ -236,7 +236,7 @@ const emutls_control = extern struct { }, // null or non-zero initial value for the object - default_value: ?*anyopaque, + default_value: ?*const anyopaque, // global Mutex used to serialize control.index initialization. var mutex: std.c.pthread_mutex_t = std.c.PTHREAD_MUTEX_INITIALIZER; @@ -291,7 +291,7 @@ const emutls_control = extern struct { } /// Simple helper for testing purpose. - pub fn init(comptime T: type, default_value: ?*T) emutls_control { + pub fn init(comptime T: type, default_value: ?*const T) emutls_control { return emutls_control{ .size = @sizeOf(T), .alignment = @alignOf(T), @@ -362,7 +362,7 @@ test "__emutls_get_address zeroed" { test "__emutls_get_address with default_value" { if (!builtin.link_libc or builtin.os.tag != .openbsd) return error.SkipZigTest; - var value: usize = 5678; // default value + const value: usize = 5678; // default value var ctl = emutls_control.init(usize, &value); try expect(ctl.object.index == 0); @@ -384,8 +384,7 @@ test "test default_value with differents sizes" { const testType = struct { fn _testType(comptime T: type, value: T) !void { - var def: T = value; - var ctl = emutls_control.init(T, &def); + var ctl = emutls_control.init(T, &value); var x = ctl.get_typed_pointer(T); try expect(x.* == value); } |
