Re: Issue with pointer types marked with scalar_storage_order

Eric Botcazou <[email protected]>
Newsgroups gmane.comp.gdb.devel,gmane.comp.gcc.devel
Message-ID <4620030.GXAFRqVoOG@fomalhaut>
> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.