authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2022-10-01 09:03:28-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2022-10-01 09:03:28-04:00
log272e31227c2636afbf286d5154808cab930cec66
treeee531886e7f76bd8bbd60b71028688cbb3f95df2
parentb7bd44a654671e76f15ed1a4e1226c0d7cc20d92

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.

1 files changed, 5 insertions(+), 2 deletions(-)

src/codegen/llvm.zig+5-2
......@@ -2332,10 +2332,13 @@ pub const Object = struct {
23322332 // buffer is only used for int_type, `builtin` is a struct.
23332333 const builtin_ty = mod.declPtr(builtin_decl).val.toType(undefined);
23342334 const builtin_namespace = builtin_ty.getNamespace().?;
2335 const stack_trace_decl = builtin_namespace.decls
2335 const stack_trace_decl_index = builtin_namespace.decls
23362336 .getKeyAdapted(stack_trace_str, Module.DeclAdapter{ .mod = mod }).?;
2337 const stack_trace_decl = mod.declPtr(stack_trace_decl_index);
23372338
2338 return mod.declPtr(stack_trace_decl).val.toType(undefined);
2339 // Sema should have ensured that StackTrace was analyzed.
2340 assert(stack_trace_decl.has_tv);
2341 return stack_trace_decl.val.toType(undefined);
23392342 }
23402343};
23412344