aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-12-13 21:53:52 -0500
committerAndrew Kelley <superjoe30@gmail.com>2017-12-13 21:53:52 -0500
commitf55fdc00fcde3cd17ed0ddb94c0997c882dbe6b9 (patch)
tree911f875f15548275274e6811464850e3191b06b1 /test
parent84619abe9f16bc030c5bdb888f47a9b49b87c2ff (diff)
downloadzig-f55fdc00fcde3cd17ed0ddb94c0997c882dbe6b9.tar.gz
zig-f55fdc00fcde3cd17ed0ddb94c0997c882dbe6b9.zip
fix const and volatile qualifiers being dropped sometimes
in the expression `&const a.b`, the const (and/or volatile) qualifiers would be incorrectly dropped. closes #655
Diffstat (limited to 'test')
-rw-r--r--test/behavior.zig1
-rw-r--r--test/cases/bugs/655.zig12
-rw-r--r--test/cases/bugs/655_other_file.zig1
-rw-r--r--test/cases/misc.zig2
4 files changed, 15 insertions, 1 deletions
diff --git a/test/behavior.zig b/test/behavior.zig
index bdd428074b..da5b173e17 100644
--- a/test/behavior.zig
+++ b/test/behavior.zig
@@ -7,6 +7,7 @@ comptime {
_ = @import("cases/bitcast.zig");
_ = @import("cases/bool.zig");
_ = @import("cases/bugs/394.zig");
+ _ = @import("cases/bugs/655.zig");
_ = @import("cases/cast.zig");
_ = @import("cases/const_slice_child.zig");
_ = @import("cases/defer.zig");
diff --git a/test/cases/bugs/655.zig b/test/cases/bugs/655.zig
new file mode 100644
index 0000000000..a0da9d53a2
--- /dev/null
+++ b/test/cases/bugs/655.zig
@@ -0,0 +1,12 @@
+const std = @import("std");
+const other_file = @import("655_other_file.zig");
+
+test "function with &const parameter with type dereferenced by namespace" {
+ const x: other_file.Integer = 1234;
+ comptime std.debug.assert(@typeOf(&x) == &const other_file.Integer);
+ foo(x);
+}
+
+fn foo(x: &const other_file.Integer) {
+ std.debug.assert(*x == 1234);
+}
diff --git a/test/cases/bugs/655_other_file.zig b/test/cases/bugs/655_other_file.zig
new file mode 100644
index 0000000000..df1df44955
--- /dev/null
+++ b/test/cases/bugs/655_other_file.zig
@@ -0,0 +1 @@
+pub const Integer = u32;
diff --git a/test/cases/misc.zig b/test/cases/misc.zig
index 9f4f064f6b..e5e6575fab 100644
--- a/test/cases/misc.zig
+++ b/test/cases/misc.zig
@@ -504,7 +504,7 @@ test "@typeName" {
test "volatile load and store" {
var number: i32 = 1234;
- const ptr = &volatile number;
+ const ptr = (&volatile i32)(&number);
*ptr += 1;
assert(*ptr == 1235);
}