-- { dg-do compile } package body No_Caching with SPARK_Mode is Status : Boolean; procedure Handle (V : Mult_Bit_Boolean) is Ret_Val : Mult_Bit_Boolean := V with Volatile, No_Caching; begin if (Ret_Val = NV_TRUE) then Do_Something; elsif (Ret_Val = NV_FALSE) then Do_Something_Else; else null; -- Fault inject detected. Take punitive action end if; end Handle; procedure Do_Something is begin Status := True; end Do_Something; procedure Do_Something_Else is begin Status := False; end Do_Something_Else; end No_Caching;