diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-08-29 07:30:22 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-08-29 07:51:34 -0400 |
| commit | c5c9d98065890eaeb9070cba20e5a1ed48b392af (patch) | |
| tree | 46ad520853066174a22ad5eb6e3ac81e51f11d16 /test/compile_errors.zig | |
| parent | b8ed0cb3741533e036ee05faa165d2f0c49064f4 (diff) | |
| download | zig-c5c9d98065890eaeb9070cba20e5a1ed48b392af.tar.gz zig-c5c9d98065890eaeb9070cba20e5a1ed48b392af.zip | |
introduce align keyword
* remove `@setGlobalAlign`
* add align keyword for setting alignment on functions and
variables.
* loads and stores use alignment from pointer
* memcpy, memset use alignment from pointer
* add syntax for pointer alignment
* slices can have volatile
* add u2, i2 primitives
* ignore preferred align and use abi align everywhere
* back to only having alignOf builtin.
preferredAlignOf is too tricky to be useful.
See #432. Partial revert of
e726925e802eddab53cbfd9aacbc5eefe95c356f.
See #37
Diffstat (limited to 'test/compile_errors.zig')
| -rw-r--r-- | test/compile_errors.zig | 37 |
1 files changed, 9 insertions, 28 deletions
diff --git a/test/compile_errors.zig b/test/compile_errors.zig index e2f4489b0f..ac5e06d9f3 100644 --- a/test/compile_errors.zig +++ b/test/compile_errors.zig @@ -1316,13 +1316,15 @@ pub fn addCases(cases: &tests.CompileErrorContext) { \\} , ".tmp_source.zig:2:24: error: integer value 753664 cannot be implicitly casted to type 'u16'"); - cases.add("set global variable alignment to non power of 2", - \\const some_data: [100]u8 = undefined; - \\comptime { - \\ @setGlobalAlign(some_data, 3); - \\} + cases.add("global variable alignment non power of 2", + \\const some_data: [100]u8 align 3 = undefined; \\export fn entry() -> usize { @sizeOf(@typeOf(some_data)) } - , ".tmp_source.zig:3:32: error: alignment value must be power of 2"); + , ".tmp_source.zig:1:32: error: alignment value 3 is not a power of 2"); + + cases.add("function alignment non power of 2", + \\extern fn foo() align 3; + \\export fn entry() { foo() } + , ".tmp_source.zig:1:23: error: alignment value 3 is not a power of 2"); cases.add("compile log", \\export fn foo() { @@ -1342,9 +1344,6 @@ pub fn addCases(cases: &tests.CompileErrorContext) { ".tmp_source.zig:2:17: note: called from here"); cases.add("casting bit offset pointer to regular pointer", - \\const u2 = @IntType(false, 2); - \\const u3 = @IntType(false, 3); - \\ \\const BitField = packed struct { \\ a: u3, \\ b: u3, @@ -1360,7 +1359,7 @@ pub fn addCases(cases: &tests.CompileErrorContext) { \\} \\ \\export fn entry() -> usize { @sizeOf(@typeOf(foo)) } - , ".tmp_source.zig:11:26: error: expected type '&const u3', found '&:3:6 const u3'"); + , ".tmp_source.zig:8:26: error: expected type '&const u3', found '&align 1:3:6 const u3'"); cases.add("referring to a struct that is invalid", \\const UsbDeviceRequest = struct { @@ -1626,24 +1625,6 @@ pub fn addCases(cases: &tests.CompileErrorContext) { "error: 'main' is private", ".tmp_source.zig:1:1: note: declared here"); - cases.add("@setGlobalAlign extern variable", - \\extern var foo: i32; - \\comptime { - \\ @setGlobalAlign(foo, 4); - \\} - , - ".tmp_source.zig:3:5: error: cannot set alignment of external variable 'foo'", - ".tmp_source.zig:1:8: note: declared here"); - - cases.add("@setGlobalAlign extern fn", - \\extern fn foo(); - \\comptime { - \\ @setGlobalAlign(foo, 4); - \\} - , - ".tmp_source.zig:3:5: error: cannot set alignment of external function 'foo'", - ".tmp_source.zig:1:8: note: declared here"); - cases.add("@setGlobalSection extern variable", \\extern var foo: i32; \\comptime { |
