Fix handling of DW_OP_GNU_push_tls_address
Checks
Context |
Check |
Description |
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gdb_build--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gdb_check--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 |
success
|
Testing passed
|
Commit Message
In one spot, DW_OP_GNU_push_tls_address is handled differently from
DW_OP_form_tls_address. However, I think they should always be
treated identically.
---
gdb/dwarf2/loc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On Wed, 17 Jan 2024 05:21:54 -0700
Tom Tromey <tromey@adacore.com> wrote:
> In one spot, DW_OP_GNU_push_tls_address is handled differently from
> DW_OP_form_tls_address. However, I think they should always be
> treated identically.
I agree.
Approved-by: Kevin Buettner <kevinb@redhat.com>
@@ -1955,12 +1955,12 @@ dwarf2_get_symbol_read_needs (gdb::array_view<const gdb_byte> expr,
case DW_OP_lt:
case DW_OP_gt:
case DW_OP_ne:
- case DW_OP_GNU_push_tls_address:
case DW_OP_nop:
case DW_OP_GNU_uninit:
case DW_OP_push_object_address:
break;
+ case DW_OP_GNU_push_tls_address:
case DW_OP_form_tls_address:
if (symbol_needs <= SYMBOL_NEEDS_REGISTERS)
symbol_needs = SYMBOL_NEEDS_REGISTERS;