aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/std/os/linux.zig2
-rw-r--r--src/Sema.zig4
-rw-r--r--test/behavior.zig1
-rw-r--r--test/behavior/bugs/12003.zig7
-rw-r--r--test/cases/compile_errors/asm_at_compile_time.zig3
-rw-r--r--test/cases/compile_errors/duplicate_error_in_switch.zig6
-rw-r--r--test/cases/sparc64-linux/hello_world.zig22
7 files changed, 16 insertions, 29 deletions
diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig
index 9a01b90142..ab421c4d32 100644
--- a/lib/std/os/linux.zig
+++ b/lib/std/os/linux.zig
@@ -376,7 +376,7 @@ pub fn mknodat(dirfd: i32, path: [*:0]const u8, mode: u32, dev: u32) usize {
return syscall4(.mknodat, @bitCast(usize, @as(isize, dirfd)), @ptrToInt(path), mode, dev);
}
-pub fn mount(special: [*:0]const u8, dir: [*:0]const u8, fstype: [*:0]const u8, flags: u32, data: usize) usize {
+pub fn mount(special: [*:0]const u8, dir: [*:0]const u8, fstype: ?[*:0]const u8, flags: u32, data: usize) usize {
return syscall5(.mount, @ptrToInt(special), @ptrToInt(dir), @ptrToInt(fstype), flags, data);
}
diff --git a/src/Sema.zig b/src/Sema.zig
index e234255c6e..60d636b81e 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -21614,10 +21614,10 @@ fn beginComptimePtrLoad(
deref.ty_without_well_defined_layout = field_ptr.container_ty;
}
- const tv = &(deref.pointee orelse {
+ const tv = deref.pointee orelse {
deref.pointee = null;
break :blk deref;
- });
+ };
const coerce_in_mem_ok =
(try sema.coerceInMemoryAllowed(block, field_ptr.container_ty, tv.ty, false, target, src, src)) == .ok or
(try sema.coerceInMemoryAllowed(block, tv.ty, field_ptr.container_ty, false, target, src, src)) == .ok;
diff --git a/test/behavior.zig b/test/behavior.zig
index 7b7b57da84..8f5a1c795e 100644
--- a/test/behavior.zig
+++ b/test/behavior.zig
@@ -82,6 +82,7 @@ test {
_ = @import("behavior/bugs/11179.zig");
_ = @import("behavior/bugs/11181.zig");
_ = @import("behavior/bugs/11213.zig");
+ _ = @import("behavior/bugs/12003.zig");
_ = @import("behavior/byteswap.zig");
_ = @import("behavior/byval_arg_var.zig");
_ = @import("behavior/call.zig");
diff --git a/test/behavior/bugs/12003.zig b/test/behavior/bugs/12003.zig
new file mode 100644
index 0000000000..98c74b77ab
--- /dev/null
+++ b/test/behavior/bugs/12003.zig
@@ -0,0 +1,7 @@
+test {
+ comptime {
+ const tuple_with_ptrs = .{ &0, &0 };
+ const field_ptr = (&tuple_with_ptrs.@"0");
+ _ = field_ptr.*;
+ }
+}
diff --git a/test/cases/compile_errors/asm_at_compile_time.zig b/test/cases/compile_errors/asm_at_compile_time.zig
index ba4aa81170..601c89da9e 100644
--- a/test/cases/compile_errors/asm_at_compile_time.zig
+++ b/test/cases/compile_errors/asm_at_compile_time.zig
@@ -14,4 +14,5 @@ fn doSomeAsm() void {
// backend=llvm
// target=native
//
-// :6:5: error: unable to evaluate constant expression
+// :6:5: error: unable to resolve comptime value
+// :2:14: note: called from here
diff --git a/test/cases/compile_errors/duplicate_error_in_switch.zig b/test/cases/compile_errors/duplicate_error_in_switch.zig
index 6e9b1e9099..aaaed396fa 100644
--- a/test/cases/compile_errors/duplicate_error_in_switch.zig
+++ b/test/cases/compile_errors/duplicate_error_in_switch.zig
@@ -8,8 +8,8 @@ export fn entry() void {
}
fn foo(x: i32) !void {
switch (x) {
- 0 ... 10 => return error.Foo,
- 11 ... 20 => return error.Bar,
+ 0...10 => return error.Foo,
+ 11...20 => return error.Bar,
else => {},
}
}
@@ -19,4 +19,4 @@ fn foo(x: i32) !void {
// target=native
//
// :5:9: error: duplicate switch value
-// :3:9: note: other value here
+// :3:9: note: previous value here
diff --git a/test/cases/sparc64-linux/hello_world.zig b/test/cases/sparc64-linux/hello_world.zig
deleted file mode 100644
index b5a2562c44..0000000000
--- a/test/cases/sparc64-linux/hello_world.zig
+++ /dev/null
@@ -1,22 +0,0 @@
-const msg = "Hello, World!\n";
-
-fn length() usize {
- return msg.len;
-}
-
-pub fn main() void {
- asm volatile ("ta 0x6d"
- :
- : [number] "{g1}" (4),
- [arg1] "{o0}" (1),
- [arg2] "{o1}" (@ptrToInt(msg)),
- [arg3] "{o2}" (length()),
- : "o0", "o1", "o2", "o3", "o4", "o5", "o6", "o7", "memory"
- );
-}
-
-// run
-// target=sparc64-linux
-//
-// Hello, World!
-//