aboutsummaryrefslogtreecommitdiff
path: root/gdb/ada-lang.h
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2021-03-08 07:27:57 -0700
committerTom Tromey <tom@tromey.com>2021-03-08 07:28:32 -0700
commitcd9a314824b2b87207a8ba7a8003639989d2406b (patch)
tree8cf783cf73fec36e1d9fb62bca1c9c51395df36a /gdb/ada-lang.h
parentcf12b17fd05811e08235fd4aaca5306bd78c7527 (diff)
downloadfsf-binutils-gdb-cd9a314824b2b87207a8ba7a8003639989d2406b.zip
fsf-binutils-gdb-cd9a314824b2b87207a8ba7a8003639989d2406b.tar.gz
fsf-binutils-gdb-cd9a314824b2b87207a8ba7a8003639989d2406b.tar.bz2
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.
Diffstat (limited to 'gdb/ada-lang.h')
-rw-r--r--gdb/ada-lang.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h
index c380733..679aeb4 100644
--- a/gdb/ada-lang.h
+++ b/gdb/ada-lang.h
@@ -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