r184594 - in /trunk/gcc: ada/ChangeLog ada/gcc-...

ebotcazou@gcc.gnu.org ebotcazou@gcc.gnu.org
Mon Feb 27 10:41:00 GMT 2012


Author: ebotcazou
Date: Mon Feb 27 10:41:10 2012
New Revision: 184594

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184594
Log:
	* gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Add checking.
	(TYPE_BY_REFERENCE_P): New flag.
	(TYPE_IS_BY_REFERENCE_P): New macro.
	(TYPE_DUMMY_P): Add checking and remove VOID_TYPE.
	(TYPE_IS_DUMMY_P): Adjust for above change.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_BY_REFERENCE_P
	and TYPE_IS_BY_REFERENCE_P instead of TREE_ADDRESSABLE.
	(gnat_to_gnu_param): Likewise.
	(maybe_pad_type): Likewise.
	(make_type_from_size): Use TYPE_IS_PACKED_ARRAY_TYPE_P.
	* gcc-interface/misc.c (must_pass_by_ref): Use TYPE_IS_BY_REFERENCE_P
	instead of TREE_ADDRESSABLE.
	* gcc-interface/trans.c (finalize_nrv): Likewise.
	(call_to_gnu): Likewise.  Do not create a temporary for return values
	with by-reference type here.
	(gnat_to_gnu): Test TYPE_IS_DUMMY_P instead of TYPE_DUMMY_P.
	(gnat_gimplify_expr) <ADDR_EXPR>: Don't do anything for non-constant
	CONSTRUCTORs and calls.
	* gcc-interface/utils.c (make_dummy_type): Get the equivalent type of
	the underlying type and use it throughout.  Use TYPE_IS_BY_REFERENCE_P
	instead of TREE_ADDRESSABLE.
	* gcc-interface/utils2.c (build_cond_expr): Deal with by-reference
	types explicitly.

Added:
    trunk/gcc/testsuite/gnat.dg/aggr19.adb
    trunk/gcc/testsuite/gnat.dg/aggr19_pkg.adb
    trunk/gcc/testsuite/gnat.dg/aggr19_pkg.ads
Modified:
    trunk/gcc/ada/ChangeLog
    trunk/gcc/ada/gcc-interface/ada-tree.h
    trunk/gcc/ada/gcc-interface/decl.c
    trunk/gcc/ada/gcc-interface/misc.c
    trunk/gcc/ada/gcc-interface/trans.c
    trunk/gcc/ada/gcc-interface/utils.c
    trunk/gcc/ada/gcc-interface/utils2.c
    trunk/gcc/testsuite/ChangeLog



More information about the Gcc-cvs mailing list