| ... | @@ -861,7 +861,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -861,7 +861,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 861 | "Hello, World!\n", | 861 | "Hello, World!\n", |
| 862 | ); | 862 | ); |
| 863 | try case.files.append(.{ | 863 | try case.files.append(.{ |
| 864 | .src = | 864 | .src = |
| 865 | \\pub fn print() void { | 865 | \\pub fn print() void { |
| 866 | \\ asm volatile ("syscall" | 866 | \\ asm volatile ("syscall" |
| 867 | \\ : | 867 | \\ : |
| ... | @@ -924,7 +924,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -924,7 +924,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 924 | }, | 924 | }, |
| 925 | ); | 925 | ); |
| 926 | try case.files.append(.{ | 926 | try case.files.append(.{ |
| 927 | .src = | 927 | .src = |
| 928 | \\// dummy comment to make print be on line 2 | 928 | \\// dummy comment to make print be on line 2 |
| 929 | \\fn print() void { | 929 | \\fn print() void { |
| 930 | \\ asm volatile ("syscall" | 930 | \\ asm volatile ("syscall" |
| ... | @@ -1819,4 +1819,43 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -1819,4 +1819,43 @@ pub fn addCases(ctx: *TestContext) !void { |
| 1819 | ":2:28: error: cannot set address space of local variable 'foo'", | 1819 | ":2:28: error: cannot set address space of local variable 'foo'", |
| 1820 | }); | 1820 | }); |
| 1821 | } | 1821 | } |
| | 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 | } |
| 1822 | } | 1861 | } |