This is the C++ front-end part, probably incomplete but passes the testsuite. cp/ * class.c: Add c-family/c-pragma.h. (finish_struct_1): If structure has reverse scalar storage order, rewrite the type of array fields with scalar component. Call maybe_apply_pragma_scalar_storage_order on entry. * constexpr.c (reduced_constant_expression_p): Unfold recursion and deal with TYPE_REVERSE_STORAGE_ORDER. * typeck.c (structural_comptypes): Return false if two aggregate types have different scalar storage order. (cp_build_addr_expr_1) : New case. Issue the error for bit-fields here and not later. : Issue error and warning for reverse scalar storage order. * typeck2.c (split_nonconstant_init_1) : Adjust call to initializer_constant_valid_p. class.c | 24 +++++++++++++++++++++++- constexpr.c | 19 +++++++++++++++++-- typeck.c | 45 ++++++++++++++++++++++++++++++++++++++------- typeck2.c | 5 ++++- 4 files changed, 82 insertions(+), 11 deletions(-) -- Eric Botcazou