On Sat, Nov 20, 2021 at 12:31:19AM +0530, Siddhesh Poyarekar wrote: > > Neither of these are equivalent to what it used to do before. > > If some target has e.g. pointers wider than size_t, then previously we could > > compute bytes that doesn't fit into size_t and would return NULL which > > eventually would result in object_sizes_execute or > > expand_builtin_object_size > > resolving it to the unknown value. But fold_convert will perform modulo > > arithmetics on it, so say if size_t is 24-bit and bytes is 0x1000001, it > > will fold to (size_t) 1. I think we should still punt if it doesn't fit. > > Or do we ensure that what it returns always has sizetype type? > > compute_builtin_object_size should always return sizetype. I probably > haven't strictly ensured that but I could do that. Would it be necessary to > check for fit in sizetype -> size_type_node conversion too? I've been > assuming that they'd have the same precision.
sizetype and size_type_node should be indeed always the same precision. Jakub