mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
Remove some unnecessary Ada expression code
ada_bitwise_operation differs from the "usual" bitwise operations only in that it calls value_cast at the end. However, because gdb is generally fairly lax about integer types, and because (perhaps oddly) C-style binary promotion is done here anyway, it seems to me that this code isn't needed.
This commit is contained in:
parent
1dd09e7f70
commit
38ad466f70
@ -286,33 +286,6 @@ class ada_binop_equal_operation
|
||||
{ return std::get<0> (m_storage); }
|
||||
};
|
||||
|
||||
/* Bitwise operators for Ada. */
|
||||
template<enum exp_opcode OP>
|
||||
class ada_bitwise_operation
|
||||
: public maybe_constant_operation<operation_up, operation_up>
|
||||
{
|
||||
public:
|
||||
|
||||
using maybe_constant_operation::maybe_constant_operation;
|
||||
|
||||
value *evaluate (struct type *expect_type,
|
||||
struct expression *exp,
|
||||
enum noside noside) override
|
||||
{
|
||||
value *lhs = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
|
||||
value *rhs = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
|
||||
value *result = eval_op_binary (expect_type, exp, noside, OP, lhs, rhs);
|
||||
return value_cast (lhs->type (), result);
|
||||
}
|
||||
|
||||
enum exp_opcode opcode () const override
|
||||
{ return OP; }
|
||||
};
|
||||
|
||||
using ada_bitwise_and_operation = ada_bitwise_operation<BINOP_BITWISE_AND>;
|
||||
using ada_bitwise_ior_operation = ada_bitwise_operation<BINOP_BITWISE_IOR>;
|
||||
using ada_bitwise_xor_operation = ada_bitwise_operation<BINOP_BITWISE_XOR>;
|
||||
|
||||
/* Ada array- or string-slice operation. */
|
||||
class ada_ternop_slice_operation
|
||||
: public maybe_constant_operation<operation_up, operation_up, operation_up>,
|
||||
|
@ -800,10 +800,10 @@ exp : relation
|
||||
|
||||
and_exp :
|
||||
relation _AND_ relation
|
||||
{ ada_wrap2<ada_bitwise_and_operation>
|
||||
{ ada_wrap2<bitwise_and_operation>
|
||||
(BINOP_BITWISE_AND); }
|
||||
| and_exp _AND_ relation
|
||||
{ ada_wrap2<ada_bitwise_and_operation>
|
||||
{ ada_wrap2<bitwise_and_operation>
|
||||
(BINOP_BITWISE_AND); }
|
||||
;
|
||||
|
||||
@ -818,10 +818,10 @@ and_then_exp :
|
||||
|
||||
or_exp :
|
||||
relation OR relation
|
||||
{ ada_wrap2<ada_bitwise_ior_operation>
|
||||
{ ada_wrap2<bitwise_ior_operation>
|
||||
(BINOP_BITWISE_IOR); }
|
||||
| or_exp OR relation
|
||||
{ ada_wrap2<ada_bitwise_ior_operation>
|
||||
{ ada_wrap2<bitwise_ior_operation>
|
||||
(BINOP_BITWISE_IOR); }
|
||||
;
|
||||
|
||||
@ -833,10 +833,10 @@ or_else_exp :
|
||||
;
|
||||
|
||||
xor_exp : relation XOR relation
|
||||
{ ada_wrap2<ada_bitwise_xor_operation>
|
||||
{ ada_wrap2<bitwise_xor_operation>
|
||||
(BINOP_BITWISE_XOR); }
|
||||
| xor_exp XOR relation
|
||||
{ ada_wrap2<ada_bitwise_xor_operation>
|
||||
{ ada_wrap2<bitwise_xor_operation>
|
||||
(BINOP_BITWISE_XOR); }
|
||||
;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user