Introduce ada_string_operation

This adds class ada_string_operation, which implements string
constants for Ada.

gdb/ChangeLog
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.
This commit is contained in:
Tom Tromey
2021-03-08 07:27:57 -07:00
parent 03070ee9c7
commit 42fecb6183
3 changed files with 31 additions and 0 deletions

View File

@@ -10414,6 +10414,19 @@ ada_wrapped_operation::evaluate (struct type *expect_type,
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