mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 09:08:59 +00: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