This is the C front-end + C family part.
* doc/extend.texi (type attributes): Document scalar_storage_order.
* doc/invoke.texi (Warnings): Document -Wno-scalar-storage-order.
c-family/
* c-common.c (c_common_attributes): Add scalar_storage_order.
(handle_scalar_storage_order_attribute): New function.
* c.opt (Wscalar-storage-order): New warning.
c/
* c-decl.c (finish_struct): If the structure has reverse scalar storage
order, rewrite the type of array fields with scalar component.
* c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs. Issue
errors on bit-fields and reverse SSO here and not...
(c_mark_addressable): ...here.
doc/extend.texi | 47 +++++++++++++++++++++++++++++++++++++++++++++
doc/invoke.texi | 6 +++++
c-family/c.opt | 4 +++
c-family/c-common.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++-
c/c-typeck.c | 53 +++++++++++++++++++++++++++++++-------------------
c/c-decl.c | 45 +++++++++++++++++++++++++++++--------------
6 files changed, 175 insertions(+), 34 deletions(-)