* einfo.ads: Minor fixes in comments.
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb: disable clones in SPARK_Mode.
2017-04-27 Gary Dismukes <dismukes@adacore.com>
* sem_util.ads, contracts.adb: Minor reformatting.
From-SVN: r247315
+2017-04-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ * einfo.ads: Minor fixes in comments.
+
+2017-04-27 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_prag.adb: disable clones in SPARK_Mode.
+
+2017-04-27 Gary Dismukes <dismukes@adacore.com>
+
+ * sem_util.ads, contracts.adb: Minor reformatting.
+
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb, sem_util.ads (Build_Class_Wide_Clone_Body):
begin
Analyze_Entry_Or_Subprogram_Contract (Subp_Id, Freeze_Id);
- -- If analysis of a classwide pre/postcondition indicates
+ -- If analysis of a class-wide pre/postcondition indicates
-- that a class-wide clone is needed, analyze its declaration
- -- now. Its body is created when the body of the original
+ -- now. Its body is created when the body of the original
-- operation is analyzed (and rewritten).
if Is_Subprogram (Subp_Id)
-- OK_To_Reorder_Components (Flag239) [base type only]
-- Defined in record types. Set if the backend is permitted to reorder
--- the components. If not set, the record must be layed out in the order
+-- the components. If not set, the record must be laid out in the order
-- in which the components are declared textually. Currently this flag
-- can only be set by debug switches.
-- non-contiguous enumeration index types). References the type used to
-- represent the packed array, which is either a modular type for short
-- static arrays or an array of System.Unsigned in the bit-packed case,
--- or a regular array in the non-standard enumeration index case). Note
+-- or a regular array in the non-standard enumeration index case. Note
-- that in some situations (internal types and references to fields of
-- variant records), it is not always possible to construct this type in
-- advance of its use. If this field is empty, then the necessary type
elsif not Is_Abstract_Subprogram (Spec_Id)
and then No (Class_Wide_Clone (Spec_Id))
and then not Has_Controlling_Result (Spec_Id)
+ and then SPARK_Mode /= On
then
Build_Class_Wide_Clone_Decl (Spec_Id);
end if;
-- Determine whether a selected component has a type that depends on
-- discriminants, and build actual subtype for it if so.
- -- Handling of inherited primitives whose ancestor have class-wide
- -- pre/post conditions.
+ -- Handling of inherited primitives whose ancestors have class-wide
+ -- pre/postconditions.
- -- If a primitive operation of a parent type has a class-wide pre/post
+ -- If a primitive operation of a parent type has a class-wide pre/post-
-- condition that includes calls to other primitives, and that operation
-- is inherited by a descendant type that also overrides some of these
-- other primitives, the condition that applies to the inherited
-- economically we create a subprogram body (a "class-wide clone") to
-- which no pre/postconditions apply, and we create bodies for the
-- original and the inherited operation that have their respective
- -- pre/post conditions and simply call the clone. The following operations
+ -- pre/postconditions and simply call the clone. The following operations
-- take care of constructing declaration and body of the clone, and
-- building the calls to it within the appropriate wrappers.
-- clone includes the proper conversion in a call the parent operation.
procedure Build_Class_Wide_Clone_Decl (Spec_Id : Entity_Id);
- -- For a subprogram that has a clas-wide condition that contains calls
+ -- For a subprogram that has a class-wide condition that contains calls
-- to other primitives, build an internal subprogram that is invoked
-- through a type-specific wrapper for all inherited subprograms that
-- may have a modified condition.