[patch 3/6] scalar-storage-order merge: C++ front-end

Eric Botcazou ebotcazou@adacore.com
Tue Oct 6 11:03:00 GMT 2015


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) <case COMPONENT_REF>: New case.  Issue the
	error for bit-fields here and not later.
	<case ARRAY_REF>: Issue error and warning for reverse scalar storage
	order.
	* typeck2.c (split_nonconstant_init_1) <RECORD_TYPE>: 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sso-cpp.diff
Type: text/x-patch
Size: 5838 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20151006/6d6aba36/attachment.bin>


More information about the Gcc-patches mailing list