mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-03 05:12:28 +08:00
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:
@ -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>
|
||||
|
||||
* expop.h (class logical_and_operation)
|
||||
|
@ -22,6 +22,23 @@
|
||||
|
||||
#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
|
||||
{
|
||||
|
||||
@ -87,6 +104,11 @@ public:
|
||||
{ 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 */
|
||||
|
||||
#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. */
|
||||
|
||||
static value *
|
||||
value *
|
||||
ada_unop_neg (struct type *expect_type,
|
||||
struct expression *exp,
|
||||
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. */
|
||||
|
||||
static value *
|
||||
value *
|
||||
ada_atr_tag (struct type *expect_type,
|
||||
struct expression *exp,
|
||||
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. */
|
||||
|
||||
static value *
|
||||
value *
|
||||
ada_atr_size (struct type *expect_type,
|
||||
struct expression *exp,
|
||||
enum noside noside, enum exp_opcode op,
|
||||
@ -10054,7 +10054,7 @@ ada_atr_size (struct type *expect_type,
|
||||
|
||||
/* A helper function for UNOP_ABS. */
|
||||
|
||||
static value *
|
||||
value *
|
||||
ada_abs (struct type *expect_type,
|
||||
struct expression *exp,
|
||||
enum noside noside, enum exp_opcode op,
|
||||
|
Reference in New Issue
Block a user