From: Justin Squirek Date: Thu, 11 Apr 2024 22:05:30 +0000 (+0000) Subject: ada: Further refine 'Super attribute X-Git-Tag: basepoints/gcc-16~8404 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fd5456235679be9cd00cfd8a56c73219a5fc2576;p=thirdparty%2Fgcc.git ada: Further refine 'Super attribute This patch adds the restriction on 'Super such that it cannot apply to objects whose parent type is an interface. gcc/ada/ * sem_attr.adb (Analyze_Attribute): Add check for interface parent types. --- diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index 4fd270aeae9..2fd95f36d65 100644 --- a/gcc/ada/sem_attr.adb +++ b/gcc/ada/sem_attr.adb @@ -6683,6 +6683,12 @@ package body Sem_Attr is elsif Depends_On_Private (P_Type) then Error_Attr_P ("prefix type of % is a private extension"); + -- Disallow view conversions to interfaces in order to avoid + -- depending on whether an interface type is used as a parent + -- or progenitor type. + + elsif Is_Interface (Node (First_Elmt (Parents))) then + Error_Attr_P ("type of % cannot be an interface"); end if; -- Generate a view conversion and analyze it