-- --
------------------------------------------------------------------------------
+pragma Annotate (Gnatcheck, Exempt_On, "Metrics_LSLOC",
+ "limit exceeded due to proof code");
+
with Ada.Unchecked_Conversion;
with System.SPARK.Cut_Operations; use System.SPARK.Cut_Operations;
-- Double_Divide --
-------------------
+ pragma Annotate (Gnatcheck, Exempt_On, "Metrics_Cyclomatic_Complexity",
+ "limit exceeded due to proof code");
procedure Double_Divide
(X, Y, Z : Double_Int;
Q, R : out Double_Int;
Prove_Signs;
end Double_Divide;
+ pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_Cyclomatic_Complexity");
---------
-- Le3 --
-- Scaled_Divide --
-------------------
+ pragma Annotate (Gnatcheck, Exempt_On, "Metrics_Cyclomatic_Complexity",
+ "limit exceeded due to proof code");
procedure Scaled_Divide
(X, Y, Z : Double_Int;
Q, R : out Double_Int;
Prove_Sign_R;
Prove_Signs;
end Scaled_Divide;
+ pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_Cyclomatic_Complexity");
----------
-- Sub3 --
pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
end System.Arith_Double;
+
+pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_LSLOC");
when others => raise Program_Error)
with Ghost;
+ pragma Annotate (Gnatcheck, Exempt_On, "Discriminated_Records",
+ "variant record only used in proof code");
type Uns_Option (Overflow : Boolean := False) is record
case Overflow is
when True =>
Value : Uns := 0;
end case;
end record;
+ pragma Annotate (Gnatcheck, Exempt_Off, "Discriminated_Records");
function Wrap_Option (Value : Uns) return Uns_Option is
(Overflow => False, Value => Value);