This patch corrects the minor decoration performed on invariant procedures in
case the procedure is not inserted into the tree and analyzed. The decoration
now constructs a proper first/next/last entity chain containing the single
formal parameter which represents the object of the related type. The chain
then ensures that any other entities generated by the [pre]analysis of the
invariant expression will be properly added to the chain.
The issue was discovered during the development of the GNATprove tool and
is not visible to end users. No simple test is available because this would
require a debug session.
2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
gcc/ada/
* exp_util.adb (Build_Invariant_Procedure_Declaration): Set the last
entity of the generated invariant procedure in order to construct a
proper entity chain.
From-SVN: r256483
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_util.adb (Build_Invariant_Procedure_Declaration): Set the last
+ entity of the generated invariant procedure in order to construct a
+ proper entity chain.
+
2018-01-11 Piotr Trojanek <trojanek@adacore.com>
* sem_ch13.adb (Build_Predicate_Functions): Fix minor issues in
Set_Scope (Obj_Id, Proc_Id);
Set_First_Entity (Proc_Id, Obj_Id);
+ Set_Last_Entity (Proc_Id, Obj_Id);
-- Generate:
-- procedure <Work_Typ>[Partial_]Invariant (_object : <Obj_Typ>);