diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2019-06-29 07:16:37 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2019-06-29 07:16:37 +0000 |
commit | b1af4cb2903711183e62f922fc235d48c7a738bb (patch) | |
tree | e52fb1419869e176950e8aab90f65e8e32ade6ce /gcc/ada/gcc-interface/gigi.h | |
parent | 43e1e8b5b8ed9f0e4311c0974b9e459471a275b0 (diff) | |
download | gcc-b1af4cb2903711183e62f922fc235d48c7a738bb.zip gcc-b1af4cb2903711183e62f922fc235d48c7a738bb.tar.gz gcc-b1af4cb2903711183e62f922fc235d48c7a738bb.tar.bz2 |
expr.c (expand_expr_real_1): Apply the big-endian adjustment for bit-fields to all aggregate types.
* expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
adjustment for bit-fields to all aggregate types.
ada/
* gcc-interface/gigi.h (make_packable_type): Remove default value.
(value_factor_p): Tweak prototype.
* gcc-interface/decl.c (gnat_to_gnu_entity): Add comment.
(gnat_to_gnu_component_type): Likewise.
(gnat_to_gnu_field): Likewise. Fetch the position of the field earlier
and simplify the condition under which the type is packed. Declare
local variable is_bitfield. Pass 1 as max_align to make_packable_type
if it is set to true.
(copy_and_substitute_in_layout): Pass 0 to make_packable_type.
* gcc-interface/utils.c (make_packable_array_type): New function.
(make_packable_type): Use it to rewrite the type of array field.
(maybe_pad_type): Pass align parameter to make_packable_type.
(create_field_decl): Minor tweaks.
(value_factor_p): Assert that FACTOR is a power of 2 and replace the
modulo computation by a masking operation.
From-SVN: r272810
Diffstat (limited to 'gcc/ada/gcc-interface/gigi.h')
-rw-r--r-- | gcc/ada/gcc-interface/gigi.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h index c8eb637..f7415c7 100644 --- a/gcc/ada/gcc-interface/gigi.h +++ b/gcc/ada/gcc-interface/gigi.h @@ -126,7 +126,7 @@ extern tree make_aligning_type (tree type, unsigned int align, tree size, MAX_ALIGN alignment if the value is non-zero. If so, return the new type; if not, return the original type. */ extern tree make_packable_type (tree type, bool in_record, - unsigned int max_align = 0); + unsigned int max_align); /* Given a type TYPE, return a new type whose size is appropriate for SIZE. If TYPE is the best type, return it. Otherwise, make a new type. We @@ -837,7 +837,7 @@ extern unsigned int known_alignment (tree exp); /* Return true if VALUE is a multiple of FACTOR. FACTOR must be a power of 2. */ -extern bool value_factor_p (tree value, HOST_WIDE_INT factor); +extern bool value_factor_p (tree value, unsigned HOST_WIDE_INT factor); /* Build an atomic load for the underlying atomic object in SRC. SYNC is true if the load requires synchronization. */ |