authorgravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2021-08-27 05:04:13+02:00
committergravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2021-09-20 02:29:04+02:00
log7686165c8265cebfb7a3d7d4fd4f00a46dc4743a
tree7a03f46aea52bdf1b1a3f701a95b88f0ae8b9598
parent6336f08c2122faf712cb4b5096555e2617ce3936

Address Spaces: Pointer coercion errors tests


1 files changed, 41 insertions(+), 2 deletions(-)

test/cases.zig+41-2
......@@ -861,7 +861,7 @@ pub fn addCases(ctx: *TestContext) !void {
861861 "Hello, World!\n",
862862 );
863863 try case.files.append(.{
864 .src =
864 .src =
865865 \\pub fn print() void {
866866 \\ asm volatile ("syscall"
867867 \\ :
......@@ -924,7 +924,7 @@ pub fn addCases(ctx: *TestContext) !void {
924924 },
925925 );
926926 try case.files.append(.{
927 .src =
927 .src =
928928 \\// dummy comment to make print be on line 2
929929 \\fn print() void {
930930 \\ asm volatile ("syscall"
......@@ -1819,4 +1819,43 @@ pub fn addCases(ctx: *TestContext) !void {
18191819 ":2:28: error: cannot set address space of local variable 'foo'",
18201820 });
18211821 }
1822
1823 {
1824 var case = ctx.exe("address space pointer coercions", linux_x64);
1825 case.addError(
1826 \\fn entry(a: *addrspace(.gs) i32) *i32 {
1827 \\ return a;
1828 \\}
1829 \\pub fn main() void { _ = entry; }
1830 , &[_][]const u8{
1831 ":2:12: error: expected *i32, found *addrspace(.gs) i32",
1832 });
1833
1834 case.addError(
1835 \\fn entry(a: *addrspace(.gs) i32) *addrspace(.fs) i32 {
1836 \\ return a;
1837 \\}
1838 \\pub fn main() void { _ = entry; }
1839 , &[_][]const u8{
1840 ":2:12: error: expected *addrspace(.fs) i32, found *addrspace(.gs) i32",
1841 });
1842
1843 case.addError(
1844 \\fn entry(a: ?*addrspace(.gs) i32) *i32 {
1845 \\ return a.?;
1846 \\}
1847 \\pub fn main() void { _ = entry; }
1848 , &[_][]const u8{
1849 ":2:13: error: expected *i32, found *addrspace(.gs) i32",
1850 });
1851
1852 case.addError(
1853 \\fn entry(a: *addrspace(.gs) i32) *i32 {
1854 \\ return &a.*;
1855 \\}
1856 \\pub fn main() void { _ = entry; }
1857 , &[_][]const u8{
1858 ":2:12: error: expected *i32, found *addrspace(.gs) i32",
1859 });
1860 }
18221861}