russ lyttle writes: > Example from the bookAnalysable Real-Time Systems : > > 1 package Environment_Monitor.Ch4_Status is --Protected > 2 protected type Methane_Agent (Ceiling : Priority) > 3 with Priority => Ceiling > 4 is new CH4_Safety > 5 with > 6 overriding function Check_Safe return Methane_Status; > 7 overriding procedure Set_Safety (M : Methane_Status); > 8 private > 9 Current_Status : Methane_Status := Motor_Unsafe; > 10 end Methane_Agent; > 11 end Environment_Monitor.Ch4_Status; > > Gnat complains that Methane_Agent is frozen at line 2, and line 3 is > trying to change an attribute after being frozen. The resolution may well be to upgrade your compiler. GNAT GPL 2017 and FSF GCC 8 are both happy with this compilable demonstrator: