[Ada] Set related expression for external DISCR symbols in Build_Temporary
gcc/ada/ * exp_util.adb (Build_Temporary): In case of an external DISCR symbol, set the related expression for CodePeer so that a more comprehensible message can be emitted to the user.
This commit is contained in:
parent
13b594411d
commit
900f9d999c
@ -11656,6 +11656,7 @@ package body Exp_Util is
|
||||
is
|
||||
Temp_Id : Entity_Id;
|
||||
Temp_Nam : Name_Id;
|
||||
Should_Set_Related_Expression : Boolean := False;
|
||||
|
||||
begin
|
||||
-- The context requires an external symbol : expression is
|
||||
@ -11675,6 +11676,12 @@ package body Exp_Util is
|
||||
|
||||
else
|
||||
pragma Assert (Discr_Number > 0);
|
||||
|
||||
-- We don't have any intelligible way of printing T_DISCR in
|
||||
-- CodePeer. Thus, set a related expression in this case.
|
||||
|
||||
Should_Set_Related_Expression := True;
|
||||
|
||||
-- Use fully qualified name to avoid ambiguities.
|
||||
|
||||
Temp_Nam :=
|
||||
@ -11684,6 +11691,10 @@ package body Exp_Util is
|
||||
|
||||
Temp_Id := Make_Defining_Identifier (Loc, Temp_Nam);
|
||||
|
||||
if Should_Set_Related_Expression then
|
||||
Set_Related_Expression (Temp_Id, Related_Nod);
|
||||
end if;
|
||||
|
||||
-- Otherwise generate an internal temporary
|
||||
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user