# Bit-precise Integer Types Background ---------- C23 (see [draft][1]) is introducing signed and unsigned `_BitInt(N)` types. These can express much larger precision than standard or even extended integral types, can have different ABI for argument passing/returning valuess from normal integers. While I guess one could represent those with DW_AT_encoding DW_ATE_signed // or DW_ATE_unsigned DW_AT_bit_size 238 DW_AT_byte_size 32 DW_AT_name "_BitInt(238)" requiring parsing of the `DW_AT_name` and special-casing `_BitInt` used in there for the ABI handling would be awkward. So, I think it is better to use new `DW_ATE_*` values for this. Proposed Changes ---------------- Table 5.1 - add > Bit-precise integer types > DW_ATE_signed_bitint bit-precise signed integer > DW_ATE_unsigned_bitint bit-precise unsigned integer Add > 5.1.1.7 Bit-precise integer types > > Bit-precise integer types (`DW_ATE_signed_bitint`, > `DW_ATE_unsigned_bitint`) are supported in C23 (`_BitInt(N)` > and `unsigned _BitInt(N)`) and are not discussed further. Table 7.11 - add > DW_ATE_signed_bitint ‡ 0x17 > DW_ATE_unsigned_bitint ‡ 0x18 [1]: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf --- 2023-11-27: Accepted.