Issue with pointer types marked with scalar_storage_order
Eric Botcazou
botcazou@adacore.com
Thu May 6 14:07:52 GMT 2021
> I'm not really sure where exactly the bug is, because I'm not
> quite sure if pointer types actually *should* be byte swapped.
>
> On the one hand, the typical use case of scalar_storage_order
> is to simplify accessing binary data (read from a file or the
> network) that was generated on a "foreign" architecture that
> uses a different byte order. Those use cases are unlikely
> to involve any pointer types, since pointer values from a
> foreign system are typically not usable on the current
> system anyway.
>
> On the other hand, even the name of the attribute specifically
> refers to *scalar* types, and the C standard does classsify
> pointer types amongst the scalar type. So maybe this was
> originally intended?
I don't think so, the feature was first implemented for Ada and, in Ada,
pointer types (called access types) are *not* scalar types. So this indeed
looks like a small oversight in the implementation.
> Any comments or suggestions on what to do here?
I'm going to conduct some testing in Ada but, barring unexpected fallout, I
would be in favor of changing the GCC implementation. It's presumably a 1-
line change in the reverse_storage_order_for_component_p predicate.
--
Eric Botcazou
More information about the Gdb
mailing list