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 {...@@ -2013,7 +2013,8 @@ pub const DeclGen = struct {
2013 ptr_info.@"allowzero" or2013 ptr_info.@"allowzero" or
2014 !ptr_info.mutable or2014 !ptr_info.mutable or
2015 ptr_info.@"volatile" or2015 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())
2017 {2018 {
2018 var payload: Type.Payload.Pointer = .{2019 var payload: Type.Payload.Pointer = .{
2019 .data = .{2020 .data = .{
...@@ -2032,6 +2033,9 @@ pub const DeclGen = struct {...@@ -2032,6 +2033,9 @@ pub const DeclGen = struct {
2032 },2033 },
2033 },2034 },
2034 };2035 };
2036 if (!ptr_info.pointee_type.hasRuntimeBitsIgnoreComptime()) {
2037 payload.data.pointee_type = Type.anyopaque;
2038 }
2035 const bland_ptr_ty = Type.initPayload(&payload.base);2039 const bland_ptr_ty = Type.initPayload(&payload.base);
2036 const ptr_di_ty = try dg.lowerDebugType(bland_ptr_ty);2040 const ptr_di_ty = try dg.lowerDebugType(bland_ptr_ty);
2037 // The recursive call to `lowerDebugType` means we can't use `gop` anymore.2041 // 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 {...@@ -5342,6 +5342,7 @@ pub const Type = extern union {
5342 pub const @"void" = initTag(.void);5342 pub const @"void" = initTag(.void);
5343 pub const @"type" = initTag(.type);5343 pub const @"type" = initTag(.type);
5344 pub const @"anyerror" = initTag(.anyerror);5344 pub const @"anyerror" = initTag(.anyerror);
5345 pub const @"anyopaque" = initTag(.anyopaque);
53455346
5346 pub fn ptr(arena: Allocator, target: Target, data: Payload.Pointer.Data) !Type {5347 pub fn ptr(arena: Allocator, target: Target, data: Payload.Pointer.Data) !Type {
5347 var d = data;5348 var d = data;