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