From e7cf2513b70fef1e7d2628959f99cc76a75c6553 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 19 Feb 2026 18:11:11 -0800 Subject: [PATCH] todo --- src/rdi_from_dwarf/rdi_from_dwarf.c | 5 +++++ src/torture/torture_d2r.c | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/rdi_from_dwarf/rdi_from_dwarf.c b/src/rdi_from_dwarf/rdi_from_dwarf.c index 369e22a0..e5020690 100644 --- a/src/rdi_from_dwarf/rdi_from_dwarf.c +++ b/src/rdi_from_dwarf/rdi_from_dwarf.c @@ -1934,6 +1934,11 @@ d2r_convert_types(Arena *arena, type->direct_type = direct_type; } break; case DW_TagKind_ArrayType: { + // TODO: @native_vector_support extract byte size from the base type tag + // and convert to U256, U512, S256 and S512 + B32 is_vector = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_GNU_Vector); + if (is_vector) { NotImplemented; } + B32 error = 1; // * DWARF vs RDI Array Type Graph * diff --git a/src/torture/torture_d2r.c b/src/torture/torture_d2r.c index 8baff142..c0f5ee47 100644 --- a/src/torture/torture_d2r.c +++ b/src/torture/torture_d2r.c @@ -120,6 +120,22 @@ T_BeginTest(d2r_types) DeclStdint("int32_t", int_type); DeclStdint("int64_t", long_int_type); #undef DeclStdInt + // TODO: @native_vector_support + // + // typedef int __attribute__((vector_size(32))) int256 + // typedef unsigned int __attribute__((vector_size(32))) uint256 + // typedef int __attribute__((vector_size(64))) int512 + // typedef unsigned int __attribute__((vector_size(64))) uint512 + // +#if 0 + dw_writer_tag_begin(writer, DW_TagKind_ArrayType); + dw_writer_push_attrib_flag(writer, DW_AttribKind_GNU_Vector, 1); + dw_writer_push_attrib_ref(writer, DW_AttribKind_Type, int_type); + dw_writer_tag_begin(writer, DW_TagKind_SubrangeType); + dw_writer_push_attrib_uint(writer, DW_AttribKind_UpperBound, 15); + dw_writer_tag_end(writer); + dw_writer_tag_end(writer); +#endif dw_writer_tag_end(writer); }