/* Ada language support definitions for GDB, the GNU debugger.
- Copyright (C) 1992-2021 Free Software Foundation, Inc.
+ Copyright (C) 1992-2022 Free Software Foundation, Inc.
This file is part of GDB.
"___finalizer[.$a-zA-Z0-9_]*$",
/* The maximum number of frame levels searched for non-local,
- * non-global symbols. This limit exists as a precaution to prevent
- * infinite search loops when the stack is screwed up. */
+ non-global symbols. This limit exists as a precaution to prevent
+ infinite search loops when the stack is screwed up. */
#define MAX_ENCLOSING_FRAME_LEVELS 7
/* Maximum number of steps followed in looking for the ultimate
int base_cpu;
};
-extern void ada_ensure_varsize_limit (const struct type *type);
-
extern int ada_get_field_index (const struct type *type,
const char *field_name,
int maybe_missing);
extern const char *ada_decode_symbol (const struct general_symbol_info *);
-extern std::string ada_decode (const char*);
+/* Decode the GNAT-encoded name NAME, returning the decoded name. If
+ the name does not appear to be GNAT-encoded, then the result
+ depends on WRAP. If WRAP is true (the default), then the result is
+ simply wrapped in <...>. If WRAP is false, then the empty string
+ will be returned. */
+extern std::string ada_decode (const char *name, bool wrap = true);
extern std::vector<struct block_symbol> ada_lookup_symbol_list
(const char *, const struct block *, domain_enum);
struct inferior *inf);
/* Look for a symbol for an overloaded operator for the operation OP.
- PARSE_COMPLETION is nonzero if currently parsing for completion.
+ PARSE_COMPLETION is true 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,
+ bool 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
+ describes the calling context. PARSE_COMPLETION is true 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,
+ bool 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
+ describes the calling context. PARSE_COMPLETION is true 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
extern block_symbol ada_resolve_variable (struct symbol *sym,
const struct block *block,
struct type *context_type,
- int parse_completion,
+ bool parse_completion,
int deprocedure_p,
innermost_block_tracker *tracker);
+/* The type of nth index in arrays of given type (n numbering from 1).
+ Does not examine memory. Throws an error if N is invalid or TYPE
+ is not an array type. NAME is the name of the Ada attribute being
+ evaluated ('range, 'first, 'last, or 'length); it is used in building
+ the error message. */
+extern struct type *ada_index_type (struct type *type, int n,
+ const char *name);
+
#endif