old-cross-binutils/gdb/testsuite/gdb.dwarf2
Joel Brobecker d36430db79 Fix handling of typedefs to types having a data_location attribute.
Consider an array described in the debugging information as being
a typedef of an array type for which there is a DW_AT_data_location
attribute. Trying to print the value of that array currently yields
incorrect element values. For instance:

    (gdb) print foo.three_tdef
    $1 = (6293760, 0, 6293772)

The problem occurs because we check for the data_location attribute
only on the typedef type, whereas we should be checking for the
typedef's target type.  As a result, GDB erroneously thinks that
there is no data_location, and therefore starts reading the array's
content from the address of the descriptor instead of the data_location
address.

gdb/ChangeLog:

        * value.c (value_from_contents_and_address): Strip resolved_type's
        typedef layers before checking its TYPE_DATA_LOCATION.

gdb/testsuite/ChangeLog:

        * gdb.dwarf2/data-loc.exp: Add additional tests exercising
        the handling of variables declared as a typedef to an array
        which a DW_AT_data_location attribute.
2014-08-20 15:34:19 +02:00
..
arr-stride.c DWARF: Add array DW_AT_bit_stride and DW_AT_byte_stride support 2014-02-26 06:32:39 -08:00
arr-stride.exp Exploit 'prepare_for_testing' etc. for 'Dwarf::assemble'-generated files 2014-03-12 16:22:18 +01:00
arr-subrange.c DWARF: Set enum type "flag_enum" and "unsigned" flags at type creation. 2014-02-26 10:39:25 -08:00
arr-subrange.exp Exploit 'prepare_for_testing' etc. for 'Dwarf::assemble'-generated files 2014-03-12 16:22:18 +01:00
callframecfa.exp
callframecfa.S
clztest.c
clztest.exp
clztest.S
corrupt.c PR gdb/15827 2014-04-16 14:39:10 -07:00
corrupt.exp PR gdb/15827 2014-04-16 14:39:10 -07:00
count.exp test: cover subranges with present DW_AT_count attribute 2014-04-14 09:23:44 -07:00
data-loc.c DW_AT_data_location and DW_OP_push_object_address testcase. 2014-08-18 18:14:14 +02:00
data-loc.exp Fix handling of typedefs to types having a data_location attribute. 2014-08-20 15:34:19 +02:00
dup-psym.exp
dup-psym.S
dw2-abs-hi-pc-hello-dbg.S DWARF: Read constant-class addresses correctly 2014-02-26 11:43:23 -08:00
dw2-abs-hi-pc-hello.c DWARF: Read constant-class addresses correctly 2014-02-26 11:43:23 -08:00
dw2-abs-hi-pc-world-dbg.S DWARF: Read constant-class addresses correctly 2014-02-26 11:43:23 -08:00
dw2-abs-hi-pc-world.c DWARF: Read constant-class addresses correctly 2014-02-26 11:43:23 -08:00
dw2-abs-hi-pc.c DWARF: Read constant-class addresses correctly 2014-02-26 11:43:23 -08:00
dw2-abs-hi-pc.exp * gdb.dwarf2/dw2-abs-hi-pc.exp: Build tests with "nodebug". 2014-03-27 11:38:30 -07:00
dw2-ada-ffffffff.exp Revert patchset for c++/16253: it causes a large performance regression. 2014-06-07 10:40:39 -07:00
dw2-ada-ffffffff.S
dw2-anon-mptr.exp Revert patchset for c++/16253: it causes a large performance regression. 2014-06-07 10:40:39 -07:00
dw2-anon-mptr.S
dw2-anonymous-func.exp Copy file1.txt to remote host in dw2-filename.exp and dw2-anonymous-func.exp 2014-05-16 20:24:50 +08:00
dw2-anonymous-func.S
dw2-bad-parameter-type.exp
dw2-bad-parameter-type.S
dw2-basic.exp
dw2-basic.S
dw2-canonicalize-type.exp
dw2-canonicalize-type.S
dw2-case-insensitive-debug.S
dw2-case-insensitive.c
dw2-case-insensitive.exp
dw2-common-block.exp
dw2-common-block.S
dw2-compdir-oldgcc.exp
dw2-compdir-oldgcc.S
dw2-compressed.exp
dw2-compressed.S
dw2-const.exp
dw2-const.S
dw2-cp-infcall-ref-static-main.c
dw2-cp-infcall-ref-static.exp
dw2-cp-infcall-ref-static.S
dw2-cu-size.exp
dw2-cu-size.S
dw2-dir-file-name.c Re-introduce '_start' labels and add alignment in dw2-dir-file-name test case. 2014-01-22 17:02:13 +01:00
dw2-dir-file-name.exp Re-introduce '_start' labels and add alignment in dw2-dir-file-name test case. 2014-01-22 17:02:13 +01:00
dw2-dos-drive.exp
dw2-dos-drive.S Fix testsuite/gdb.dwarf2/dw2-dos-drive.exp on ARM. 2014-01-16 10:09:34 +00:00
dw2-double-set-die-type.exp Revert patchset for c++/16253: it causes a large performance regression. 2014-06-07 10:40:39 -07:00
dw2-double-set-die-type.S
dw2-dup-frame.c
dw2-dup-frame.exp
dw2-dup-frame.S
dw2-empty-namespace.exp
dw2-empty-namespace.S
dw2-empty-pc-range.exp
dw2-empty-pc-range.S
dw2-entry-value-main.c
dw2-entry-value.exp
dw2-entry-value.S
dw2-error.c
dw2-error.exp testsuite: Use istarget and is_lp64_target for 3 testcases. 2014-06-23 08:24:36 +02:00
dw2-error.S
dw2-filename.exp Copy file1.txt to remote host in dw2-filename.exp and dw2-anonymous-func.exp 2014-05-16 20:24:50 +08:00
dw2-filename.S
dw2-icc-opaque.exp
dw2-icc-opaque.S
dw2-icycle.c Fix PR symtab/16581 2014-02-20 09:13:53 -08:00
dw2-icycle.exp Fix PR symtab/16581 2014-02-20 09:13:53 -08:00
dw2-icycle.S Fix dw2-icycle.exp -fsanitize=address GDB crash. 2014-02-25 18:28:38 +01:00
dw2-ifort-parameter.c Fix dw2-ifort-parameter.exp on PPC64 2014-03-12 16:22:19 +01:00
dw2-ifort-parameter.exp Fix dw2-ifort-parameter.exp on PPC64 2014-03-12 16:22:19 +01:00
dw2-inheritance.exp Revert patchset for c++/16253: it causes a large performance regression. 2014-06-07 10:40:39 -07:00
dw2-inheritance.S
dw2-inline-break.exp
dw2-inline-break.S
dw2-inline-param-main.c
dw2-inline-param.exp
dw2-inline-param.S
dw2-intercu.exp
dw2-intercu.S
dw2-intermix.exp
dw2-intermix.S
dw2-linkage-name-trust-main.cc
dw2-linkage-name-trust.exp
dw2-linkage-name-trust.S
dw2-minsym-in-cu.exp
dw2-minsym-in-cu.S
dw2-modula2-self-type.exp
dw2-modula2-self-type.S
dw2-namespaceless-anonymous.exp
dw2-namespaceless-anonymous.S
dw2-noloc-main.c
dw2-noloc.exp
dw2-noloc.S
dw2-objfile-overlap-inner.S
dw2-objfile-overlap-outer.S
dw2-objfile-overlap.exp
dw2-op-call.exp
dw2-op-call.S
dw2-op-out-param.exp Handle partially optimized out values similarly to unavailable values 2014-08-20 00:07:40 +01:00
dw2-op-out-param.S
dw2-op-stack-value.exp
dw2-op-stack-value.S
dw2-param-error-main.c
dw2-param-error.exp
dw2-param-error.S
dw2-producer.exp
dw2-producer.S
dw2-ranges.c
dw2-ranges.exp
dw2-ranges2.c
dw2-ranges3.c
dw2-ref-missing-frame-func.c
dw2-ref-missing-frame-main.c
dw2-ref-missing-frame.exp
dw2-ref-missing-frame.S
dw2-reg-undefined.c
dw2-reg-undefined.exp
dw2-reg-undefined.S
dw2-restore.exp
dw2-restore.S
dw2-restrict.c
dw2-restrict.exp
dw2-restrict.S
dw2-simple-locdesc.exp
dw2-simple-locdesc.S
dw2-skip-prologue.c
dw2-skip-prologue.exp
dw2-skip-prologue.S
dw2-stack-boundary.exp
dw2-stack-boundary.S
dw2-strp.exp
dw2-strp.S
dw2-undefined-ret-addr.c
dw2-undefined-ret-addr.exp
dw2-undefined-ret-addr.S
dw2-unresolved-main.c
dw2-unresolved.exp
dw2-unresolved.S
dw2-var-zero-addr.exp
dw2-var-zero-addr.S
dw4-sig-type-unused.exp
dw4-sig-type-unused.S
dw4-sig-types-b.cc
dw4-sig-types.cc
dw4-sig-types.exp
dw4-sig-types.h
dwp-symlink.c
dwp-symlink.exp Test for binary,dwp symlinks into different directories. 2014-02-12 11:38:48 -08:00
dwz.exp Compute the function length instead of hard coding it 2014-04-26 10:45:06 +08:00
dwzbuildid.exp Relax the pattern in dwzbuildid.exp 2014-05-07 11:07:12 +08:00
enum-type.exp implement support for "enum class" 2014-04-14 11:42:18 -06:00
file1.txt
fission-base.c
fission-base.exp
fission-base.S
fission-loclists.exp
fission-loclists.S
fission-mix.c
fission-mix.exp
fission-mix.h
fission-mix2.c
fission-reread.exp Make more robust when run in parallel mode. 2014-05-15 15:50:34 -07:00
fission-reread.S Make more robust when run in parallel mode. 2014-05-15 15:50:34 -07:00
gdb-index.exp
implptr-64bit.exp
implptr-64bit.S
implptr-optimized-out.exp
implptr-optimized-out.S
implptr.c
implptr.exp
implptr.S
implptrconst.c
implptrconst.exp Exploit 'prepare_for_testing' etc. for 'Dwarf::assemble'-generated files 2014-03-12 16:22:18 +01:00
implptrpiece.exp Exploit 'prepare_for_testing' etc. for 'Dwarf::assemble'-generated files 2014-03-12 16:22:18 +01:00
mac-fileno.exp
mac-fileno.S
main.c
Makefile.in Test for binary,dwp symlinks into different directories. 2014-02-12 11:38:48 -08:00
member-ptr-forwardref.exp
member-ptr-forwardref.S
method-ptr.cc
method-ptr.exp Exploit 'prepare_for_testing' etc. for 'Dwarf::assemble'-generated files 2014-03-12 16:22:18 +01:00
missing-sig-type.exp Exploit 'prepare_for_testing' etc. for 'Dwarf::assemble'-generated files 2014-03-12 16:22:18 +01:00
nostaticblock.exp Exploit 'prepare_for_testing' etc. for 'Dwarf::assemble'-generated files 2014-03-12 16:22:18 +01:00
pieces-optimized-out.c
pieces-optimized-out.exp
pieces-optimized-out.S
pieces.c
pieces.exp
pieces.S
pr10770.c
pr10770.exp
pr11465.exp
pr11465.S
pr13961.exp
pr13961.S
subrange.exp Exploit 'prepare_for_testing' etc. for 'Dwarf::assemble'-generated files 2014-03-12 16:22:18 +01:00
trace-crash.exp
trace-crash.S
typeddwarf-amd64.S
typeddwarf.c
typeddwarf.exp
typeddwarf.S
valop.exp
valop.S
watch-notconst.c
watch-notconst.exp
watch-notconst2.c
watch-notconst2.S