forked from Imagelibrary/binutils-gdb
Split out some Ada type resolution code
This splits some Ada type resolution code out of resolve_subexp into new functions that can be reused. gdb/ChangeLog 2021-03-08 Tom Tromey <tom@tromey.com> * ada-lang.h (ada_find_operator_symbol, ada_resolve_funcall) (ada_resolve_variable): Declare. * ada-lang.c (ada_find_operator_symbol, ada_resolve_funcall) (ada_resolve_variable): New functions. (resolve_subexp): Update.
This commit is contained in:
@@ -379,4 +379,42 @@ extern void print_ada_task_info (struct ui_out *uiout,
|
||||
const char *taskno_str,
|
||||
struct inferior *inf);
|
||||
|
||||
/* Look for a symbol for an overloaded operator for the operation OP.
|
||||
PARSE_COMPLETION is nonzero if currently parsing for completion.
|
||||
NARGS and ARGVEC describe the arguments to the call. Returns a
|
||||
"null" block_symbol if no such operator is found. */
|
||||
|
||||
extern block_symbol ada_find_operator_symbol (enum exp_opcode op,
|
||||
int parse_completion,
|
||||
int nargs, value *argvec[]);
|
||||
|
||||
/* Resolve a function call, selecting among possible function symbols.
|
||||
SYM and BLOCK are passed to ada_lookup_symbol_list. CONTEXT_TYPE
|
||||
describes the calling context. PARSE_COMPLETION is nonzero if
|
||||
currently parsing for completion. NARGS and ARGVEC describe the
|
||||
arguments to the call. This returns the chosen symbol and will
|
||||
update TRACKER accordingly. */
|
||||
|
||||
extern block_symbol ada_resolve_funcall (struct symbol *sym,
|
||||
const struct block *block,
|
||||
struct type *context_type,
|
||||
int parse_completion,
|
||||
int nargs, value *argvec[],
|
||||
innermost_block_tracker *tracker);
|
||||
|
||||
/* Resolve a symbol reference, selecting among possible values. SYM
|
||||
and BLOCK are passed to ada_lookup_symbol_list. CONTEXT_TYPE
|
||||
describes the calling context. PARSE_COMPLETION is nonzero if
|
||||
currently parsing for completion. If DEPROCEDURE_P is nonzero,
|
||||
then a symbol that names a zero-argument function will be passed
|
||||
through ada_resolve_function. This returns the chosen symbol and
|
||||
will update TRACKER accordingly. */
|
||||
|
||||
extern block_symbol ada_resolve_variable (struct symbol *sym,
|
||||
const struct block *block,
|
||||
struct type *context_type,
|
||||
int parse_completion,
|
||||
int deprocedure_p,
|
||||
innermost_block_tracker *tracker);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user