From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12433 invoked by alias); 8 Mar 2013 15:40:06 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 12152 invoked by uid 9514); 8 Mar 2013 15:40:02 -0000 Date: Fri, 08 Mar 2013 15:40:00 -0000 Message-ID: <20130308154002.12120.qmail@sourceware.org> From: pmuldoon@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] pmuldoon/python-backtrace: Merge remote-tracking branch 'gdb/master' into pmuldoon/python-backtrace X-Git-Refname: refs/heads/pmuldoon/python-backtrace X-Git-Reftype: branch X-Git-Oldrev: 2df7735feedd77ddc69ea7d486135eecfa268c6e X-Git-Newrev: 9d45de3ff8519e67889eb97f06602f7f916ec41c X-SW-Source: 2013-q1/txt/msg00248.txt.bz2 List-Id: The branch, pmuldoon/python-backtrace has been updated via 9d45de3ff8519e67889eb97f06602f7f916ec41c (commit) via 9cb1f23594b3c4027638eb9751fd779781d1398b (commit) via 61ea5d208bafd661f52b7db0d43cd2655741987f (commit) via 53d2625aa5606dfd19ba3806eebeda54ce159f09 (commit) via c383fc030120a3e092381dda26a7e5d3999b9fee (commit) via 3255f72c09abc5fa6fba404460b68908158044b5 (commit) via 2954f54136e2d338b294b1ac033dff7826caf73f (commit) via 2b1bc98105f6eb99b045645642216ce9d45153c7 (commit) via 03a29636e9c8396fffddb01febb42c948cd92b20 (commit) via 4f4971ecba427a64c83c268ba2d482bb63fee46e (commit) via 01e2d314eaf50040393a13aa8078f867a7c5917e (commit) via 9b5e2b6ceb52acc5a61ab5396bfacd06aa9985cd (commit) via 7fb6ee6c3b9469b8ae3d869a92597c6f03294511 (commit) via 97a07d234cd3cbf4217611693e72f4895c69a942 (commit) via 4fc89e5ff47fef8279872bbe956145b7e61141e0 (commit) via fc4f53b3094a7dada7dec096d2fbad55a0bbc184 (commit) via c4a72c18337864933890575a3c804e8a7f172725 (commit) via b372434e1bf2ad62fc62e2cdadfaac49f46cf13d (commit) via c71a03ac4a169da2c8dd6ef746ef01a600c22141 (commit) via 01d6af77052d4842b3bbef718918a1d412daa1e1 (commit) via a76e22e087ee5784e62508cf8ec29e2ab21634e6 (commit) via 780ab92c4e72b06ae71a0725e4a739f9b54225ac (commit) via 4e4203ba2047788730a832ae0a170fe9b9d7bae7 (commit) via 4fa139e6e846958311e8a2ed1acc0de42428679f (commit) via d3f78a07f15fa2321a2d19a66cbaa08073441418 (commit) via 5451fccf3c5c1cd0855f2dc932b3bcd5331e7b15 (commit) via a19bdcbdb23cb75a20fe73164cc7c45bce6af0d7 (commit) via 6eb8b57e8717879dcf30d0dbdc4235be516659bf (commit) via 808063f3501f45c3f00fa6ce6428319c9392cc70 (commit) via 7ac04623a9df976de0c5d379aebc88c8126739a7 (commit) via a9c4418872df7e82ff4e14171902d90bad2f7987 (commit) via ebf3262775ab5d785278cc5096c40bad16ac5dc5 (commit) via 8945e77196073b641208e991da067b3fcb63e5d7 (commit) via d0516cbdb20f6884e0c513ed56a218baf9c7283b (commit) via db286784aa52e906c04f636ea2c5d5f58192364d (commit) via c2a65e648556cfce850e3c19289a4587ae1a6ccf (commit) via 51f7bc66b09e61db6bd3c91b4f0c9ef58b21bc7b (commit) via 5e16cbd55ff6fc0ca2db757d4cca4b9da102d0bc (commit) via d2169b1b530a4555587128747942994e4d7a95d2 (commit) via 633991aa595fd9b375d71510b5f4f4470ac0f047 (commit) via 1a922e7a8a1158b172b88590d751dab50eb83a65 (commit) via 0c46735e42d175fb4c1a1fa00c267a55aaf35bdc (commit) via 2bdfe98c0bba4610708a1ebf9cf4db47916a6a9d (commit) via a6447a314a5e038909e67767f25fab4f8c8f3372 (commit) from 2df7735feedd77ddc69ea7d486135eecfa268c6e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 9d45de3ff8519e67889eb97f06602f7f916ec41c Merge: 2df7735 9cb1f23 Author: Phil Muldoon Date: Fri Mar 8 15:39:36 2013 +0000 Merge remote-tracking branch 'gdb/master' into pmuldoon/python-backtrace commit 9cb1f23594b3c4027638eb9751fd779781d1398b Author: Maciej W. Rozycki Date: Fri Mar 8 11:50:27 2013 +0000 * elfxx-mips.c (mips_elf_allocate_lazy_stub): Correct data type. ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 18 ++- bfd/config.bfd | 2 +- bfd/elf32-ppc.c | 58 +++--- bfd/elfxx-mips.c | 2 +- bfd/version.h | 2 +- gdb/ChangeLog | 207 ++++++++++++++++++ gdb/NEWS | 1 + gdb/ada-exp.y | 6 +- gdb/ada-lang.c | 113 ++++++---- gdb/ada-lang.h | 3 +- gdb/ax-gdb.c | 2 +- gdb/ax-gdb.h | 2 +- gdb/ax-general.c | 2 +- gdb/ax.h | 2 +- gdb/breakpoint.c | 9 +- gdb/c-lang.c | 2 +- gdb/charset.c | 6 +- gdb/cli/cli-cmds.c | 14 +- gdb/cli/cli-decode.c | 2 +- gdb/coff-pe-read.c | 3 + gdb/command.h | 7 +- gdb/config/i386/cygwin64.mh | 20 ++ gdb/configure.host | 1 + gdb/configure.tgt | 2 +- gdb/corefile.c | 2 +- gdb/elfread.c | 6 +- gdb/expprint.c | 8 +- gdb/findcmd.c | 13 +- gdb/gdbserver/ChangeLog | 18 ++ gdb/gdbserver/configure.srv | 4 + gdb/gdbserver/linux-low.c | 8 +- gdb/gdbserver/tracepoint.c | 16 +- gdb/go32-nat.c | 19 +- gdb/infcmd.c | 9 +- gdb/language.h | 6 +- gdb/linespec.c | 267 +++++++++++++++++------- gdb/linux-record.c | 7 +- gdb/linux-tdep.c | 15 +- gdb/linux-thread-db.c | 4 +- gdb/m32r-rom.c | 4 +- gdb/maint.c | 4 +- gdb/mi/mi-parse.c | 16 +- gdb/minsyms.c | 4 +- gdb/objc-lang.c | 34 +-- gdb/python/py-utils.c | 13 -- gdb/python/python-internal.h | 1 - gdb/python/python.c | 10 +- gdb/regcache.c | 4 +- gdb/remote-m32r-sdi.c | 5 +- gdb/remote-notif.c | 2 +- gdb/remote-notif.h | 2 +- gdb/remote.c | 4 - gdb/remote.h | 4 + gdb/ser-tcp.c | 2 +- gdb/serial.c | 4 +- gdb/stack.c | 4 +- gdb/stap-probe.c | 2 +- gdb/symfile.c | 4 +- gdb/symtab.c | 36 ++-- gdb/target.c | 14 +- gdb/testsuite/ChangeLog | 29 +++ gdb/testsuite/gdb.linespec/base/one/thefile.cc | 7 +- gdb/testsuite/gdb.linespec/base/two/thefile.cc | 7 +- gdb/testsuite/gdb.linespec/break-ask.exp | 100 +++++++++ gdb/testsuite/gdb.linespec/lspec.cc | 2 +- gdb/testsuite/gdb.trace/tstatus.exp | 89 ++------ gdb/thread.c | 3 +- gdb/tracepoint.c | 43 ++--- gdb/utils.c | 23 ++- gdb/valprint.c | 4 +- gdb/varobj.c | 4 +- gdb/version.in | 2 +- 72 files changed, 915 insertions(+), 459 deletions(-) create mode 100644 gdb/config/i386/cygwin64.mh create mode 100644 gdb/testsuite/gdb.linespec/break-ask.exp First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8b949e4..1454f40 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,17 @@ +2013-03-08 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_allocate_lazy_stub): Correct data type. + +2013-03-05 Corinna Vinschen + + * config.bfd: Add x86_64-*-cygwin to list of supported targets. + +2013-03-04 Alan Modra + + * elf32-ppc.c (ppc_elf_relocate_section ): Adjust + non-zero addends when relocatable, rather than addends >= 32768. + Always zero "addend" before applying relocation. + 2013-03-04 Nick Clifton * archive64.c (bfd_elf64_archive_write_armap): Fix calculation of @@ -1017,8 +1031,8 @@ 2013-01-07 Tom Tromey * section.c (_bfd_std_section): Rename from std_section. - (bfd_com_section_ptr, bfd_und_section_ptr, bfd_abs_section_ptr) - (STD_SECTION): Update. + (bfd_com_section_ptr, bfd_und_section_ptr, bfd_abs_section_ptr) + (STD_SECTION): Update. * bfd-in2.h: Rebuild. 2013-01-04 Juergen Urban diff --git a/bfd/config.bfd b/bfd/config.bfd index ade2731..10820e2 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -673,7 +673,7 @@ case "${targ}" in targ_archs="$targ_archs bfd_arm_arch" want64=true ;; - x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep) + x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin) targ_defvec=x86_64pe_vec targ_selvecs="x86_64pe_vec x86_64pei_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386pe_vec i386pei_vec bfd_elf32_i386_vec" want64=true diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index bac1ce2..c05f2f0 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -7472,7 +7472,7 @@ ppc_elf_relocate_section (bfd *output_bfd, { if (got2 != NULL && r_type == R_PPC_PLTREL24 - && rel->r_addend >= 32768) + && rel->r_addend != 0) { /* R_PPC_PLTREL24 is rather special. If non-zero, the addend specifies the GOT pointer offset within .got2. */ @@ -8477,33 +8477,37 @@ ppc_elf_relocate_section (bfd *output_bfd, break; case R_PPC_PLTREL24: - if (h == NULL || ifunc != NULL) - break; - /* Relocation is to the entry for this symbol in the - procedure linkage table. */ - { - struct plt_entry *ent = find_plt_ent (&h->plt.plist, got2, - info->shared ? addend : 0); - addend = 0; - if (ent == NULL - || htab->plt == NULL) - { - /* We didn't make a PLT entry for this symbol. This - happens when statically linking PIC code, or when - using -Bsymbolic. */ - break; - } + if (h != NULL && ifunc == NULL) + { + struct plt_entry *ent = find_plt_ent (&h->plt.plist, got2, + info->shared ? addend : 0); + if (ent == NULL + || htab->plt == NULL) + { + /* We didn't make a PLT entry for this symbol. This + happens when statically linking PIC code, or when + using -Bsymbolic. */ + } + else + { + /* Relocation is to the entry for this symbol in the + procedure linkage table. */ + unresolved_reloc = FALSE; + if (htab->plt_type == PLT_NEW) + relocation = (htab->glink->output_section->vma + + htab->glink->output_offset + + ent->glink_offset); + else + relocation = (htab->plt->output_section->vma + + htab->plt->output_offset + + ent->plt.offset); + } + } - unresolved_reloc = FALSE; - if (htab->plt_type == PLT_NEW) - relocation = (htab->glink->output_section->vma - + htab->glink->output_offset - + ent->glink_offset); - else - relocation = (htab->plt->output_section->vma - + htab->plt->output_offset - + ent->plt.offset); - } + /* R_PPC_PLTREL24 is rather special. If non-zero, the + addend specifies the GOT pointer offset within .got2. + Don't apply it to the relocation field. */ + addend = 0; break; /* Relocate against _SDA_BASE_. */ diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 2843118..a5ad454 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -8920,7 +8920,7 @@ mips_elf_estimate_stub_size (bfd *output_bfd, struct bfd_link_info *info) allocate an entry in the stubs section. */ static bfd_boolean -mips_elf_allocate_lazy_stub (struct mips_elf_link_hash_entry *h, void **data) +mips_elf_allocate_lazy_stub (struct mips_elf_link_hash_entry *h, void *data) { struct mips_elf_link_hash_table *htab; diff --git a/bfd/version.h b/bfd/version.h index 9f5454b..03b88f9 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20130304 +#define BFD_VERSION_DATE 20130308 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2a35477..da506b4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,210 @@ +2013-03-07 Pedro Alves + + * target.c (target_read_stralloc, target_fileio_read_alloc): + *Cast pointer to 'gdb_byte *' in target call. + +2013-03-07 Pedro Alves + + * corefile.c (read_memory_string): Cast pointer to gdb_byte* in + call. + +2013-03-07 Keith Seitz + + * breakpoint.c (catch_syscall_split_args): Use skip_spaces. + (trace_pass_command): Likewise. + * cli/cli-cmds.c: Include cli/cli-utils.h. + (source_command): Use skip-spaces. + (disassemble_command): Likewise. + * findcmd.c: Include cli/cli-utils.h. + (parse_find_args): Use skip_spaces. + * go32-nat.c: Include cli/cli-utils.h. + (go32_sldt): Use skip_spaces. + (go32_sgdt): Likewise. + (go32_sidt): Likewise. + (go32_pde): Likewise. + (go32_pte): Likewise. + (go32_pte_for_address): Likewise. + * infcmd.c: Include cli/cli-utils.h. + (registers_info): Use skip_spaces. + * linux-tdep.c (read_mapping): Use skip_spaces_const. + (linux_info_proc): Likewise. + * linux-thread-db.c: Include cli/cli-utils.h. + (info_auto_load_libthread_db): Use skip_spaces_const. + * m32r-rom.c: Include cli/cli-utils.h. + (m32r_upload_command): Use skip_spaces. + * maint.c: Include cli/cli-utils.h. + (maintenance_translate_address): Use skip_spaces. + * mi/mi-parse.c: Include cli/cli-utils.h. + (mi_parse_argv): Use skip_spaces. + (mi_parse): Likewise. + * minsyms.c: Include cli/cli-utils.h. + (msymbol_hash_iw): Use skip_spaces_const. + * objc-lang.c: Include cli/cli-utils.h. + (parse_selector): Use skip_spaces. + (parse_method): Likewise. + * python/python.c: Include cli/cli-utils.h. + (python_interactive_command)[HAVE_PYTHON]: Use skip_spaces. + (python_command)[HAVE_PYTHON]: Likewise. + (python_interactive_command)[!HAVE_PYTHON]: Likewise. + * remote-m32r-sdi.c: Include cli/cli-utils.h. + (m32r_load): Use skip_spaces. + * serial.c: Include cli/cli-utils.h. + (serial_open): Use skip_spaces_const. + * stack.c: Include cli/cli-utils.h. + (parse_frame_specification_1): Use skip_spaces_const. + * symfile.c: Include cli/cli-utils.h. + (set_ext_lang_command): Use skip_spaces. + * symtab.c: Include cli/cli-utils.h. + (rbreak_command): Use skip_spaces. + * thread.c (thread_name_command): Use skip_spaces. + * tracepoint.c (validate_actionline): Use skip_spaces. + (encode_actions_1): Likewise. + (trace_find_range_command): Likewise. + (trace_find_outside_command): Likewise. + (trace_dump_actions): Likewise. + +2013-03-07 Pedro Alves + + * c-lang.c (parse_one_string): Cast argument to gdb_byte *. + * expprint.c (print_subexp_standard): Likewise. + * utils.c (host_char_to_target): Likewise. + * valprint.c (generic_emit_char, generic_printstr): Likewise. + * varobj.c (value_get_print_value): Change type of local to char*. + Cast it gdb_byte * in call to language printer. + +2013-03-07 Pedro Alves + + * charset.c (struct wchar_iterator) : Change type to 'const + gdb_byte *'. + (make_wchar_iterator): Remove cast to char*. + (wchar_iterate): Change type of local. + +2013-03-07 Pedro Alves + + * regcache.c (regcache_xmalloc_1): Call XCALLOC with signed char + for 'regcache->register_status'. + +2013-03-07 Pedro Alves + + * breakpoint.c (breakpoint_xfer_memory): Change type of local to + int. + +2013-03-07 Pedro Alves + + * stap-probe.c (handle_stap_probe): Add cast to char*. + +2013-03-07 Pedro Alves + + * linux-record.c (record_linux_system_call) : Pass a signed variable to + regcache_raw_read_signed, instead of an unsigned one. + +2013-03-07 Pedro Alves + + * remote-notif.c (notif_debug): Change type to int. + * remote-notif.h (notif_debug): Likewise. + +2013-03-07 Pedro Alves + + * ser-tcp.c (tcp_retry_limit): Change type to unsigned int. + +2013-03-07 Pedro Alves + + * remote.c (hex2bin, bin2hex): Move extern declarations to ... + * remote.h (hex2bin, bin2hex): ... here. + * tracepoint.c (hex2bin, bin2hex): Remove extern declarations. + +2013-03-07 Eli Zaretskii + + * utils.c (initialize_utils): Improve doc strings of "set/show + width", "set/show height", and "set/show pagination". + +2013-03-06 Keith Seitz + + * ax-gdb.c (gen_printf): Make FORMAT const. + * ax-gdb.h (gen_printf): Likewise. + * ax-general.c (ax_string): Make STR const. + * ax.h (ax_string): Likewise. + +2013-03-06 Doug Evans + + * elfread.c (elf_symfile_read): Move debugging printf to more + logical location. + +2013-03-06 Pedro Alves + + * python/py-utils.c (target_string_to_unicode): Delete function. + * python/python-internal.h (target_string_to_unicode): Delete + declaration. + +2013-03-06 Pierre Muller + + * linespec.c (get_current_search_block): ARI fix, use (void) + for empty parameter list. + +2013-03-05 Doug Evans + + * ada-lang.c (ada_lookup_symbol_list_worker): New function, contents + of old ada_lookup_symbol_list. In !full_search case, don't + search superblocks. + (ada_lookup_symbol_list): Delete arg full_search, all callers + updated. Call ada_lookup_symbol_list_worker. + (ada_iterate_over_symbols): Call ada_lookup_symbol_list_worker. + * ada-lang.h (ada_lookup_symbol_list): Update. + * language.h (language_defn): Update comment for + la_iterate_over_symbols. + * linespec.c (iterate_over_file_blocks): New function. + (iterate_over_all_matching_symtabs): Call it. + (lookup_prefix_sym): Ditto. + (get_current_search_block): New function. + (get_search_block): Delete. + (find_label_symbols): Call get_current_search_block. + (add_matching_symbols_to_info): Call iterate_over_file_blocks. + * symtab.c (iterate_over_symbols): Don't search superblocks. + +2013-03-05 Yao Qi + + * cli/cli-decode.c (add_setshow_zuinteger_unlimited_cmd): Change + parameter VAR's type from "unsigned int" to "int". + * command.h (var_zuinteger_unlimited): Update its comments. + (add_setshow_zuinteger_unlimited_cmd): Update the declaration. + +2013-03-05 Corinna Vinschen + + * NEWS: Mention new target x86_64-*-cygwin*. + +2013-03-05 Corinna Vinschen + + * configure.host: Add x86_64-*-cygwin* as host. + * configure.tgt: Add x86_64-*-cygwin* as target. + * config/i386/cygwin64.mh: New file. + +2013-03-04 Jan Kratochvil + + * linespec.c (decode_line_2): Fix duplicate request off by two message. + +2013-03-04 Jan Kratochvil + + * linespec.c (struct linespec_canonical_name): New. + (struct linespec_state): Change canonical_names type to it. + (add_sal_to_sals): Change variable canonical_name to canonical. Change + xrealloc element size. Initialize the different CANONICAL fields. + (canonical_to_fullform): New. + (filter_results): Use it. Add variables canonical, fullform and + cleanup. + (struct decode_line_2_item, decode_line_2_compare_items): New. + (decode_line_2): Remove variables iter and item_names, add variables + items and items_count. Modify the code for these new variables. + +2013-03-04 Corinna Vinschen + + * coff-pe-read.c (read_pe_exported_syms): Don't return without + calling do_cleanup. + +2013-03-04 Luis Machado + + * tracepoint.c (build_traceframe_info): Add code for byte order. + 2013-03-02 Kevin Buettner * v850-tdep.c: (v850e2_register_name): Revise system register diff --git a/gdb/NEWS b/gdb/NEWS index 0877aa2..05fa498 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -13,6 +13,7 @@ FreeBSD/powerpc powerpc*-*-freebsd ARM AArch64 aarch64*-*-elf ARM AArch64 GNU/Linux aarch64*-*-linux Lynx 178 PowerPC powerpc-*-lynx*178 +x86_64/Cygwin x86_64-*-cygwin* * If the configured location of system.gdbinit file (as given by the --with-system-gdbinit option at configure time) is in the diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y index e4bcfb3..d9fa9ac 100644 --- a/gdb/ada-exp.y +++ b/gdb/ada-exp.y @@ -1025,7 +1025,7 @@ block_lookup (struct block *context, char *raw_name) else name = ada_encode (raw_name); - nsyms = ada_lookup_symbol_list (name, context, VAR_DOMAIN, &syms, 1); + nsyms = ada_lookup_symbol_list (name, context, VAR_DOMAIN, &syms); if (context == NULL && (nsyms == 0 || SYMBOL_CLASS (syms[0].sym) != LOC_BLOCK)) symtab = lookup_symtab (name); @@ -1282,7 +1282,7 @@ write_var_or_type (const struct block *block, struct stoken name0) encoded_name[tail_index] = '\0'; nsyms = ada_lookup_symbol_list (encoded_name, block, - VAR_DOMAIN, &syms, 1); + VAR_DOMAIN, &syms); encoded_name[tail_index] = terminator; /* A single symbol may rename a package or object. */ @@ -1430,7 +1430,7 @@ write_name_assoc (struct stoken name) { struct ada_symbol_info *syms; int nsyms = ada_lookup_symbol_list (name.ptr, expression_context_block, - VAR_DOMAIN, &syms, 1); + VAR_DOMAIN, &syms); if (nsyms != 1 || SYMBOL_CLASS (syms[0].sym) == LOC_TYPEDEF) write_exp_op_with_string (OP_NAME, name); else diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 634e761..75f1c3d 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -3110,7 +3110,7 @@ resolve_subexp (struct expression **expp, int *pos, int deprocedure_p, ada_lookup_symbol_list (SYMBOL_LINKAGE_NAME (exp->elts[pc + 2].symbol), exp->elts[pc + 1].block, VAR_DOMAIN, - &candidates, 1); + &candidates); if (n_candidates > 1) { @@ -3202,7 +3202,7 @@ resolve_subexp (struct expression **expp, int *pos, int deprocedure_p, ada_lookup_symbol_list (SYMBOL_LINKAGE_NAME (exp->elts[pc + 5].symbol), exp->elts[pc + 4].block, VAR_DOMAIN, - &candidates, 1); + &candidates); if (n_candidates == 1) i = 0; else @@ -3254,7 +3254,7 @@ resolve_subexp (struct expression **expp, int *pos, int deprocedure_p, n_candidates = ada_lookup_symbol_list (ada_encode (ada_decoded_op_name (op)), (struct block *) NULL, VAR_DOMAIN, - &candidates, 1); + &candidates); i = ada_resolve_function (candidates, n_candidates, argvec, nargs, ada_decoded_op_name (op), NULL); if (i < 0) @@ -5052,26 +5052,28 @@ add_nonlocal_symbols (struct obstack *obstackp, const char *name, } } -/* Find symbols in DOMAIN matching NAME0, in BLOCK0 and enclosing - scope and in global scopes, returning the number of matches. +/* Find symbols in DOMAIN matching NAME0, in BLOCK0 and, if full_search is + non-zero, enclosing scope and in global scopes, returning the number of + matches. Sets *RESULTS to point to a vector of (SYM,BLOCK) tuples, indicating the symbols found and the blocks and symbol tables (if - any) in which they were found. This vector are transient---good only to - the next call of ada_lookup_symbol_list. Any non-function/non-enumeral + any) in which they were found. This vector is transient---good only to + the next call of ada_lookup_symbol_list. + + When full_search is non-zero, any non-function/non-enumeral symbol match within the nest of blocks whose innermost member is BLOCK0, is the one match returned (no other matches in that or enclosing blocks is returned). If there are any matches in or - surrounding BLOCK0, then these alone are returned. Otherwise, if - FULL_SEARCH is non-zero, then the search extends to global and - file-scope (static) symbol tables. + surrounding BLOCK0, then these alone are returned. + Names prefixed with "standard__" are handled specially: "standard__" is first stripped off, and only static and global symbols are searched. */ -int -ada_lookup_symbol_list (const char *name0, const struct block *block0, - domain_enum namespace, - struct ada_symbol_info **results, - int full_search) +static int +ada_lookup_symbol_list_worker (const char *name0, const struct block *block0, + domain_enum namespace, + struct ada_symbol_info **results, + int full_search) { struct symbol *sym; struct block *block; @@ -5107,10 +5109,24 @@ ada_lookup_symbol_list (const char *name0, const struct block *block0, /* Check the non-global symbols. If we have ANY match, then we're done. */ - ada_add_local_symbols (&symbol_list_obstack, name, block, namespace, - wild_match_p); - if (num_defns_collected (&symbol_list_obstack) > 0 || !full_search) - goto done; + if (block != NULL) + { + if (full_search) + { + ada_add_local_symbols (&symbol_list_obstack, name, block, + namespace, wild_match_p); + } + else + { + /* In the !full_search case we're are being called by + ada_iterate_over_symbols, and we don't want to search + superblocks. */ + ada_add_block_symbols (&symbol_list_obstack, block, name, + namespace, NULL, wild_match_p); + } + if (num_defns_collected (&symbol_list_obstack) > 0 || !full_search) hooks/post-receive -- Repository for Project Archer.