aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2022-10-01 09:03:28 -0400
committerJacob Young <jacobly0@users.noreply.github.com>2022-10-01 09:03:28 -0400
commit272e31227c2636afbf286d5154808cab930cec66 (patch)
treeee531886e7f76bd8bbd60b71028688cbb3f95df2 /src/codegen
parentb7bd44a654671e76f15ed1a4e1226c0d7cc20d92 (diff)
downloadzig-272e31227c2636afbf286d5154808cab930cec66.tar.gz
zig-272e31227c2636afbf286d5154808cab930cec66.zip
llvm: add assert to reliably catch undefined value use
This assert makes it possible to detect a regression of #13030 in the future without relying on undefined value tracking.
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/llvm.zig7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 1b793265da..ffa710c67a 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -2332,10 +2332,13 @@ pub const Object = struct {
// buffer is only used for int_type, `builtin` is a struct.
const builtin_ty = mod.declPtr(builtin_decl).val.toType(undefined);
const builtin_namespace = builtin_ty.getNamespace().?;
- const stack_trace_decl = builtin_namespace.decls
+ const stack_trace_decl_index = builtin_namespace.decls
.getKeyAdapted(stack_trace_str, Module.DeclAdapter{ .mod = mod }).?;
+ const stack_trace_decl = mod.declPtr(stack_trace_decl_index);
- return mod.declPtr(stack_trace_decl).val.toType(undefined);
+ // Sema should have ensured that StackTrace was analyzed.
+ assert(stack_trace_decl.has_tv);
+ return stack_trace_decl.val.toType(undefined);
}
};