[Ada] GNATprove: improve proofs for uninitialized constrained objects

2018-12-11  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* sem_ch4.adb (Analyze_Allocator): In GNATprove mode build a
	subtype declaration if the allocator has a subtype indication
	with a constraint. This allows additional proofs to be applied
	to allocators that designate uninitialized constrained objects.

From-SVN: r266991
This commit is contained in:
Ed Schonberg 2018-12-11 11:10:17 +00:00 committed by Pierre-Marie de Rodat
parent 0b8ff545ed
commit 60c14ec73c
2 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2018-12-11 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Allocator): In GNATprove mode build a
subtype declaration if the allocator has a subtype indication
with a constraint. This allows additional proofs to be applied
to allocators that designate uninitialized constrained objects.
2018-12-11 Yannick Moy <moy@adacore.com>
* sem_util.adb (Has_Full_Default_Initialization): Consider

View File

@ -171,7 +171,6 @@ package body Sem_Ch4 is
-- being called. The caller will have verified that the object is legal
-- for the call. If the remaining parameters match, the first parameter
-- will rewritten as a dereference if needed, prior to completing analysis.
procedure Check_Misspelled_Selector
(Prefix : Entity_Id;
Sel : Node_Id);
@ -675,7 +674,11 @@ package body Sem_Ch4 is
return;
end if;
if Expander_Active then
-- In GNATprove mode we need to preserve the link between
-- the original subtype indication and the anonymous subtype,
-- to extend proofs to constrained acccess types.
if Expander_Active or else GNATprove_Mode then
Def_Id := Make_Temporary (Loc, 'S');
Insert_Action (E,