aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/freeze.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/freeze.adb')
-rw-r--r--gcc/ada/freeze.adb13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index 85a9cbc..6d366f0 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -7695,8 +7695,17 @@ package body Freeze is
procedure Set_SSO_From_Default (T : Entity_Id) is
begin
- if (Is_Record_Type (T) or else Is_Array_Type (T))
- and then Is_Base_Type (T)
+ -- Set default SSO for an array or record base type, except in the case
+ -- of a type extension (which always inherits the SSO of its parent
+ -- type).
+
+ if Is_Base_Type (T)
+ and then (Is_Array_Type (T)
+ or else
+ (Is_Record_Type (T)
+ and then not (Is_Tagged_Type (T)
+ and then
+ Is_Derived_Type (T))))
then
if ((Bytes_Big_Endian and then SSO_Set_Low_By_Default (T))
or else