From 5ba981357db0b103c094f3573aeb85cd92ec1396 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 27 Mar 2025 15:01:16 -0700 Subject: [PATCH] fix string cast warning --- src/lib_rdi_format/rdi_format.c | 112 ++++++++++++++++---------------- src/lib_rdi_format/rdi_format.h | 1 + src/raddump/raddump.c | 18 ++--- src/raddump/raddump.h | 2 +- src/rdi_format/rdi_format.mdesk | 3 +- 5 files changed, 64 insertions(+), 72 deletions(-) diff --git a/src/lib_rdi_format/rdi_format.c b/src/lib_rdi_format/rdi_format.c index 74fc9ed3..3765d03e 100644 --- a/src/lib_rdi_format/rdi_format.c +++ b/src/lib_rdi_format/rdi_format.c @@ -188,62 +188,62 @@ RDI_U8 *result = 0; switch (kind) { default:{}break; -case RDI_TypeKind_NULL: {result = "NULL"; *size_out = sizeof("NULL")-1;}break; -case RDI_TypeKind_Void: {result = "Void"; *size_out = sizeof("Void")-1;}break; -case RDI_TypeKind_Handle: {result = "Handle"; *size_out = sizeof("Handle")-1;}break; -case RDI_TypeKind_HResult: {result = "HResult"; *size_out = sizeof("HResult")-1;}break; -case RDI_TypeKind_Char8: {result = "Char8"; *size_out = sizeof("Char8")-1;}break; -case RDI_TypeKind_Char16: {result = "Char16"; *size_out = sizeof("Char16")-1;}break; -case RDI_TypeKind_Char32: {result = "Char32"; *size_out = sizeof("Char32")-1;}break; -case RDI_TypeKind_UChar8: {result = "UChar8"; *size_out = sizeof("UChar8")-1;}break; -case RDI_TypeKind_UChar16: {result = "UChar16"; *size_out = sizeof("UChar16")-1;}break; -case RDI_TypeKind_UChar32: {result = "UChar32"; *size_out = sizeof("UChar32")-1;}break; -case RDI_TypeKind_U8: {result = "U8"; *size_out = sizeof("U8")-1;}break; -case RDI_TypeKind_U16: {result = "U16"; *size_out = sizeof("U16")-1;}break; -case RDI_TypeKind_U32: {result = "U32"; *size_out = sizeof("U32")-1;}break; -case RDI_TypeKind_U64: {result = "U64"; *size_out = sizeof("U64")-1;}break; -case RDI_TypeKind_U128: {result = "U128"; *size_out = sizeof("U128")-1;}break; -case RDI_TypeKind_U256: {result = "U256"; *size_out = sizeof("U256")-1;}break; -case RDI_TypeKind_U512: {result = "U512"; *size_out = sizeof("U512")-1;}break; -case RDI_TypeKind_S8: {result = "S8"; *size_out = sizeof("S8")-1;}break; -case RDI_TypeKind_S16: {result = "S16"; *size_out = sizeof("S16")-1;}break; -case RDI_TypeKind_S32: {result = "S32"; *size_out = sizeof("S32")-1;}break; -case RDI_TypeKind_S64: {result = "S64"; *size_out = sizeof("S64")-1;}break; -case RDI_TypeKind_S128: {result = "S128"; *size_out = sizeof("S128")-1;}break; -case RDI_TypeKind_S256: {result = "S256"; *size_out = sizeof("S256")-1;}break; -case RDI_TypeKind_S512: {result = "S512"; *size_out = sizeof("S512")-1;}break; -case RDI_TypeKind_Bool: {result = "Bool"; *size_out = sizeof("Bool")-1;}break; -case RDI_TypeKind_F16: {result = "F16"; *size_out = sizeof("F16")-1;}break; -case RDI_TypeKind_F32: {result = "F32"; *size_out = sizeof("F32")-1;}break; -case RDI_TypeKind_F32PP: {result = "F32PP"; *size_out = sizeof("F32PP")-1;}break; -case RDI_TypeKind_F48: {result = "F48"; *size_out = sizeof("F48")-1;}break; -case RDI_TypeKind_F64: {result = "F64"; *size_out = sizeof("F64")-1;}break; -case RDI_TypeKind_F80: {result = "F80"; *size_out = sizeof("F80")-1;}break; -case RDI_TypeKind_F128: {result = "F128"; *size_out = sizeof("F128")-1;}break; -case RDI_TypeKind_ComplexF32: {result = "ComplexF32"; *size_out = sizeof("ComplexF32")-1;}break; -case RDI_TypeKind_ComplexF64: {result = "ComplexF64"; *size_out = sizeof("ComplexF64")-1;}break; -case RDI_TypeKind_ComplexF80: {result = "ComplexF80"; *size_out = sizeof("ComplexF80")-1;}break; -case RDI_TypeKind_ComplexF128: {result = "ComplexF128"; *size_out = sizeof("ComplexF128")-1;}break; -case RDI_TypeKind_Modifier: {result = "Modifier"; *size_out = sizeof("Modifier")-1;}break; -case RDI_TypeKind_Ptr: {result = "Ptr"; *size_out = sizeof("Ptr")-1;}break; -case RDI_TypeKind_LRef: {result = "LRef"; *size_out = sizeof("LRef")-1;}break; -case RDI_TypeKind_RRef: {result = "RRef"; *size_out = sizeof("RRef")-1;}break; -case RDI_TypeKind_Array: {result = "Array"; *size_out = sizeof("Array")-1;}break; -case RDI_TypeKind_Function: {result = "Function"; *size_out = sizeof("Function")-1;}break; -case RDI_TypeKind_Method: {result = "Method"; *size_out = sizeof("Method")-1;}break; -case RDI_TypeKind_MemberPtr: {result = "MemberPtr"; *size_out = sizeof("MemberPtr")-1;}break; -case RDI_TypeKind_Struct: {result = "Struct"; *size_out = sizeof("Struct")-1;}break; -case RDI_TypeKind_Class: {result = "Class"; *size_out = sizeof("Class")-1;}break; -case RDI_TypeKind_Union: {result = "Union"; *size_out = sizeof("Union")-1;}break; -case RDI_TypeKind_Enum: {result = "Enum"; *size_out = sizeof("Enum")-1;}break; -case RDI_TypeKind_Alias: {result = "Alias"; *size_out = sizeof("Alias")-1;}break; -case RDI_TypeKind_IncompleteStruct: {result = "IncompleteStruct"; *size_out = sizeof("IncompleteStruct")-1;}break; -case RDI_TypeKind_IncompleteUnion: {result = "IncompleteUnion"; *size_out = sizeof("IncompleteUnion")-1;}break; -case RDI_TypeKind_IncompleteClass: {result = "IncompleteClass"; *size_out = sizeof("IncompleteClass")-1;}break; -case RDI_TypeKind_IncompleteEnum: {result = "IncompleteEnum"; *size_out = sizeof("IncompleteEnum")-1;}break; -case RDI_TypeKind_Bitfield: {result = "Bitfield"; *size_out = sizeof("Bitfield")-1;}break; -case RDI_TypeKind_Variadic: {result = "Variadic"; *size_out = sizeof("Variadic")-1;}break; -case RDI_TypeKind_Count: {result = "Count"; *size_out = sizeof("Count")-1;}break; +case RDI_TypeKind_NULL: {result = (RDI_U8*)"NULL"; *size_out = sizeof("NULL")-1;}break; +case RDI_TypeKind_Void: {result = (RDI_U8*)"Void"; *size_out = sizeof("Void")-1;}break; +case RDI_TypeKind_Handle: {result = (RDI_U8*)"Handle"; *size_out = sizeof("Handle")-1;}break; +case RDI_TypeKind_HResult: {result = (RDI_U8*)"HResult"; *size_out = sizeof("HResult")-1;}break; +case RDI_TypeKind_Char8: {result = (RDI_U8*)"Char8"; *size_out = sizeof("Char8")-1;}break; +case RDI_TypeKind_Char16: {result = (RDI_U8*)"Char16"; *size_out = sizeof("Char16")-1;}break; +case RDI_TypeKind_Char32: {result = (RDI_U8*)"Char32"; *size_out = sizeof("Char32")-1;}break; +case RDI_TypeKind_UChar8: {result = (RDI_U8*)"UChar8"; *size_out = sizeof("UChar8")-1;}break; +case RDI_TypeKind_UChar16: {result = (RDI_U8*)"UChar16"; *size_out = sizeof("UChar16")-1;}break; +case RDI_TypeKind_UChar32: {result = (RDI_U8*)"UChar32"; *size_out = sizeof("UChar32")-1;}break; +case RDI_TypeKind_U8: {result = (RDI_U8*)"U8"; *size_out = sizeof("U8")-1;}break; +case RDI_TypeKind_U16: {result = (RDI_U8*)"U16"; *size_out = sizeof("U16")-1;}break; +case RDI_TypeKind_U32: {result = (RDI_U8*)"U32"; *size_out = sizeof("U32")-1;}break; +case RDI_TypeKind_U64: {result = (RDI_U8*)"U64"; *size_out = sizeof("U64")-1;}break; +case RDI_TypeKind_U128: {result = (RDI_U8*)"U128"; *size_out = sizeof("U128")-1;}break; +case RDI_TypeKind_U256: {result = (RDI_U8*)"U256"; *size_out = sizeof("U256")-1;}break; +case RDI_TypeKind_U512: {result = (RDI_U8*)"U512"; *size_out = sizeof("U512")-1;}break; +case RDI_TypeKind_S8: {result = (RDI_U8*)"S8"; *size_out = sizeof("S8")-1;}break; +case RDI_TypeKind_S16: {result = (RDI_U8*)"S16"; *size_out = sizeof("S16")-1;}break; +case RDI_TypeKind_S32: {result = (RDI_U8*)"S32"; *size_out = sizeof("S32")-1;}break; +case RDI_TypeKind_S64: {result = (RDI_U8*)"S64"; *size_out = sizeof("S64")-1;}break; +case RDI_TypeKind_S128: {result = (RDI_U8*)"S128"; *size_out = sizeof("S128")-1;}break; +case RDI_TypeKind_S256: {result = (RDI_U8*)"S256"; *size_out = sizeof("S256")-1;}break; +case RDI_TypeKind_S512: {result = (RDI_U8*)"S512"; *size_out = sizeof("S512")-1;}break; +case RDI_TypeKind_Bool: {result = (RDI_U8*)"Bool"; *size_out = sizeof("Bool")-1;}break; +case RDI_TypeKind_F16: {result = (RDI_U8*)"F16"; *size_out = sizeof("F16")-1;}break; +case RDI_TypeKind_F32: {result = (RDI_U8*)"F32"; *size_out = sizeof("F32")-1;}break; +case RDI_TypeKind_F32PP: {result = (RDI_U8*)"F32PP"; *size_out = sizeof("F32PP")-1;}break; +case RDI_TypeKind_F48: {result = (RDI_U8*)"F48"; *size_out = sizeof("F48")-1;}break; +case RDI_TypeKind_F64: {result = (RDI_U8*)"F64"; *size_out = sizeof("F64")-1;}break; +case RDI_TypeKind_F80: {result = (RDI_U8*)"F80"; *size_out = sizeof("F80")-1;}break; +case RDI_TypeKind_F128: {result = (RDI_U8*)"F128"; *size_out = sizeof("F128")-1;}break; +case RDI_TypeKind_ComplexF32: {result = (RDI_U8*)"ComplexF32"; *size_out = sizeof("ComplexF32")-1;}break; +case RDI_TypeKind_ComplexF64: {result = (RDI_U8*)"ComplexF64"; *size_out = sizeof("ComplexF64")-1;}break; +case RDI_TypeKind_ComplexF80: {result = (RDI_U8*)"ComplexF80"; *size_out = sizeof("ComplexF80")-1;}break; +case RDI_TypeKind_ComplexF128: {result = (RDI_U8*)"ComplexF128"; *size_out = sizeof("ComplexF128")-1;}break; +case RDI_TypeKind_Modifier: {result = (RDI_U8*)"Modifier"; *size_out = sizeof("Modifier")-1;}break; +case RDI_TypeKind_Ptr: {result = (RDI_U8*)"Ptr"; *size_out = sizeof("Ptr")-1;}break; +case RDI_TypeKind_LRef: {result = (RDI_U8*)"LRef"; *size_out = sizeof("LRef")-1;}break; +case RDI_TypeKind_RRef: {result = (RDI_U8*)"RRef"; *size_out = sizeof("RRef")-1;}break; +case RDI_TypeKind_Array: {result = (RDI_U8*)"Array"; *size_out = sizeof("Array")-1;}break; +case RDI_TypeKind_Function: {result = (RDI_U8*)"Function"; *size_out = sizeof("Function")-1;}break; +case RDI_TypeKind_Method: {result = (RDI_U8*)"Method"; *size_out = sizeof("Method")-1;}break; +case RDI_TypeKind_MemberPtr: {result = (RDI_U8*)"MemberPtr"; *size_out = sizeof("MemberPtr")-1;}break; +case RDI_TypeKind_Struct: {result = (RDI_U8*)"Struct"; *size_out = sizeof("Struct")-1;}break; +case RDI_TypeKind_Class: {result = (RDI_U8*)"Class"; *size_out = sizeof("Class")-1;}break; +case RDI_TypeKind_Union: {result = (RDI_U8*)"Union"; *size_out = sizeof("Union")-1;}break; +case RDI_TypeKind_Enum: {result = (RDI_U8*)"Enum"; *size_out = sizeof("Enum")-1;}break; +case RDI_TypeKind_Alias: {result = (RDI_U8*)"Alias"; *size_out = sizeof("Alias")-1;}break; +case RDI_TypeKind_IncompleteStruct: {result = (RDI_U8*)"IncompleteStruct"; *size_out = sizeof("IncompleteStruct")-1;}break; +case RDI_TypeKind_IncompleteUnion: {result = (RDI_U8*)"IncompleteUnion"; *size_out = sizeof("IncompleteUnion")-1;}break; +case RDI_TypeKind_IncompleteClass: {result = (RDI_U8*)"IncompleteClass"; *size_out = sizeof("IncompleteClass")-1;}break; +case RDI_TypeKind_IncompleteEnum: {result = (RDI_U8*)"IncompleteEnum"; *size_out = sizeof("IncompleteEnum")-1;}break; +case RDI_TypeKind_Bitfield: {result = (RDI_U8*)"Bitfield"; *size_out = sizeof("Bitfield")-1;}break; +case RDI_TypeKind_Variadic: {result = (RDI_U8*)"Variadic"; *size_out = sizeof("Variadic")-1;}break; +case RDI_TypeKind_Count: {result = (RDI_U8*)"Count"; *size_out = sizeof("Count")-1;}break; } return result; } diff --git a/src/lib_rdi_format/rdi_format.h b/src/lib_rdi_format/rdi_format.h index e985b125..23149735 100644 --- a/src/lib_rdi_format/rdi_format.h +++ b/src/lib_rdi_format/rdi_format.h @@ -1540,6 +1540,7 @@ RDI_PROC RDI_U32 rdi_addr_size_from_arch(RDI_Arch arch); RDI_PROC RDI_EvalConversionKind rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out); RDI_PROC RDI_S32 rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group); RDI_PROC RDI_U8 *rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out); +RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out); extern RDI_U16 rdi_section_element_size_table[37]; extern RDI_U8 rdi_section_is_required_table[37]; diff --git a/src/raddump/raddump.c b/src/raddump/raddump.c index 967ee7a6..b89c057a 100644 --- a/src/raddump/raddump.c +++ b/src/raddump/raddump.c @@ -665,19 +665,6 @@ rdi_string_from_local_kind(Arena *arena, RDI_LocalKind v) return result; } -internal String8 -rdi_string_from_type_kind(Arena *arena, RDI_TypeKind v) -{ - String8 result; - switch (v) { - default: { result = push_str8f(arena, "%u", v); } break; -#define X(name) case RDI_TypeKind_##name: { result = str8_lit(#name); } break; - RDI_TypeKind_XList -#undef X - } - return result; -} - internal String8 rdi_string_from_member_kind(Arena *arena, RDI_MemberKind v) { @@ -1001,7 +988,10 @@ rdi_print_type_node(Arena *arena, String8List *out, String8 indent, RDI_Parsed * { Temp scratch = scratch_begin(&arena, 1); - rd_printf("kind =%S", rdi_string_from_type_kind(scratch.arena, type->kind)); + String8 type_kind_str = {0}; + type_kind_str.str = rdi_string_from_type_kind(type->kind, &type_kind_str.size); + + rd_printf("kind =%S", type_kind_str); if (type->kind == RDI_TypeKind_Modifier) { rd_printf("flags =%S", rdi_string_from_type_modifier_flags(scratch.arena, type->flags)); } else { diff --git a/src/raddump/raddump.h b/src/raddump/raddump.h index 684d154f..910c5ccc 100644 --- a/src/raddump/raddump.h +++ b/src/raddump/raddump.h @@ -191,7 +191,7 @@ internal String8 rdi_string_from_data_section_kind(Arena *arena, RDI_SectionKind internal String8 rdi_string_from_arch (Arena *arena, RDI_Arch v); internal String8 rdi_string_from_language (Arena *arena, RDI_Language v); internal String8 rdi_string_from_local_kind (Arena *arena, RDI_LocalKind v); -internal String8 rdi_string_from_type_kind (Arena *arena, RDI_TypeKind v); +//internal String8 rdi_string_from_type_kind (Arena *arena, RDI_TypeKind v); internal String8 rdi_string_from_member_kind (Arena *arena, RDI_MemberKind v); internal String8 rdi_string_from_binary_section_flags(Arena *arena, RDI_BinarySectionFlags flags); diff --git a/src/rdi_format/rdi_format.mdesk b/src/rdi_format/rdi_format.mdesk index 1a32964f..5639d5df 100644 --- a/src/rdi_format/rdi_format.mdesk +++ b/src/rdi_format/rdi_format.mdesk @@ -1472,6 +1472,7 @@ RDI_PROC RDI_U32 rdi_addr_size_from_arch(RDI_Arch arch); RDI_PROC RDI_EvalConversionKind rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out); RDI_PROC RDI_S32 rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group); RDI_PROC RDI_U8 *rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out); +RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out); ``` @gen(functions) @c_file @@ -1499,7 +1500,7 @@ rdi_hash(RDI_U8 *ptr, RDI_U64 size) `switch (kind)`; `{`; `default:{}break;`; - @expand(RDI_TypeKindTable a) ` case RDI_TypeKind_$(a.name): {result = "$(a.name)"; *size_out = sizeof("$(a.name)")-1;}break;`, + @expand(RDI_TypeKindTable a) ` case RDI_TypeKind_$(a.name): {result = (RDI_U8*)"$(a.name)"; *size_out = sizeof("$(a.name)")-1;}break;`, `}`; `return result;`; `}`;