Commit 4fe56329 by Yannick Moy Committed by Pierre-Marie de Rodat

[Ada] Use declared type for deciding on SPARK pointer rules

A constant of pointer type is considered as mutable in SPARK, according
to SPARK RM 3.10, but this should be based on the declared type of the
constant instead of its underlying type.

There is no impact on compilation hence no test.

2019-09-19  Yannick Moy  <moy@adacore.com>

gcc/ada/

	* sem_prag.adb (Analyze_Depends_In_Decl_Part): Simplify previous
	test.

From-SVN: r275950
parent 46fa6b05
2019-09-19 Yannick Moy <moy@adacore.com>
* sem_prag.adb (Analyze_Depends_In_Decl_Part): Simplify previous
test.
2019-09-19 Ed Schonberg <schonberg@adacore.com>
* sem_ch7.adb (Install_Parent_Private_Declarations): If a
......
......@@ -1272,13 +1272,7 @@ package body Sem_Prag is
if Ekind_In (Item_Id, E_Constant,
E_Generic_In_Parameter,
E_In_Parameter)
-- If Item_Id is of a private type whose completion has not been
-- analyzed yet, its Underlying_Type is empty and we handle it
-- as a constant.
and then Present (Underlying_Type (Etype (Item_Id)))
and then Is_Access_Type (Underlying_Type (Etype (Item_Id)))
and then Is_Access_Type (Etype (Item_Id))
then
Adjusted_Kind := E_Variable;
end if;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment