diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2020-05-07 16:27:16 +0100 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2020-09-19 09:44:58 +0100 |
commit | 6d81691950f8c4be4a49a85a672255c140e82468 (patch) | |
tree | 66e445599cf0dbd55335407b53133901c35fefbe /gdb/expression.h | |
parent | 8c37706a511209f6a92d887812c14e860c3bd0a0 (diff) | |
download | binutils-6d81691950f8c4be4a49a85a672255c140e82468.zip binutils-6d81691950f8c4be4a49a85a672255c140e82468.tar.gz binutils-6d81691950f8c4be4a49a85a672255c140e82468.tar.bz2 |
gdb/fortran: Move Fortran expression handling into f-lang.c
The Fortran specific OP_F77_UNDETERMINED_ARGLIST is currently handled
in the generic expression handling code. There's no reason why this
should be the case, so this commit moves handling of this into Fortran
specific files.
There should be no user visible changes after this commit.
gdb/ChangeLog:
* eval.c: Remove 'f-lang.h' include.
(value_f90_subarray): Moved to f-lang.c.
(eval_call): Renamed to...
(evaluate_subexp_do_call): ...this, is no longer static, header
comment moved into header file.
(evaluate_funcall): Update call to eval_call.
(skip_undetermined_arglist): Moved to f-lang.c.
(fortran_value_subarray): Likewise.
(evaluate_subexp_standard): OP_F77_UNDETERMINED_ARGLIST handling
moved to evaluate_subexp_f.
(calc_f77_array_dims): Moved to f-lang.c
* expprint.c (print_subexp_funcall): New function.
(print_subexp_standard): OP_F77_UNDETERMINED_ARGLIST handling
moved to print_subexp_f, OP_FUNCALL uses new function.
(dump_subexp_body_funcall): New function.
(dump_subexp_body_standard): OP_F77_UNDETERMINED_ARGLIST handling
moved to dump_subexp_f, OP_FUNCALL uses new function.
* expression.h (evaluate_subexp_do_call): Declare.
* f-lang.c (value_f90_subarray): Moved from eval.c.
(skip_undetermined_arglist): Likewise.
(calc_f77_array_dims): Likewise.
(fortran_value_subarray): Likewise.
(evaluate_subexp_f): Add OP_F77_UNDETERMINED_ARGLIST support.
(operator_length_f): Likewise.
(print_subexp_f): Likewise.
(dump_subexp_body_f): Likewise.
* fortran-operator.def (OP_F77_UNDETERMINED_ARGLIST): Move
declaration of this operation to here.
* parse.c (operator_length_standard): OP_F77_UNDETERMINED_ARGLIST
support moved to operator_length_f.
* parser-defs.h (dump_subexp_body_funcall): Declare.
(print_subexp_funcall): Declare.
* std-operator.def (OP_F77_UNDETERMINED_ARGLIST): Moved to
fortran-operator.def.
Diffstat (limited to 'gdb/expression.h')
-rw-r--r-- | gdb/expression.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/expression.h b/gdb/expression.h index f1128c4..5af10f0 100644 --- a/gdb/expression.h +++ b/gdb/expression.h @@ -155,6 +155,18 @@ enum noside extern struct value *evaluate_subexp_standard (struct type *, struct expression *, int *, enum noside); +/* Evaluate a function call. The function to be called is in ARGVEC[0] and + the arguments passed to the function are in ARGVEC[1..NARGS]. + FUNCTION_NAME is the name of the function, if known. + DEFAULT_RETURN_TYPE is used as the function's return type if the return + type is unknown. */ + +extern struct value *evaluate_subexp_do_call (expression *exp, + enum noside noside, + int nargs, value **argvec, + const char *function_name, + type *default_return_type); + /* From expprint.c */ extern void print_expression (struct expression *, struct ui_file *); |