+2017-04-27 Yannick Moy <moy@adacore.com>
+
+ * gnat1drv.adb (Adjust_Global_Switches): Issue
+ a warning in GNATprove mode if the runtime library does not
+ support IEEE-754 floats.
+
+2017-04-27 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_prag.adb (Inherit_Class_Wide_Pre): If the parent operation
+ is itself inherited it does not carry any contract information,
+ so examine its parent operation which is its Alias.
+
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Analyze_Attribute, case 'Image): In Ada2012 the
-- which is more complex to formally verify than the original source.
Tagged_Type_Expansion := False;
+
+ -- Detect that the runtime library support for floating-point numbers
+ -- may not be compatible with SPARK analysis of IEEE-754 floats.
+
+ if Denorm_On_Target = False then
+ Write_Line
+ ("warning: Run-time library may be configured incorrectly");
+ Write_Line
+ ("warning: "
+ & "(SPARK analysis requires support for float subnormals)");
+
+ elsif Machine_Rounds_On_Target = False then
+ Write_Line
+ ("warning: Run-time library may be configured incorrectly");
+ Write_Line
+ ("warning: "
+ & "(SPARK analysis requires support for float rounding)");
+
+ elsif Signed_Zeros_On_Target = False then
+ Write_Line
+ ("warning: Run-time library may be configured incorrectly");
+ Write_Line
+ ("warning: (SPARK analysis requires support for signed zeros)");
+ end if;
end if;
-- Set Configurable_Run_Time mode if system.ads flag set or if the
-- For a type derived from a generic formal type, the operation
-- inheriting the condition is a renaming, not an overriding of
- -- the operation of the formal.
+ -- the operation of the formal. Ditto for an inherited
+ -- operation which has no explicit contracts.
- if Is_Generic_Type (Find_Dispatching_Type (Prev)) then
+ if Is_Generic_Type (Find_Dispatching_Type (Prev))
+ or else not Comes_From_Source (Prev)
+ then
Prev := Alias (Prev);
else
Prev := Overridden_Operation (Prev);