aboutsummaryrefslogtreecommitdiff
path: root/gdb/ada-lang.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2021-03-15 06:23:12 -0600
committerTom Tromey <tromey@adacore.com>2021-03-15 06:23:13 -0600
commitc04da66c264162e6efc37686c0e4ee46c5b048ab (patch)
treef87389e0dfdedf5f5a918742261d11ae29babcf3 /gdb/ada-lang.c
parent9863c3b5fc64eec400ed55792a49c678927a6145 (diff)
downloadfsf-binutils-gdb-c04da66c264162e6efc37686c0e4ee46c5b048ab.zip
fsf-binutils-gdb-c04da66c264162e6efc37686c0e4ee46c5b048ab.tar.gz
fsf-binutils-gdb-c04da66c264162e6efc37686c0e4ee46c5b048ab.tar.bz2
Implement Ada operator overloading
In the expression rewrite, I neglected to carry over support for Ada operator overloading. It turns out that there were no tests for this in-tree. This patch adds support for operator overloading, and adds the missing test. gdb/ChangeLog 2021-03-15 Tom Tromey <tromey@adacore.com> * ada-lang.c (numeric_type_p, integer_type_p): Return true for fixed-point. * ada-exp.y (maybe_overload): New function. (ada_wrap_overload): New function. (ada_un_wrap2, ada_wrap2, ada_wrap_op): Use maybe_overload. (exp1, simple_exp, relation, and_exp, and_then_exp, or_exp) (or_else_exp, xor_exp, primary): Update. gdb/testsuite/ChangeLog 2021-03-15 Tom Tromey <tromey@adacore.com> * gdb.ada/operator_call/twovecs.ads: New file. * gdb.ada/operator_call/twovecs.adb: New file. * gdb.ada/operator_call/opcall.adb: New file. * gdb.ada/operator_call.exp: New file.
Diffstat (limited to 'gdb/ada-lang.c')
-rw-r--r--gdb/ada-lang.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 07958e7..a74f540 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -3690,6 +3690,7 @@ numeric_type_p (struct type *type)
{
case TYPE_CODE_INT:
case TYPE_CODE_FLT:
+ case TYPE_CODE_FIXED_POINT:
return 1;
case TYPE_CODE_RANGE:
return (type == TYPE_TARGET_TYPE (type)
@@ -3737,6 +3738,7 @@ scalar_type_p (struct type *type)
case TYPE_CODE_RANGE:
case TYPE_CODE_ENUM:
case TYPE_CODE_FLT:
+ case TYPE_CODE_FIXED_POINT:
return 1;
default:
return 0;