+Tue Feb 21 20:48:42 1995 Per Bothner <bothner@kalessin.cygnus.com>
+
+ * valops.c (call_function_by_hand): Set using_gcc to 2 if gcc-2.
+ Call error if too few arguments.
+ If REG_STRUCT_HAS_ADDR (structs passed by invisible reference),
+ copy and convert to reference *before* we calculate alignment.
+ Also, make sure structs allocated for return values and invisible
+ reference don't violate STACK_ALIGN.
+
Tue Feb 21 11:47:26 1995 Stan Shebs <shebs@andros.cygnus.com>
* top.c (print_gdb_version): Update the year.
%token <voidval> UPPER
%token <voidval> LOWER
%token <voidval> LENGTH
+%token <voidval> ARRAY
/* Tokens which are not Chill tokens used in expressions, but rather GDB
specific things that we recognize in the same context as Chill tokens
write_exp_elt_type ($1.type);
write_exp_elt_opcode (UNOP_CAST);
}
+ | ARRAY '(' ')' mode_name parenthesised_expression
+ /* This is pseudo-Chill, similar to C's '(TYPE[])EXPR'
+ which casts to an artificial array. */
+ {
+ struct type *range_type
+ = create_range_type ((struct type *) NULL,
+ builtin_type_int, 0, 0);
+ struct type *array_type
+ = create_array_type ((struct type *) NULL,
+ $4.type, range_type);
+ TYPE_ARRAY_UPPER_BOUND_TYPE(array_type)
+ = BOUND_CANNOT_BE_DETERMINED;
+ write_exp_elt_opcode (UNOP_CAST);
+ write_exp_elt_type (array_type);
+ write_exp_elt_opcode (UNOP_CAST);
+ }
;
/* Z.200, 5.2.12 */
static const struct token idtokentab[] =
{
+ { "array", ARRAY },
{ "length", LENGTH },
{ "lower", LOWER },
{ "upper", UPPER },