aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/decl.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/decl.c')
-rw-r--r--gcc/ada/decl.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/ada/decl.c b/gcc/ada/decl.c
index aca69ff..eabc921 100644
--- a/gcc/ada/decl.c
+++ b/gcc/ada/decl.c
@@ -6852,15 +6852,13 @@ validate_size (Uint uint_size, tree gnu_type, Entity_Id gnat_object,
size = size_binop (PLUS_EXPR, DECL_SIZE (TYPE_FIELDS (gnu_type)), size);
/* Modify the size of the type to be that of the maximum size if it has a
- discriminant or the size of a thin pointer if this is a fat pointer. */
+ discriminant. */
if (type_size && CONTAINS_PLACEHOLDER_P (type_size))
type_size = max_size (type_size, true);
- else if (TYPE_FAT_POINTER_P (gnu_type))
- type_size = bitsize_int (POINTER_SIZE);
- /* If this is an access type, the minimum size is that given by the smallest
- integral mode that's valid for pointers. */
- if (TREE_CODE (gnu_type) == POINTER_TYPE)
+ /* If this is an access type or a fat pointer, the minimum size is that given
+ by the smallest integral mode that's valid for pointers. */
+ if ((TREE_CODE (gnu_type) == POINTER_TYPE) || TYPE_FAT_POINTER_P (gnu_type))
{
enum machine_mode p_mode;