aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/decl.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2017-05-01 08:24:40 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2017-05-01 08:24:40 +0000
commita01ebdf51662cecd53108b8231cdff7fbf7fbde4 (patch)
treeeb9476a02760326859496450e5eb62673af95fbf /gcc/ada/gcc-interface/decl.c
parent0a69d9bdc70e90bac8211099e950826b6999b75a (diff)
downloadgcc-a01ebdf51662cecd53108b8231cdff7fbf7fbde4.zip
gcc-a01ebdf51662cecd53108b8231cdff7fbf7fbde4.tar.gz
gcc-a01ebdf51662cecd53108b8231cdff7fbf7fbde4.tar.bz2
* gcc-interface/decl.c (components_to_record): Add missing guard.
From-SVN: r247427
Diffstat (limited to 'gcc/ada/gcc-interface/decl.c')
-rw-r--r--gcc/ada/gcc-interface/decl.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index c243d40..75b0475 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -8150,13 +8150,20 @@ components_to_record (Node_Id gnat_component_list, Entity_Id gnat_record_type,
5) the variant part,
within the record and within each variant recursively. */
- if (w_reorder
- && last_reorder_field_type == 2
- && tmp_last_reorder_field_type < 2)
- warn_on_field_placement (gnu_tmp_bitp_list
- ? gnu_tmp_bitp_list : gnu_field_list,
- gnat_component_list, gnat_record_type,
- in_variant, do_reorder);
+
+ if (w_reorder)
+ {
+ /* If we have pending bit-packed fields, warn if they would be moved
+ to after regular fields. */
+ if (last_reorder_field_type == 2
+ && tmp_bitp_size != 0
+ && tmp_last_reorder_field_type < 2)
+ warn_on_field_placement (gnu_tmp_bitp_list
+ ? gnu_tmp_bitp_list : gnu_field_list,
+ gnat_component_list, gnat_record_type,
+ in_variant, do_reorder);
+ }
+
if (do_reorder)
{
/* If we have pending bit-packed fields on the temporary list, we put