This adds a -fsso-struct switch to the C family of languages that makes it possible to change the default scalar storage order (a nice way of shooting oneself in the foot if you ask me, but the Ada compiler has its own version of this, so that's sort of fair). It is modelled on #pragma pack/-fpack-struct. Tested on x86_64-suse-linux. applied on the branch. * doc/extend.texi (Structure-Layout Pragmas): Document default value of scalar_storage_order and add cross-reference. * doc/invoke.texi (C Dialect Options): Document -fsso-struct. * flag-types.h (enum scalar_storage_order_kind): New enumeration. c-family: * c.opt (fsso-struct=): New option. * c-pragma.c (enum scalar_storage_order_kind): Delete. (global_sso_kind): Rename into... (global_sso): ...this. Do not initialize it here. (maybe_apply_pragma_scalar_storage_order): Adjust to renaming. Replace SSO_DEFAULT with SSO_NATIVE. (handle_pragma_scalar_storage_order): Likewise with default_sso. (init_pragma): Initialize global_sso to default_sso. testsuite/ * c-c++-common/sso-6.c: New test. * c-c++-common/sso-7.c: Likewise. -- Eric Botcazou