2010-04-25 Eric Botcazou <ebotcazou@adacore.com>
+ * exp_dbug.ads: Fix outdated description. Mention link between XVS
+ and XVZ objects.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Set
+ XVZ variable as unit size of XVS type.
+ (maybe_pad_type): Likewise.
+
+2010-04-25 Eric Botcazou <ebotcazou@adacore.com>
+
* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Do not
use memmove if the array type is bit-packed.
if (definition
&& TREE_CODE (gnu_size_unit) != INTEGER_CST
&& !CONTAINS_PLACEHOLDER_P (gnu_size_unit))
- create_var_decl (create_concat_name (gnat_entity, "XVZ"),
- NULL_TREE, sizetype, gnu_size_unit, false,
- false, false, false, NULL, gnat_entity);
+ TYPE_SIZE_UNIT (gnu_subtype_marker)
+ = create_var_decl (create_concat_name (gnat_entity,
+ "XVZ"),
+ NULL_TREE, sizetype, gnu_size_unit,
+ false, false, false, false, NULL,
+ gnat_entity);
}
/* Now we can finalize it. */
add_parallel_type (TYPE_STUB_DECL (record), marker);
if (definition && size && TREE_CODE (size) != INTEGER_CST)
- create_var_decl (concat_name (name, "XVZ"), NULL_TREE, sizetype,
- TYPE_SIZE_UNIT (record), false, false, false,
- false, NULL, gnat_entity);
+ TYPE_SIZE_UNIT (marker)
+ = create_var_decl (concat_name (name, "XVZ"), NULL_TREE, sizetype,
+ TYPE_SIZE_UNIT (record), false, false, false,
+ false, NULL, gnat_entity);
}
rest_of_record_type_compilation (record);