aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-03-23 19:01:33 -0400
committerAndrew Kelley <andrew@ziglang.org>2019-03-23 19:01:51 -0400
commit6a9c32f7597d37592d79afa27441e7caf9a30529 (patch)
treed42bc9daf60782e8fb97abdcb46cc8bc20858be5 /test
parent4d50bc3f8dd2b9fd5b7dde6f63f104aaba6dbf5a (diff)
downloadzig-6a9c32f7597d37592d79afa27441e7caf9a30529.tar.gz
zig-6a9c32f7597d37592d79afa27441e7caf9a30529.zip
add regression tests for a bug fixed by an older commit
closes #1914
Diffstat (limited to 'test')
-rw-r--r--test/stage1/behavior.zig1
-rw-r--r--test/stage1/behavior/bugs/1914.zig31
2 files changed, 32 insertions, 0 deletions
diff --git a/test/stage1/behavior.zig b/test/stage1/behavior.zig
index 9940a76af1..3af571cd8f 100644
--- a/test/stage1/behavior.zig
+++ b/test/stage1/behavior.zig
@@ -20,6 +20,7 @@ comptime {
_ = @import("behavior/bugs/1486.zig");
_ = @import("behavior/bugs/1500.zig");
_ = @import("behavior/bugs/1851.zig");
+ _ = @import("behavior/bugs/1914.zig");
_ = @import("behavior/bugs/2006.zig");
_ = @import("behavior/bugs/394.zig");
_ = @import("behavior/bugs/421.zig");
diff --git a/test/stage1/behavior/bugs/1914.zig b/test/stage1/behavior/bugs/1914.zig
new file mode 100644
index 0000000000..694daf23bd
--- /dev/null
+++ b/test/stage1/behavior/bugs/1914.zig
@@ -0,0 +1,31 @@
+const std = @import("std");
+
+const A = struct {
+ b_list_pointer: *const []B,
+};
+const B = struct {
+ a_pointer: *const A,
+};
+
+const b_list: []B = []B{};
+const a = A{ .b_list_pointer = &b_list };
+
+test "segfault bug" {
+ const assert = std.debug.assert;
+ const obj = B{ .a_pointer = &a };
+ assert(obj.a_pointer == &a); // this makes zig crash
+}
+
+const A2 = struct {
+ pointer: *B,
+};
+
+pub const B2 = struct {
+ pointer_array: []*A2,
+};
+
+var b_value = B2{ .pointer_array = []*A2{} };
+
+test "basic stuff" {
+ std.debug.assert(&b_value == &b_value);
+}