X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fada-lang.c;h=030c4aa131b5981f9931c3506eaa4b63b0ebd7f9;hb=cf950fd4dd4581849a445a76b57514d72074927d;hp=0bddc9e8b0d422d6774e507e5cb9990dc514dbe1;hpb=91ae903f89f6869c8163d33cad1f90c87469d55b;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 0bddc9e8b0..030c4aa131 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -2257,7 +2257,7 @@ decode_constrained_packed_array (struct value *arr) return NULL; } - if (gdbarch_bits_big_endian (get_type_arch (value_type (arr))) + if (type_byte_order (value_type (arr)) == BFD_ENDIAN_BIG && ada_is_modular_type (value_type (arr))) { /* This is a (right-justified) modular type representing a packed @@ -2499,7 +2499,7 @@ ada_value_primitive_packed_val (struct value *obj, const gdb_byte *valaddr, const gdb_byte *src; /* First byte containing data to unpack */ gdb_byte *unpacked; const int is_scalar = is_scalar_type (type); - const int is_big_endian = gdbarch_bits_big_endian (get_type_arch (type)); + const int is_big_endian = type_byte_order (type) == BFD_ENDIAN_BIG; gdb::byte_vector staging; type = ada_check_typedef (type); @@ -2645,7 +2645,7 @@ ada_value_assign (struct value *toval, struct value *fromval) if (from_size == 0) from_size = TYPE_LENGTH (value_type (fromval)) * TARGET_CHAR_BIT; - const int is_big_endian = gdbarch_bits_big_endian (get_type_arch (type)); + const int is_big_endian = type_byte_order (type) == BFD_ENDIAN_BIG; ULONGEST from_offset = 0; if (is_big_endian && is_scalar_type (value_type (fromval))) from_offset = from_size - bits; @@ -2694,7 +2694,7 @@ value_assign_to_component (struct value *container, struct value *component, else bits = value_bitsize (component); - if (gdbarch_bits_big_endian (get_type_arch (value_type (container)))) + if (type_byte_order (value_type (container)) == BFD_ENDIAN_BIG) { int src_offset; @@ -3201,8 +3201,8 @@ sort_choices (struct block_symbol syms[], int nsyms) for (j = i - 1; j >= 0; j -= 1) { - if (encoded_ordered_before (SYMBOL_LINKAGE_NAME (syms[j].symbol), - SYMBOL_LINKAGE_NAME (sym.symbol))) + if (encoded_ordered_before (syms[j].symbol->linkage_name (), + sym.symbol->linkage_name ())) break; syms[j + 1] = syms[j]; } @@ -3225,7 +3225,7 @@ ada_print_symbol_signature (struct ui_file *stream, struct symbol *sym, { struct type *type = SYMBOL_TYPE (sym); - fprintf_filtered (stream, "%s", SYMBOL_PRINT_NAME (sym)); + fprintf_filtered (stream, "%s", sym->print_name ()); if (!print_signatures || type == NULL || TYPE_CODE (type) != TYPE_CODE_FUNC) @@ -3273,7 +3273,7 @@ static int get_selections (int *choices, int n_choices, int max_results, int is_all_choice, const char *annotation_suffix) { - char *args; + const char *args; const char *prompt; int n_chosen; int first_choice = is_all_choice ? 2 : 1; @@ -3431,7 +3431,7 @@ See set/show multiple-symbol.")); ada_print_type (SYMBOL_TYPE (syms[i].symbol), NULL, gdb_stdout, -1, 0, &type_print_raw_options); printf_filtered (_("'(%s) (enumeral)\n"), - SYMBOL_PRINT_NAME (syms[i].symbol)); + syms[i].symbol->print_name ()); } else { @@ -3675,8 +3675,7 @@ resolve_subexp (expression_up *expp, int *pos, int deprocedure_p, int n_candidates; n_candidates = - ada_lookup_symbol_list (SYMBOL_LINKAGE_NAME - (exp->elts[pc + 2].symbol), + ada_lookup_symbol_list (exp->elts[pc + 2].symbol->linkage_name (), exp->elts[pc + 1].block, VAR_DOMAIN, &candidates); @@ -3718,7 +3717,7 @@ resolve_subexp (expression_up *expp, int *pos, int deprocedure_p, if (n_candidates == 0) error (_("No definition found for %s"), - SYMBOL_PRINT_NAME (exp->elts[pc + 2].symbol)); + exp->elts[pc + 2].symbol->print_name ()); else if (n_candidates == 1) i = 0; else if (deprocedure_p @@ -3726,16 +3725,16 @@ resolve_subexp (expression_up *expp, int *pos, int deprocedure_p, { i = ada_resolve_function (candidates.data (), n_candidates, NULL, 0, - SYMBOL_LINKAGE_NAME (exp->elts[pc + 2].symbol), + exp->elts[pc + 2].symbol->linkage_name (), context_type, parse_completion); if (i < 0) error (_("Could not find a match for %s"), - SYMBOL_PRINT_NAME (exp->elts[pc + 2].symbol)); + exp->elts[pc + 2].symbol->print_name ()); } else { printf_filtered (_("Multiple matches for %s\n"), - SYMBOL_PRINT_NAME (exp->elts[pc + 2].symbol)); + exp->elts[pc + 2].symbol->print_name ()); user_select_syms (candidates.data (), n_candidates, 1); i = 0; } @@ -3765,8 +3764,7 @@ resolve_subexp (expression_up *expp, int *pos, int deprocedure_p, int n_candidates; n_candidates = - ada_lookup_symbol_list (SYMBOL_LINKAGE_NAME - (exp->elts[pc + 5].symbol), + ada_lookup_symbol_list (exp->elts[pc + 5].symbol->linkage_name (), exp->elts[pc + 4].block, VAR_DOMAIN, &candidates); @@ -3777,11 +3775,11 @@ resolve_subexp (expression_up *expp, int *pos, int deprocedure_p, i = ada_resolve_function (candidates.data (), n_candidates, argvec, nargs, - SYMBOL_LINKAGE_NAME (exp->elts[pc + 5].symbol), + exp->elts[pc + 5].symbol->linkage_name (), context_type, parse_completion); if (i < 0) error (_("Could not find a match for %s"), - SYMBOL_PRINT_NAME (exp->elts[pc + 5].symbol)); + exp->elts[pc + 5].symbol->print_name ()); } exp->elts[pc + 4].block = candidates[i].block; @@ -4264,7 +4262,7 @@ ada_parse_renaming (struct symbol *sym, case LOC_STATIC: case LOC_COMPUTED: case LOC_OPTIMIZED_OUT: - info = strstr (SYMBOL_LINKAGE_NAME (sym), "___XR"); + info = strstr (sym->linkage_name (), "___XR"); if (info == NULL) return ADA_NOT_RENAMING; switch (info[5]) @@ -4313,7 +4311,7 @@ ada_read_renaming_var_value (struct symbol *renaming_sym, { const char *sym_name; - sym_name = SYMBOL_LINKAGE_NAME (renaming_sym); + sym_name = renaming_sym->linkage_name (); expression_up expr = parse_exp_1 (&sym_name, 0, block, 0); return evaluate_expression (expr.get ()); } @@ -4546,7 +4544,7 @@ value_pointer (struct value *value, struct type *type) addr = value_address (value); gdbarch_address_to_pointer (gdbarch, type, buf, addr); - addr = extract_unsigned_integer (buf, len, gdbarch_byte_order (gdbarch)); + addr = extract_unsigned_integer (buf, len, type_byte_order (type)); return addr; } @@ -4834,8 +4832,8 @@ lesseq_defined_than (struct symbol *sym0, struct symbol *sym1) { struct type *type0 = SYMBOL_TYPE (sym0); struct type *type1 = SYMBOL_TYPE (sym1); - const char *name0 = SYMBOL_LINKAGE_NAME (sym0); - const char *name1 = SYMBOL_LINKAGE_NAME (sym1); + const char *name0 = sym0->linkage_name (); + const char *name1 = sym1->linkage_name (); int len0 = strlen (name0); return @@ -4850,8 +4848,8 @@ lesseq_defined_than (struct symbol *sym0, struct symbol *sym1) case LOC_STATIC: { - const char *name0 = SYMBOL_LINKAGE_NAME (sym0); - const char *name1 = SYMBOL_LINKAGE_NAME (sym1); + const char *name0 = sym0->linkage_name (); + const char *name1 = sym1->linkage_name (); return (strcmp (name0, name1) == 0 && SYMBOL_VALUE_ADDRESS (sym0) == SYMBOL_VALUE_ADDRESS (sym1)); } @@ -4946,7 +4944,7 @@ ada_lookup_simple_minsym (const char *name) { for (minimal_symbol *msymbol : objfile->msymbols ()) { - if (match_name (MSYMBOL_LINKAGE_NAME (msymbol), lookup_name, NULL) + if (match_name (msymbol->linkage_name (), lookup_name, NULL) && MSYMBOL_TYPE (msymbol) != mst_solib_trampoline) { result.minsym = msymbol; @@ -5112,15 +5110,15 @@ remove_extra_symbols (std::vector *syms) the get rid of the stub. */ if (TYPE_STUB (SYMBOL_TYPE ((*syms)[i].symbol)) - && SYMBOL_LINKAGE_NAME ((*syms)[i].symbol) != NULL) + && (*syms)[i].symbol->linkage_name () != NULL) { for (j = 0; j < syms->size (); j++) { if (j != i && !TYPE_STUB (SYMBOL_TYPE ((*syms)[j].symbol)) - && SYMBOL_LINKAGE_NAME ((*syms)[j].symbol) != NULL - && strcmp (SYMBOL_LINKAGE_NAME ((*syms)[i].symbol), - SYMBOL_LINKAGE_NAME ((*syms)[j].symbol)) == 0) + && (*syms)[j].symbol->linkage_name () != NULL + && strcmp ((*syms)[i].symbol->linkage_name (), + (*syms)[j].symbol->linkage_name ()) == 0) remove_p = 1; } } @@ -5128,16 +5126,16 @@ remove_extra_symbols (std::vector *syms) /* Two symbols with the same name, same class and same address should be identical. */ - else if (SYMBOL_LINKAGE_NAME ((*syms)[i].symbol) != NULL + else if ((*syms)[i].symbol->linkage_name () != NULL && SYMBOL_CLASS ((*syms)[i].symbol) == LOC_STATIC && is_nondebugging_type (SYMBOL_TYPE ((*syms)[i].symbol))) { for (j = 0; j < syms->size (); j += 1) { if (i != j - && SYMBOL_LINKAGE_NAME ((*syms)[j].symbol) != NULL - && strcmp (SYMBOL_LINKAGE_NAME ((*syms)[i].symbol), - SYMBOL_LINKAGE_NAME ((*syms)[j].symbol)) == 0 + && (*syms)[j].symbol->linkage_name () != NULL + && strcmp ((*syms)[i].symbol->linkage_name (), + (*syms)[j].symbol->linkage_name ()) == 0 && SYMBOL_CLASS ((*syms)[i].symbol) == SYMBOL_CLASS ((*syms)[j].symbol) && SYMBOL_VALUE_ADDRESS ((*syms)[i].symbol) @@ -5314,7 +5312,7 @@ remove_irrelevant_renamings (std::vector *syms, if (sym == NULL || SYMBOL_CLASS (sym) == LOC_TYPEDEF) continue; - name = SYMBOL_LINKAGE_NAME (sym); + name = sym->linkage_name (); suffix = strstr (name, "___XR"); if (suffix != NULL) @@ -5325,7 +5323,7 @@ remove_irrelevant_renamings (std::vector *syms, is_new_style_renaming = 1; for (j = 0; j < syms->size (); j += 1) if (i != j && (*syms)[j].symbol != NULL - && strncmp (name, SYMBOL_LINKAGE_NAME ((*syms)[j].symbol), + && strncmp (name, (*syms)[j].symbol->linkage_name (), name_len) == 0 && block == (*syms)[j].block) (*syms)[j].symbol = NULL; @@ -5354,7 +5352,7 @@ remove_irrelevant_renamings (std::vector *syms, if (current_function == NULL) return syms->size (); - current_function_name = SYMBOL_LINKAGE_NAME (current_function); + current_function_name = current_function->linkage_name (); if (current_function_name == NULL) return syms->size (); @@ -6222,8 +6220,7 @@ ada_add_block_symbols (struct obstack *obstackp, sym != NULL; sym = block_iter_match_next (lookup_name, &iter)) { - if (symbol_matches_domain (SYMBOL_LANGUAGE (sym), - SYMBOL_DOMAIN (sym), domain)) + if (symbol_matches_domain (sym->language (), SYMBOL_DOMAIN (sym), domain)) { if (SYMBOL_CLASS (sym) != LOC_UNRESOLVED) { @@ -6262,22 +6259,22 @@ ada_add_block_symbols (struct obstack *obstackp, ALL_BLOCK_SYMBOLS (block, iter, sym) { - if (symbol_matches_domain (SYMBOL_LANGUAGE (sym), + if (symbol_matches_domain (sym->language (), SYMBOL_DOMAIN (sym), domain)) { int cmp; - cmp = (int) '_' - (int) SYMBOL_LINKAGE_NAME (sym)[0]; + cmp = (int) '_' - (int) sym->linkage_name ()[0]; if (cmp == 0) { - cmp = !startswith (SYMBOL_LINKAGE_NAME (sym), "_ada_"); + cmp = !startswith (sym->linkage_name (), "_ada_"); if (cmp == 0) - cmp = strncmp (name, SYMBOL_LINKAGE_NAME (sym) + 5, + cmp = strncmp (name, sym->linkage_name () + 5, name_len); } if (cmp == 0 - && is_name_suffix (SYMBOL_LINKAGE_NAME (sym) + name_len + 5)) + && is_name_suffix (sym->linkage_name () + name_len + 5)) { if (SYMBOL_CLASS (sym) != LOC_UNRESOLVED) { @@ -6430,7 +6427,7 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker, if (completion_skip_symbol (mode, msymbol)) continue; - language symbol_language = MSYMBOL_LANGUAGE (msymbol); + language symbol_language = msymbol->language (); /* Ada minimal symbols won't have their language set to Ada. If we let completion_list_add_name compare using the @@ -6449,7 +6446,7 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker, completion_list_add_name (tracker, symbol_language, - MSYMBOL_LINKAGE_NAME (msymbol), + msymbol->linkage_name (), lookup_name, text, word); } } @@ -6468,8 +6465,8 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker, continue; completion_list_add_name (tracker, - SYMBOL_LANGUAGE (sym), - SYMBOL_LINKAGE_NAME (sym), + sym->language (), + sym->linkage_name (), lookup_name, text, word); } } @@ -6489,8 +6486,8 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker, continue; completion_list_add_name (tracker, - SYMBOL_LANGUAGE (sym), - SYMBOL_LINKAGE_NAME (sym), + sym->language (), + sym->linkage_name (), lookup_name, text, word); } } @@ -6511,8 +6508,8 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker, continue; completion_list_add_name (tracker, - SYMBOL_LANGUAGE (sym), - SYMBOL_LINKAGE_NAME (sym), + sym->language (), + sym->linkage_name (), lookup_name, text, word); } } @@ -7856,7 +7853,7 @@ ada_find_any_type (const char *name) static bool ada_is_renaming_symbol (struct symbol *name_sym) { - const char *name = SYMBOL_LINKAGE_NAME (name_sym); + const char *name = name_sym->linkage_name (); return strstr (name, "___XR") != NULL; } @@ -9678,7 +9675,7 @@ ada_value_binop (struct value *arg1, struct value *arg2, enum exp_opcode op) val = allocate_value (type1); store_unsigned_integer (value_contents_raw (val), TYPE_LENGTH (value_type (val)), - gdbarch_byte_order (get_type_arch (type1)), v); + type_byte_order (type1), v); return val; } @@ -9945,7 +9942,7 @@ aggregate_assign_from_choices (struct value *container, name = &exp->elts[choice_pos + 2].string; break; case OP_VAR_VALUE: - name = SYMBOL_NATURAL_NAME (exp->elts[choice_pos + 2].symbol); + name = exp->elts[choice_pos + 2].symbol->natural_name (); break; default: error (_("Invalid record component association.")); @@ -10610,7 +10607,7 @@ ada_evaluate_subexp (struct type *expect_type, struct expression *exp, context other than a function call, in which case, it is invalid. */ error (_("Unexpected unresolved symbol, %s, during evaluation"), - SYMBOL_PRINT_NAME (exp->elts[pc + 2].symbol)); + exp->elts[pc + 2].symbol->print_name ()); if (noside == EVAL_AVOID_SIDE_EFFECTS) { @@ -10700,7 +10697,7 @@ ada_evaluate_subexp (struct type *expect_type, struct expression *exp, if (exp->elts[*pos].opcode == OP_VAR_VALUE && SYMBOL_DOMAIN (exp->elts[pc + 5].symbol) == UNDEF_DOMAIN) error (_("Unexpected unresolved symbol, %s, during evaluation"), - SYMBOL_PRINT_NAME (exp->elts[pc + 5].symbol)); + exp->elts[pc + 5].symbol->print_name ()); else { for (tem = 0; tem <= nargs; tem += 1) @@ -11923,7 +11920,7 @@ ada_has_this_exception_support (const struct exception_support_info *einfo) if (SYMBOL_CLASS (sym) != LOC_BLOCK) { error (_("Symbol \"%s\" is not a function (class = %d)"), - SYMBOL_LINKAGE_NAME (sym), SYMBOL_CLASS (sym)); + sym->linkage_name (), SYMBOL_CLASS (sym)); return 0; } @@ -11946,7 +11943,7 @@ ada_has_this_exception_support (const struct exception_support_info *einfo) if (SYMBOL_CLASS (sym) != LOC_BLOCK) { error (_("Symbol \"%s\" is not a function (class = %d)"), - SYMBOL_LINKAGE_NAME (sym), SYMBOL_CLASS (sym)); + sym->linkage_name (), SYMBOL_CLASS (sym)); return 0; } @@ -13141,13 +13138,13 @@ ada_is_non_standard_exception_sym (struct symbol *sym) return 0; for (i = 0; i < ARRAY_SIZE (standard_exc); i++) - if (strcmp (SYMBOL_LINKAGE_NAME (sym), standard_exc[i]) == 0) + if (strcmp (sym->linkage_name (), standard_exc[i]) == 0) return 0; /* A standard exception. */ /* Numeric_Error is also a standard exception, so exclude it. See the STANDARD_EXC description for more details as to why this exception is not listed in that array. */ - if (strcmp (SYMBOL_LINKAGE_NAME (sym), "numeric_error") == 0) + if (strcmp (sym->linkage_name (), "numeric_error") == 0) return 0; return 1; @@ -13260,7 +13257,7 @@ ada_add_exceptions_from_frame (compiled_regex *preg, default: if (ada_is_exception_sym (sym)) { - struct ada_exc_info info = {SYMBOL_PRINT_NAME (sym), + struct ada_exc_info info = {sym->print_name (), SYMBOL_VALUE_ADDRESS (sym)}; exceptions->push_back (info); @@ -13333,10 +13330,10 @@ ada_add_global_exceptions (compiled_regex *preg, ALL_BLOCK_SYMBOLS (b, iter, sym) if (ada_is_non_standard_exception_sym (sym) - && name_matches_regex (SYMBOL_NATURAL_NAME (sym), preg)) + && name_matches_regex (sym->natural_name (), preg)) { struct ada_exc_info info - = {SYMBOL_PRINT_NAME (sym), SYMBOL_VALUE_ADDRESS (sym)}; + = {sym->print_name (), SYMBOL_VALUE_ADDRESS (sym)}; exceptions->push_back (info); } @@ -13664,7 +13661,7 @@ ada_print_subexp (struct expression *exp, int *pos, return; case OP_VAR_VALUE: - fputs_filtered (SYMBOL_NATURAL_NAME (exp->elts[pc + 2].symbol), stream); + fputs_filtered (exp->elts[pc + 2].symbol->natural_name (), stream); return; case BINOP_IN_BOUNDS: