diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2019-08-30 15:12:20 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2019-08-30 15:12:20 +0000 |
commit | 0c2837b5c408f8fd2b023a7bf00be9abd1e28a28 (patch) | |
tree | 706ae520a2d14fa4f31a700f4138b4b994367b57 /gcc/ada/gcc-interface/gigi.h | |
parent | c85dbadc061f7c7f3575e335976150370d8652be (diff) | |
download | gcc-0c2837b5c408f8fd2b023a7bf00be9abd1e28a28.zip gcc-0c2837b5c408f8fd2b023a7bf00be9abd1e28a28.tar.gz gcc-0c2837b5c408f8fd2b023a7bf00be9abd1e28a28.tar.bz2 |
gigi.h (aggregate_type_contains_array_p): Declare.
* gcc-interface/gigi.h (aggregate_type_contains_array_p): Declare.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: For an
extension, test Has_Record_Rep_Clause instead of Has_Specified_Layout.
(adjust_packed): Return 0 if the type of the field is an aggregate
type that contains (or is) a self-referential array.
(type_has_variable_size): Delete.
* gcc-interface/utils.c (inish_record_type): Constify a variable.
(aggregate_type_contains_array_p): Add parameter SELF_REFERENTIAL.
<RECORD_TYPE>: Pass it in the recursive call.
<ARRAY_TYPE>: If it is true, return true only if the array type is
self-referential.
(create_field_decl): Streamline the setting of the alignment on the
field. Pass false to aggregate_type_contains_array_p.
From-SVN: r275196
Diffstat (limited to 'gcc/ada/gcc-interface/gigi.h')
-rw-r--r-- | gcc/ada/gcc-interface/gigi.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h index 21af83e..edfcbd5 100644 --- a/gcc/ada/gcc-interface/gigi.h +++ b/gcc/ada/gcc-interface/gigi.h @@ -835,6 +835,11 @@ extern tree get_base_type (tree type); in bits. If we don't know anything about the alignment, return 0. */ extern unsigned int known_alignment (tree exp); +/* Return true if TYPE, an aggregate type, contains (or is) an array. + If SELF_REFERENTIAL is true, then an additional requirement on the + array is that it be self-referential. */ +extern bool aggregate_type_contains_array_p (tree type, bool self_referential); + /* Return true if VALUE is a multiple of FACTOR. FACTOR must be a power of 2. */ extern bool value_factor_p (tree value, unsigned HOST_WIDE_INT factor); |