authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-11 21:00:07-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-11 21:00:07-07:00
log491e3ba6b12e79341d8f5f7711678ec597f7b244
treebef76aa8fd5f1e1ef2d71bdf681d52932c49b338
parent60d6037f236379e521ccb7a8e1b7d24ed469ac3f

LLVM: fix debug info for pointers to void


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

src/codegen/llvm.zig+5-1
......@@ -2013,7 +2013,8 @@ pub const DeclGen = struct {
20132013 ptr_info.@"allowzero" or
20142014 !ptr_info.mutable or
20152015 ptr_info.@"volatile" or
2016 ptr_info.size == .Many or ptr_info.size == .C)
2016 ptr_info.size == .Many or ptr_info.size == .C or
2017 !ptr_info.pointee_type.hasRuntimeBitsIgnoreComptime())
20172018 {
20182019 var payload: Type.Payload.Pointer = .{
20192020 .data = .{
......@@ -2032,6 +2033,9 @@ pub const DeclGen = struct {
20322033 },
20332034 },
20342035 };
2036 if (!ptr_info.pointee_type.hasRuntimeBitsIgnoreComptime()) {
2037 payload.data.pointee_type = Type.anyopaque;
2038 }
20352039 const bland_ptr_ty = Type.initPayload(&payload.base);
20362040 const ptr_di_ty = try dg.lowerDebugType(bland_ptr_ty);
20372041 // The recursive call to `lowerDebugType` means we can't use `gop` anymore.
src/type.zig+1
......@@ -5342,6 +5342,7 @@ pub const Type = extern union {
53425342 pub const @"void" = initTag(.void);
53435343 pub const @"type" = initTag(.type);
53445344 pub const @"anyerror" = initTag(.anyerror);
5345 pub const @"anyopaque" = initTag(.anyopaque);
53455346
53465347 pub fn ptr(arena: Allocator, target: Target, data: Payload.Pointer.Data) !Type {
53475348 var d = data;