aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/struct.zig
diff options
context:
space:
mode:
authorDavid Rubin <daviru007@icloud.com>2024-04-16 22:44:55 -0700
committerDavid Rubin <daviru007@icloud.com>2024-05-11 02:17:24 -0700
commitffb63a05a3327e64bcf8ec7fd05c6aab8d304480 (patch)
tree5284c825f8126f35d756599f524a2f612620ddd4 /test/behavior/struct.zig
parent2fd83d8c0a8dd28c2474b26ead8cb24d6bde0901 (diff)
downloadzig-ffb63a05a3327e64bcf8ec7fd05c6aab8d304480.tar.gz
zig-ffb63a05a3327e64bcf8ec7fd05c6aab8d304480.zip
riscv: finally fix bug + `airAggregateInit`
i just hadn't realized that I placed the `riscv_start` branch in the non-simplified starts
Diffstat (limited to 'test/behavior/struct.zig')
-rw-r--r--test/behavior/struct.zig10
1 files changed, 7 insertions, 3 deletions
diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig
index d0509e308e..602be7e95e 100644
--- a/test/behavior/struct.zig
+++ b/test/behavior/struct.zig
@@ -176,6 +176,7 @@ const MemberFnTestFoo = struct {
test "call member function directly" {
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
const instance = MemberFnTestFoo{ .x = 1234 };
const result = MemberFnTestFoo.member(instance);
@@ -184,6 +185,7 @@ test "call member function directly" {
test "store member function in variable" {
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
const instance = MemberFnTestFoo{ .x = 1234 };
const memberFn = MemberFnTestFoo.member;
@@ -1559,6 +1561,7 @@ test "discarded struct initialization works as expected" {
test "function pointer in struct returns the struct" {
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
+ if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
const A = struct {
const A = @This();
@@ -1699,7 +1702,6 @@ test "struct field pointer has correct alignment" {
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
const S = struct {
fn doTheTest() !void {
@@ -1781,6 +1783,8 @@ fn countFields(v: anytype) usize {
}
test "struct init with no result pointer sets field result types" {
+ if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
+
const S = struct {
// A function parameter has a result type, but no result pointer.
fn f(s: struct { x: u32 }) u32 {
@@ -1928,6 +1932,8 @@ test "circular dependency through pointer field of a struct" {
}
test "field calls do not force struct field init resolution" {
+ if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
+
const S = struct {
x: u32 = blk: {
_ = @TypeOf(make().dummyFn()); // runtime field call - S not fully resolved - dummyFn call should not force field init resolution
@@ -1958,7 +1964,6 @@ test "extern struct fields are aligned to 1" {
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
const Foo = extern struct {
a: u8 align(1),
@@ -2090,7 +2095,6 @@ test "struct field default value is a call" {
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
- if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
const Z = packed struct {
a: u32,