diff options
author | Tom Tromey <tromey@adacore.com> | 2021-03-15 06:23:12 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2021-03-15 06:23:13 -0600 |
commit | c04da66c264162e6efc37686c0e4ee46c5b048ab (patch) | |
tree | f87389e0dfdedf5f5a918742261d11ae29babcf3 /gdb/ada-lang.c | |
parent | 9863c3b5fc64eec400ed55792a49c678927a6145 (diff) | |
download | fsf-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.c | 2 |
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; |