From 469fbece3d5815954d50458476cefc764cb8b2d3 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 4 Feb 2026 14:02:14 -0800 Subject: [PATCH] fix check extension in attrib formatter --- src/dwarf/dwarf.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/dwarf/dwarf.c b/src/dwarf/dwarf.c index ca78ab5e..feeaa924 100644 --- a/src/dwarf/dwarf.c +++ b/src/dwarf/dwarf.c @@ -616,26 +616,23 @@ dw_string_from_attrib_kind(Arena *arena, DW_Version ver, DW_Ext ext, DW_AttribKi String8 result = {0}; //- rjf: try extensions - if(result.size != 0) + while(ext) { - while(ext) + U64 z = 64-clz64(ext); + if(z == 0) { - U64 z = 64-clz64(ext); - if(z == 0) - { - break; - } - U64 flag = 1 << (z-1); - ext &= ~flag; - switch(flag) - { - default:{}break; - case DW_Ext_Null: break; - case DW_Ext_GNU: switch (kind) { DW_AttribKind_GNU_XList } break; - case DW_Ext_LLVM: switch (kind) { DW_AttribKind_LLVM_XList } break; - case DW_Ext_APPLE: switch (kind) { DW_AttribKind_APPLE_XList } break; - case DW_Ext_MIPS: switch (kind) { DW_AttribKind_MIPS_XList } break; - } + break; + } + U64 flag = 1 << (z-1); + ext &= ~flag; + switch(flag) + { + default:{}break; + case DW_Ext_Null: break; + case DW_Ext_GNU: switch (kind) { DW_AttribKind_GNU_XList } break; + case DW_Ext_LLVM: switch (kind) { DW_AttribKind_LLVM_XList } break; + case DW_Ext_APPLE: switch (kind) { DW_AttribKind_APPLE_XList } break; + case DW_Ext_MIPS: switch (kind) { DW_AttribKind_MIPS_XList } break; } }