summaryrefslogtreecommitdiff
path: root/compile
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2023-05-12 11:43:41 +0200
committerTom de Vries <tdevries@suse.de>2023-05-12 11:43:41 +0200
commitcbd24a9f11feea879c2f1857053854ef329efbd8 (patch)
tree8316c0ec1a4dcbd7b62e4e7dc4abdb2aef0c1110 /compile
parent388f63c18f523ca32199adef33dbacbeeed3b62a (diff)
downloadbinutils-gdb-cbd24a9f11feea879c2f1857053854ef329efbd8.tar.gz
[gdb/testsuite] Fix gdb.dwarf2/opt-out-not-implptr.exp for -m32
When running test-case gdb.dwarf2/opt-out-not-implptr.exp with target board unix/-m32 we have: ... (gdb) print noptr^M $1 = {0, <optimized out>, <optimized out>, <optimized out>}^M (gdb) FAIL: gdb.dwarf2/opt-out-not-implptr.exp: print noptr ... The problem happens when evaluating this dwarf expression: ... <45> DW_AT_location : 13 byte block: 10 86 ea d7 d0 96 8e cf 92 5c 9f 93 8 \ (DW_OP_constu: 6639779683436459270; DW_OP_stack_value; DW_OP_piece: 8) ... The DW_OP_constu pushes a value with "generic type" on to the DWARF stack, and the "generic type" has the size of an address on the target machine, which for target board unix/-m32 is 4 bytes. Consequently, the constant is abbreviated. Next, the DW_OP_piece declares that the resulting 4-byte value is 8 bytes large, and we hit this clause in rw_pieced_value: ... /* Use zeroes if piece reaches beyond stack value. */ if (p->offset + p->size > stack_value_size_bits) break; ... and consequently get a zero. We could just add require is_target_64 to the test-case, but instead, add a 32-bit case and require is_target_64 just for the 64-bit case. Tested on x86_64-linux.
Diffstat (limited to 'compile')
0 files changed, 0 insertions, 0 deletions