Implement some Ada unary operations
This implements a few Ada unary operations, using the existing unop_operation template class. gdb/ChangeLog 2021-03-08 Tom Tromey <tom@tromey.com> * ada-lang.c (ada_unop_neg, ada_atr_tag, ada_atr_size, ada_abs): No longer static. * ada-exp.h (ada_neg_operation, ada_atr_tag_operation) (ada_atr_size_operation, ada_abs_operation): New typedefs.
This commit is contained in:
parent
5019124b1d
commit
7c15d377de
3 changed files with 33 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2021-03-08 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* ada-lang.c (ada_unop_neg, ada_atr_tag, ada_atr_size, ada_abs):
|
||||||
|
No longer static.
|
||||||
|
* ada-exp.h (ada_neg_operation, ada_atr_tag_operation)
|
||||||
|
(ada_atr_size_operation, ada_abs_operation): New typedefs.
|
||||||
|
|
||||||
2021-03-08 Tom Tromey <tom@tromey.com>
|
2021-03-08 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* expop.h (class logical_and_operation)
|
* expop.h (class logical_and_operation)
|
||||||
|
|
|
@ -22,6 +22,23 @@
|
||||||
|
|
||||||
#include "expop.h"
|
#include "expop.h"
|
||||||
|
|
||||||
|
extern struct value *ada_unop_neg (struct type *expect_type,
|
||||||
|
struct expression *exp,
|
||||||
|
enum noside noside, enum exp_opcode op,
|
||||||
|
struct value *arg1);
|
||||||
|
extern struct value *ada_atr_tag (struct type *expect_type,
|
||||||
|
struct expression *exp,
|
||||||
|
enum noside noside, enum exp_opcode op,
|
||||||
|
struct value *arg1);
|
||||||
|
extern struct value *ada_atr_size (struct type *expect_type,
|
||||||
|
struct expression *exp,
|
||||||
|
enum noside noside, enum exp_opcode op,
|
||||||
|
struct value *arg1);
|
||||||
|
extern struct value *ada_abs (struct type *expect_type,
|
||||||
|
struct expression *exp,
|
||||||
|
enum noside noside, enum exp_opcode op,
|
||||||
|
struct value *arg1);
|
||||||
|
|
||||||
namespace expr
|
namespace expr
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -87,6 +104,11 @@ public:
|
||||||
{ return TERNOP_IN_RANGE; }
|
{ return TERNOP_IN_RANGE; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
using ada_neg_operation = unop_operation<UNOP_NEG, ada_unop_neg>;
|
||||||
|
using ada_atr_tag_operation = unop_operation<OP_ATR_TAG, ada_atr_tag>;
|
||||||
|
using ada_atr_size_operation = unop_operation<OP_ATR_SIZE, ada_atr_size>;
|
||||||
|
using ada_abs_operation = unop_operation<UNOP_ABS, ada_abs>;
|
||||||
|
|
||||||
} /* namespace expr */
|
} /* namespace expr */
|
||||||
|
|
||||||
#endif /* ADA_EXP_H */
|
#endif /* ADA_EXP_H */
|
||||||
|
|
|
@ -9964,7 +9964,7 @@ eval_ternop_in_range (struct type *expect_type, struct expression *exp,
|
||||||
|
|
||||||
/* A helper function for UNOP_NEG. */
|
/* A helper function for UNOP_NEG. */
|
||||||
|
|
||||||
static value *
|
value *
|
||||||
ada_unop_neg (struct type *expect_type,
|
ada_unop_neg (struct type *expect_type,
|
||||||
struct expression *exp,
|
struct expression *exp,
|
||||||
enum noside noside, enum exp_opcode op,
|
enum noside noside, enum exp_opcode op,
|
||||||
|
@ -10015,7 +10015,7 @@ ada_unop_in_range (struct type *expect_type,
|
||||||
|
|
||||||
/* A helper function for OP_ATR_TAG. */
|
/* A helper function for OP_ATR_TAG. */
|
||||||
|
|
||||||
static value *
|
value *
|
||||||
ada_atr_tag (struct type *expect_type,
|
ada_atr_tag (struct type *expect_type,
|
||||||
struct expression *exp,
|
struct expression *exp,
|
||||||
enum noside noside, enum exp_opcode op,
|
enum noside noside, enum exp_opcode op,
|
||||||
|
@ -10029,7 +10029,7 @@ ada_atr_tag (struct type *expect_type,
|
||||||
|
|
||||||
/* A helper function for OP_ATR_SIZE. */
|
/* A helper function for OP_ATR_SIZE. */
|
||||||
|
|
||||||
static value *
|
value *
|
||||||
ada_atr_size (struct type *expect_type,
|
ada_atr_size (struct type *expect_type,
|
||||||
struct expression *exp,
|
struct expression *exp,
|
||||||
enum noside noside, enum exp_opcode op,
|
enum noside noside, enum exp_opcode op,
|
||||||
|
@ -10054,7 +10054,7 @@ ada_atr_size (struct type *expect_type,
|
||||||
|
|
||||||
/* A helper function for UNOP_ABS. */
|
/* A helper function for UNOP_ABS. */
|
||||||
|
|
||||||
static value *
|
value *
|
||||||
ada_abs (struct type *expect_type,
|
ada_abs (struct type *expect_type,
|
||||||
struct expression *exp,
|
struct expression *exp,
|
||||||
enum noside noside, enum exp_opcode op,
|
enum noside noside, enum exp_opcode op,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue