Skip to content
Snippets Groups Projects
Commit 3ad67df2 authored by Javier Miranda's avatar Javier Miranda Committed by Marc Poulhiès
Browse files

ada: Spurious error on class-wide preconditions

The compiler reports an spurious error when a class-wide precondition
expression has a class-wide type conversion.

gcc/ada/

	* sem_res.adb (Resolve_Type_Conversion): Do not warn on conversion
	to class-wide type on internally build helpers of class-wide
	preconditions.
parent c5f673db
No related branches found
No related tags found
No related merge requests found
......@@ -12455,6 +12455,18 @@ package body Sem_Res is
elsif Orig_T = Base_Type (Standard_Long_Long_Integer) then
null;
 
-- Do not warn on conversion to class-wide type on helpers of
-- class-wide preconditions because in this context the warning
-- would be spurious (since the class-wide precondition has been
-- installed in the return statement of the helper, which has a
-- class-wide formal type instead of a regular tagged type).
elsif Is_Class_Wide_Type (Orig_T)
and then Is_Subprogram_Or_Generic_Subprogram (Current_Scope)
and then Present (Class_Preconditions_Subprogram (Current_Scope))
then
null;
-- Here we give the redundant conversion warning. If it is an
-- entity, give the name of the entity in the message. If not,
-- just mention the expression.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment