aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-05-09 14:52:06 -0400
committerAndrew Kelley <andrew@ziglang.org>2019-05-09 14:52:06 -0400
commit010963ce431db2648374368dfc886aa8482494a9 (patch)
tree5779df01f7f570e9adf8c9e56b7d9217e25a1bf3 /src/analyze.cpp
parentc459edac18a53854dbfdebe50a370d169e715145 (diff)
downloadzig-010963ce431db2648374368dfc886aa8482494a9.tar.gz
zig-010963ce431db2648374368dfc886aa8482494a9.zip
stage1: make some asserts print source location
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index aa510003b8..c441676e77 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -7230,3 +7230,16 @@ ZigLLVMDIType *get_llvm_di_type(CodeGen *g, ZigType *type) {
assertNoError(type_resolve(g, type, ResolveStatusLLVMFull));
return type->llvm_di_type;
}
+
+void src_assert(bool ok, AstNode *source_node) {
+ if (ok) return;
+ if (source_node == nullptr) {
+ fprintf(stderr, "when analyzing (unknown source location): ");
+ } else {
+ fprintf(stderr, "when analyzing %s:%u:%u: ",
+ buf_ptr(source_node->owner->data.structure.root_struct->path),
+ (unsigned)source_node->line + 1, (unsigned)source_node->column + 1);
+ }
+ const char *msg = "assertion failed";
+ stage2_panic(msg, strlen(msg));
+}