Commit 4a187263 by Bob Duff Committed by Pierre-Marie de Rodat

[Ada] Bad warning: Size in Compile_Time_Error in nested instance

2019-12-16  Bob Duff  <duff@adacore.com>

gcc/ada/

	* sem_attr.adb (Analyze_Attribute): Use Known_RM_Size. But we
	still need Size_Known_At_Compile_Time, because when the size
	really is known, sometimes only one or the other of these is
	True.

From-SVN: r279421
parent d8468b97
2019-12-16 Bob Duff <duff@adacore.com>
* sem_attr.adb (Analyze_Attribute): Use Known_RM_Size. But we
still need Size_Known_At_Compile_Time, because when the size
really is known, sometimes only one or the other of these is
True.
2019-12-16 Eric Botcazou <ebotcazou@adacore.com>
* sem_util.adb (Is_Atomic_Or_VFA_Object): Also return true for
......
......@@ -5841,13 +5841,16 @@ package body Sem_Attr is
-- Time_Errors after the back end has been called and this occurrence
-- of 'Size is known at compile time then it is safe to perform this
-- evaluation. Needed to perform the static evaluation of the full
-- boolean expression of these pragmas.
-- boolean expression of these pragmas. Note that Known_RM_Size is
-- sometimes True when Size_Known_At_Compile_Time is False, when the
-- back end has computed it.
if In_Compile_Time_Warning_Or_Error
and then Is_Entity_Name (P)
and then (Is_Type (Entity (P))
or else Ekind (Entity (P)) = E_Enumeration_Literal)
and then Size_Known_At_Compile_Time (Entity (P))
and then (Known_RM_Size (Entity (P))
or else Size_Known_At_Compile_Time (Entity (P)))
then
declare
Siz : Uint;
......
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