gigi.h (build_simple_component_ref): Declare.
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 1 Jun 2015 07:43:09 +0000 (07:43 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 1 Jun 2015 07:43:09 +0000 (07:43 +0000)
commit73a1a803087a914aea66321618595bf6c9614d67
tree48929d331a115d7eb4d733c54e68da63d015f2da
parentfcdc67186be6960edfa1905abf8c208c4df3713a
gigi.h (build_simple_component_ref): Declare.

* gcc-interface/gigi.h (build_simple_component_ref): Declare.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with
address clause on aliased object with unconstrained nominal subtype.
Mark the aligning variable as artificial, do not convert the address
expression immediately but mark it as constant instead.
* gcc-interface/utils.c (convert): If the target type contains a
template, be prepared for an empty array.
(maybe_unconstrained_array): Likewise.
* gcc-interface/utils2.c (known_alignment) <POINTER_PLUS_EXPR>: Deal
with the pattern built for aligning types.
<INTEGER_CST>: Do not cap the value at BIGGEST_ALIGNMENT.
(build_simple_component_ref): Make public.
If the base object is a constructor that contains a template, fold the
result field by field.

From-SVN: r223912
gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c
gcc/ada/gcc-interface/gigi.h
gcc/ada/gcc-interface/utils.c
gcc/ada/gcc-interface/utils2.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/addr9_1.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/addr9_2.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/addr9_3.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/addr9_4.adb [new file with mode: 0644]