Commit graph

11 commits

Author SHA1 Message Date
Joel Brobecker
32d0add0a6 Update year range in copyright notice of all files owned by the GDB project.
gdb/ChangeLog:

        Update year range in copyright notice of all files.
2015-01-01 13:32:14 +04:00
Keith Seitz
4186eb54dd Revert patchset for c++/16253: it causes a large performance regression.
See the bug for further information.
2014-06-07 10:40:39 -07:00
Keith Seitz
b50c861487 Remove symbol_matches_domain. This fixes
PR c++/16253.

symbol_matches_domain was permitting searches for a VAR_DOMAIN
symbol to also match STRUCT_DOMAIN symbols for languages like C++
where STRUCT_DOMAIN symbols also define a typedef of the same name,
e.g., "struct foo {}" introduces a typedef of the name "foo".

Problems occur if there exists both a VAR_DOMAIN and STRUCT_DOMAIN
symbol of the same name. Then it is essentially a race between which
symbol is found first. The other symbol is obscurred.
[This is a relatively common idiom: enum e { ... } e;]

This patchset moves this "language defines a typedef" logic to
lookup_symbol[_in_language], looking first for a symbol in the given
domain and falling back to searching STRUCT_DOMAIN when/if appropriate.

2014-04-14  Keith Seitz  <keiths@redhat.com>

	PR c++/16253
	* ada-lang.c (ada_symbol_matches_domain): Moved here and renamed
	from symbol_matches_domain in symtab.c. All local callers
	of symbol_matches_domain updated.
	(standard_lookup): If DOMAIN is VAR_DOMAIN and no symbol is found,
	search STRUCT_DOMAIN.
	(ada_find_any_type_symbol): Do not search STRUCT_DOMAIN
	independently.  standard_lookup will do that automatically.
	* cp-namespace.c (cp_lookup_symbol_nonlocal): Explain when/why
	VAR_DOMAIN searches may return a STRUCT_DOMAIN match.
	(cp_lookup_symbol_in_namespace): Likewise.
	If no VAR_DOMAIN symbol is found, search STRUCT_DOMAIN.
	(cp_lookup_symbol_exports): Explain when/why VAR_DOMAIN searches
	may return a STRUCT_DOMAIN match.
	(lookup_symbol_file): Search for the class name in STRUCT_DOMAIN.
	* cp-support.c: Include language.h.
	(inspect_type): Explicitly search STRUCT_DOMAIN before searching
	VAR_DOMAIN.
	* psymtab.c (match_partial_symbol): Compare the requested
	domain with the symbol's domain directly.
	(lookup_partial_symbol): Likewise.
	* symtab.c (lookup_symbol_in_language): Explain when/why
	VAR_DOMAIN searches may return a STRUCT_DOMAIN match.
	If no VAR_DOMAIN symbol is found, search STRUCT_DOMAIN for
	appropriate languages.
	(symbol_matches_domain): Renamed `ada_symbol_matches_domain'
	and moved to ada-lang.c
	(lookup_block_symbol): Explain that this function only returns
	symbol matching the requested DOMAIN.
	Compare the requested domain with the symbol's domain directly.
	(iterate_over_symbols): Compare the requested domain with the
	symbol's domain directly.
	* symtab.h (symbol_matches_domain): Remove.

2014-04-14  Keith Seitz  <keiths@redhat.com>

	PR c++/16253
	* gdb.cp/var-tag.cc: New file.
	* gdb.cp/var-tag.exp: New file.
	* gdb.dwarf2/dw2-ada-ffffffff.exp: Set the language to C++.
	* gdb.dwarf2/dw2-anon-mptr.exp: Likewise.
	* gdb.dwarf2/dw2-double-set-die-type.exp: Likewise.
	* gdb.dwarf2/dw2-inheritance.exp: Likewise.
2014-04-14 15:47:15 -07:00
Joel Brobecker
ecd75fc8ee Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
Joel Brobecker
28e7fd6234 Update years in copyright notice for the GDB files.
Two modifications:
  1. The addition of 2013 to the copyright year range for every file;
  2. The use of a single year range, instead of potentially multiple
     year ranges, as approved by the FSF.
2013-01-01 06:33:28 +00:00
Tom Tromey
c83ee9021b * gdb.dwarf2/pr10770.exp: Use standard_testfile.
* gdb.dwarf2/dw2-var-zero-addr.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-param-error.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-op-call.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-inline-param.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.dwarf2/dw2-inline-break.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-ifort-parameter.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-cp-infcall-ref-static.exp: Use
	standard_testfile.
	* gdb.dwarf2/dw2-case-insensitive.exp: Use standard_testfile.
	* gdb.dwarf2/dw4-sig-types.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-objfile-overlap.exp: Use standard_testfile.
	* gdb.dwarf2/callframecfa.exp: Use standard_testfile,
	prepare_for_testing.
	* gdb.dwarf2/dup-psym.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-ada-ffffffff.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-anonymous-func.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-bad-parameter-type.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-basic.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-compressed.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-const.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-cu-size.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-double-set-die-type.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-empty-namespace.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-empty-pc-range.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-filename.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-icc-opaque.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-inheritance.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-intercu.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-intermix.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-linkage-name-trust.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-modula2-self-type.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-namespaceless-anonymous.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-op-stack-value.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-producer.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-ranges.exp: Use standard_testfile,
	standard_output_file.
	* gdb.dwarf2/dw2-ref-missing-frame.exp: Use standard_testfile,
	standard_output_file.
	* gdb.dwarf2/dw2-restore.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-simple-locdesc.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-skip-prologue.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-stack-boundary.exp: Use standard_testfile.
	* gdb.dwarf2/dw2-strp.exp: Use standard_testfile.
	* gdb.dwarf2/dw4-sig-type-unused.exp: Use standard_testfile.
	* gdb.dwarf2/implptr-64bit.exp: Use standard_testfile.
	* gdb.dwarf2/implptr-optimized-out.exp: Use standard_testfile.
	* gdb.dwarf2/implptr.exp: Use standard_testfile.
	* gdb.dwarf2/mac-fileno.exp: Use standard_testfile.
	* gdb.dwarf2/member-ptr-forwardref.exp: Use standard_testfile.
	* gdb.dwarf2/pieces.exp: Use standard_testfile.
	* gdb.dwarf2/pr11465.exp: Use standard_testfile.
	* gdb.dwarf2/pr13961.exp: Use standard_testfile.
	* gdb.dwarf2/valop.exp: Use standard_testfile,
	prepare_for_testing.
2012-06-27 17:00:09 +00:00
Joel Brobecker
0b30217134 Copyright year update in most files of the GDB Project.
gdb/ChangeLog:

        Copyright year update in most files of the GDB Project.
2012-01-04 08:17:56 +00:00
Yao Qi
810cfdbbaf 2011-01-19 Yao Qi <yao@codesourcery.com>
* gdb.asm/asm-source.exp: Replace ARM target triplet with a
	canonical form.
	Remove "xscale-*-*"
	* gdb.xml/tdesc-regs.exp: Likewise.
	* gdb.python/py-section-script.exp: Replace ARM target triplet
	with canonical form.
	Match arm*-*-symbianelf*.
	* gdb.base/dup-sect.exp: Likewise.
	* lib/dwarf.exp: New.
	* gdb.dwarf2/callframecfa.exp: Check dwarf2 support by routine
	dwarf2_support.
	* gdb.dwarf2/dup-psym.exp: Likewise.
	* gdb.dwarf2/dw2-ada-ffffffff.exp: Likewise.
	* gdb.dwarf2/dw2-anonymous-func.exp: Likewise.
	* gdb.dwarf2/dw2-bad-parameter-type.exp: Likewise.
	* gdb.dwarf2/dw2-basic.exp: Likewise.
	* gdb.dwarf2/dw2-compressed.exp: Likewise.
	* gdb.dwarf2/dw2-const.exp: Likewise.
	* gdb.dwarf2/dw2-cp-infcall-ref-static.exp: Likewise.
	* gdb.dwarf2/dw2-cu-size.exp: Likewise.
	* gdb.dwarf2/dw2-double-set-die-type.exp: Likewise.
	* gdb.dwarf2/dw2-empty-namespace.exp: Likewise.
	* gdb.dwarf2/dw2-filename.exp: Likewise.
	* gdb.dwarf2/dw2-inheritance.exp: Likewise.
	* gdb.dwarf2/dw2-inline-param.exp: Likewise.
	* gdb.dwarf2/dw2-intercu.exp: Likewise.
	* gdb.dwarf2/dw2-intermix.exp: Likewise.
	* gdb.dwarf2/dw2-modula2-self-type.exp: Likewise.
	* gdb.dwarf2/dw2-noloc.exp: Likewise.
	* gdb.dwarf2/dw2-op-call.exp: Likewise.
	* gdb.dwarf2/dw2-producer.exp: Likewise.
	* gdb.dwarf2/dw2-ranges.exp: Likewise.
	* gdb.dwarf2/dw2-ref-missing-frame.exp: Likewise.
	* gdb.dwarf2/dw2-stack-boundary.exp: Likewise.
	* gdb.dwarf2/dw2-strp.exp: Likewise.
	* gdb.dwarf2/dw2-unresolved.exp: Likewise.
	* gdb.dwarf2/implptr.exp: Likewise.
	* gdb.dwarf2/mac-fileno.exp: Likewise.
	* gdb.dwarf2/member-ptr-forwardref.exp: Likewise.
	* gdb.dwarf2/pieces.exp: Likewise.
	* gdb.dwarf2/pr11465.exp: Likewise.
	* gdb.dwarf2/valop.exp: Likewise.
	* gdb.dwarf2/watch-notconst.exp: Likewise.
	* gdb.mi/dw2-ref-missing-frame.exp: Likewise.
2011-01-19 20:26:10 +00:00
Joel Brobecker
7b6bb8daac run copyright.sh for 2011. 2011-01-01 15:34:07 +00:00
Joel Brobecker
4c38e0a4fc Update copyright year in most headers.
Automatic update by copyright.sh.
2010-01-01 07:32:07 +00:00
Jan Kratochvil
d4b96c9a78 gdb/
Support constant DW_AT_data_member_location by GCC PR debug/40659.
	* dwarf2read.c
	(dwarf2_add_field <DW_TAG_member> <DW_AT_data_member_location>):
	Initialize BYTE_OFFSET to 0 by default.  Explicitly check if
	attr_form_is_block.
	(dwarf2_add_field <DW_TAG_inheritance> <DW_AT_data_member_location>)
	(read_common_block <DW_AT_data_member_location>): New variable
	byte_offset.  Fix crash on non-DW_BLOCK ATTR values.

gdb/testsuite/
	Support constant DW_AT_data_member_location by GCC PR debug/40659.
	* gdb.dwarf2/dw2-inheritance.exp, gdb.dwarf2/dw2-inheritance.S: New.
2009-08-28 10:49:06 +00:00