diff options
author | Ed Schonberg <schonberg@adacore.com> | 2021-09-13 20:14:56 -0400 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2021-10-25 15:07:22 +0000 |
commit | 51e38f3b2873554f6481b0dc1e7cd4b8359a2b5f (patch) | |
tree | 467ebbdb854f114de48f555e0646e46df8febac4 /gcc/tree-vrp.c | |
parent | 42b39995546a63fe7d9313744cdab21f356346b2 (diff) | |
download | gcc-51e38f3b2873554f6481b0dc1e7cd4b8359a2b5f.zip gcc-51e38f3b2873554f6481b0dc1e7cd4b8359a2b5f.tar.gz gcc-51e38f3b2873554f6481b0dc1e7cd4b8359a2b5f.tar.bz2 |
[Ada] Spurious error on user-defined literal and operator
gcc/ada/
* sem_ch4.adb (Has_Possible_Literal_Aspects): If analysis of an
operator node fails to find a possible interpretation, and one
of its operands is a literal or a named number, assign to the
node the corresponding class type (Any_Integer, Any_String,
etc).
(Operator_Check): Call it before emitting a type error.
* sem_res.adb (Has_Applicable_User_Defined_Literal): Given a
literal and a type, determine whether the type has a
user_defined aspect that can apply to the literal, and rewrite
the node as call to the corresponding function. Most of the code
was previously in procedure Resolve.
(Try_User_Defined_Literal): Check operands of a predefined
operator that fails to resolve, and apply
Has_Applicable_User_Defined_Literal to literal operands if any,
to find if a conversion will allow the operator to resolve
properly.
(Resolve): Call the above when a literal or an operator with a
literal operand fails to resolve.
Diffstat (limited to 'gcc/tree-vrp.c')
0 files changed, 0 insertions, 0 deletions