aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-02-14 01:09:33 -0500
committerAndrew Kelley <andrew@ziglang.org>2019-02-14 01:09:33 -0500
commit59de24817e8538434f35a20a401f40c2f0231a9a (patch)
tree7c06cd2749d2bb449742fc98dac59ab82a480b48 /src/analyze.cpp
parentd4d2718bca9e23ceec029bb505c0ea1b91c875b6 (diff)
downloadzig-59de24817e8538434f35a20a401f40c2f0231a9a.tar.gz
zig-59de24817e8538434f35a20a401f40c2f0231a9a.zip
runtime safety check for casting null to pointer
see #1059
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index 900def52d4..6a8090a843 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -6902,3 +6902,12 @@ const char *container_string(ContainerKind kind) {
}
zig_unreachable();
}
+
+bool ptr_allows_addr_zero(ZigType *ptr_type) {
+ if (ptr_type->id == ZigTypeIdPointer) {
+ return ptr_type->data.pointer.allow_zero;
+ } else if (ptr_type->id == ZigTypeIdOptional) {
+ return true;
+ }
+ return false;
+}