aboutsummaryrefslogtreecommitdiff
path: root/test/compile_errors.zig
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-08-29 07:30:22 -0400
committerAndrew Kelley <superjoe30@gmail.com>2017-08-29 07:51:34 -0400
commitc5c9d98065890eaeb9070cba20e5a1ed48b392af (patch)
tree46ad520853066174a22ad5eb6e3ac81e51f11d16 /test/compile_errors.zig
parentb8ed0cb3741533e036ee05faa165d2f0c49064f4 (diff)
downloadzig-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.zig37
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 {