mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-15 05:01:13 +08:00
* expression.h (enum exp_opcode): Add a new operator for F90
subrange. * f-lang.h (enum f90_range_type): New enumeration type to identify F90 subrange type. * f-exp.y (yyparse): Add support for parsing F90 subrange and change substring parsing to subrange parsing. * parse.c (operator_length_standard): Set the operator length and args number for OP_F90_RANGE. * eval.c (evaluate_subexp_standard): Add code to evaluate F90 array section and substring. (value_f90_subarray): New function to evaluate F90 array section. (evaluate_subexp_standard): Delete label op_f77_substr and its code because the logic is implemented by function value_f90_subarray now.
This commit is contained in:
13
gdb/f-lang.h
13
gdb/f-lang.h
@ -36,6 +36,19 @@ extern int f_val_print (struct type *, const gdb_byte *, int, CORE_ADDR,
|
||||
|
||||
/* Language-specific data structures */
|
||||
|
||||
/* In F90 subrange expression, either bound could be empty, indicating that
|
||||
its value is by default that of the corresponding bound of the array or
|
||||
string. So we have four sorts of subrange in F90. This enumeration type
|
||||
is to identify this. */
|
||||
|
||||
enum f90_range_type
|
||||
{
|
||||
BOTH_BOUND_DEFAULT, /* "(:)" */
|
||||
LOW_BOUND_DEFAULT, /* "(:high)" */
|
||||
HIGH_BOUND_DEFAULT, /* "(low:)" */
|
||||
NONE_BOUND_DEFAULT /* "(low:high)" */
|
||||
};
|
||||
|
||||
struct common_entry
|
||||
{
|
||||
struct symbol *symbol; /* The symbol node corresponding
|
||||
|
Reference in New Issue
Block a user