[Ada] Fix check for looking for user defined literals
Recall that Has_Possible_Literal_Aspects only comes in if a given node does not have any visible interpretation. If one operand is a literal we assume that there may be a user-defined literal defined for some type to be determined during the downward pass of resolution, but that depends on the existence of some user-defined function or operator that can take that literal as an actual. If analysis did not find such, the call is illegal. I think that the following must be added to Operator_Check to recover the proper error. Note that this breaks current partial implementation of user-defined literals. gcc/ada/ * sem_ch4.adb (Operator_Check): Fix condition.
This commit is contained in:
parent
28fffc452e
commit
f1231d9a0b
1 changed files with 3 additions and 1 deletions
|
@ -7260,7 +7260,9 @@ package body Sem_Ch4 is
|
|||
then
|
||||
return;
|
||||
|
||||
elsif Has_Possible_Literal_Aspects (N) then
|
||||
elsif Present (Entity (N))
|
||||
and then Has_Possible_Literal_Aspects (N)
|
||||
then
|
||||
return;
|
||||
|
||||
-- If we have a logical operator, one of whose operands is
|
||||
|
|
Loading…
Add table
Reference in a new issue