From: Yannick Moy Date: Wed, 27 May 2020 14:46:27 +0000 (+0200) Subject: [Ada] Fix detection of volatile properties in SPARK X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5493032c5ffde0f2abe633702fdc60c783393f47;p=thirdparty%2Fgcc.git [Ada] Fix detection of volatile properties in SPARK gcc/ada/ * sem_util.adb (Has_Enabled_Property): Add handling of non-variable objects. --- diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index b70f2c8fcbbd..4b4f4af37547 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -11537,6 +11537,14 @@ package body Sem_Util is elsif Ekind (Item_Id) = E_Variable then return Type_Or_Variable_Has_Enabled_Property (Item_Id); + -- Other objects can only inherit properties through their type. We + -- cannot call directly Type_Or_Variable_Has_Enabled_Property on + -- these as they don't have contracts attached, which is expected by + -- this function. + + elsif Is_Object (Item_Id) then + return Type_Or_Variable_Has_Enabled_Property (Etype (Item_Id)); + elsif Is_Type (Item_Id) then return Type_Or_Variable_Has_Enabled_Property (Item_Id => First_Subtype (Item_Id));