+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_string_operation::evaluate): New method.
+ * ada-exp.h (class ada_string_operation): New.
+
2021-03-08 Tom Tromey <tom@tromey.com>
* ada-lang.c (ada_wrapped_operation::evaluate): New method.
{ return std::get<0> (m_storage)->opcode (); }
};
+/* An Ada string constant. */
+class ada_string_operation
+ : public string_operation
+{
+public:
+
+ using string_operation::string_operation;
+
+ value *evaluate (struct type *expect_type,
+ struct expression *exp,
+ enum noside noside) override;
+};
+
} /* namespace expr */
#endif /* ADA_EXP_H */
return result;
}
+value *
+ada_string_operation::evaluate (struct type *expect_type,
+ struct expression *exp,
+ enum noside noside)
+{
+ value *result = string_operation::evaluate (expect_type, exp, noside);
+ /* The result type will have code OP_STRING, bashed there from
+ OP_ARRAY. Bash it back. */
+ if (value_type (result)->code () == TYPE_CODE_STRING)
+ value_type (result)->set_code (TYPE_CODE_ARRAY);
+ return result;
+}
+
}
/* Implement the evaluate_exp routine in the exp_descriptor structure