8cf6f0b103
* opencl-lang.c (lval_func_check_synthetic_pointer): New function. * value.h (struct lval_funcs) <indirect, check_synthetic_pointer>: New fields. (value_bits_synthetic_pointer): Declare. * value.c (value_bits_synthetic_pointer): New function. * valprint.c (valprint_check_validity): Handle synthetic pointers. * valops.c (value_ind): Use new 'indirect' lval_funcs method. * valarith.c (value_ptradd): Use set_value_component_location. * p-valprint.c (pascal_object_print_value_fields): Handle synthetic pointers. * jv-valprint.c (java_print_value_fields): Handle synthetic pointers. * dwarf2read.c (dwarf_stack_op_name): Add DW_OP_GNU_implicit_pointer. (dwarf2_fetch_die_location_block): Add get_frame_pc, baton arguments. Handle location lists. (fill_in_loclist_baton): New function. (dwarf2_symbol_mark_computed): Use it. * dwarf2loc.h (dwarf2_find_location_expression): Declare. (dwarf2_fetch_die_location_block): Add get_frame_pc, baton arguments. * dwarf2loc.c (dwarf2_find_location_expression): Rename from find_location_expression. No longer static. Update all callers. (dwarf_expr_frame_pc): New function. (per_cu_dwarf_call): Add get_frame_pc, baton arguments. Update all callers. (struct piece_closure) <per_cu>: New field. (allocate_piece_closure): Add per_cu argument. (read_pieced_value): Handle DWARF_VALUE_IMPLICIT_POINTER. (check_pieced_value_bits): Remove validity argument, add check_for argument. Handle DWARF_VALUE_IMPLICIT_POINTER. (check_pieced_value_validity, check_pieced_value_invalid): Update. (check_pieced_synthetic_pointer): New function. (get_frame_address_in_block_wrapper): New function. (indirect_pieced_value): New function. (pieced_value_funcs): Update. (invalid_synthetic_pointer): New function. (dwarf2_evaluate_loc_desc_full): Rename from dwarf2_evaluate_loc_desc. Add byte_offset argument. (dwarf2_evaluate_loc_desc): Rewrite. (dwarf2_loc_desc_needs_frame): Set new field on context. (get_ax_pc): New function. (disassemble_dwarf_expression): Handle DW_OP_GNU_implicit_pointer. * dwarf2expr.h (enum dwarf_value_location) <DWARF_VALUE_IMPLICIT_POINTER>: New constant. (struct dwarf_expr_context) <get_frame_pc>: New field. (struct dwarf_expr_piece) <v.ptr>: New field. * dwarf2expr.c (add_piece): Handle DWARF_VALUE_IMPLICIT_POINTER. (execute_stack_op): Handle DW_OP_GNU_implicit_pointer. * dwarf2-frame.c (no_get_frame_pc): New function. (execute_stack_op): Set new field on context. * cp-valprint.c (cp_print_value_fields): Handle synthetic pointers. gdb/testsuite * gdb.dwarf2/implptr.exp: New file. * gdb.dwarf2/implptr.c: New file. * gdb.dwarf2/implptr.S: New file. |
||
---|---|---|
.. | ||
callframecfa.exp | ||
callframecfa.S | ||
dup-psym.exp | ||
dup-psym.S | ||
dw2-ada-ffffffff.exp | ||
dw2-ada-ffffffff.S | ||
dw2-anonymous-func.exp | ||
dw2-anonymous-func.S | ||
dw2-bad-parameter-type.exp | ||
dw2-bad-parameter-type.S | ||
dw2-basic.exp | ||
dw2-basic.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-double-set-die-type.exp | ||
dw2-double-set-die-type.S | ||
dw2-empty-namespace.exp | ||
dw2-empty-namespace.S | ||
dw2-filename.exp | ||
dw2-filename.S | ||
dw2-inheritance.exp | ||
dw2-inheritance.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-modula2-self-type.exp | ||
dw2-modula2-self-type.S | ||
dw2-noloc-main.c | ||
dw2-noloc.exp | ||
dw2-noloc.S | ||
dw2-op-call.exp | ||
dw2-op-call.S | ||
dw2-producer.exp | ||
dw2-producer.S | ||
dw2-ranges.exp | ||
dw2-ranges.S | ||
dw2-ranges2.S | ||
dw2-ranges3.S | ||
dw2-ref-missing-frame-func.c | ||
dw2-ref-missing-frame-main.c | ||
dw2-ref-missing-frame.exp | ||
dw2-ref-missing-frame.S | ||
dw2-restore.exp | ||
dw2-restore.S | ||
dw2-stack-boundary.exp | ||
dw2-stack-boundary.S | ||
dw2-strp.exp | ||
dw2-strp.S | ||
dw2-unresolved-main.c | ||
dw2-unresolved.exp | ||
dw2-unresolved.S | ||
dw4-sig-types-b.cc | ||
dw4-sig-types.cc | ||
dw4-sig-types.exp | ||
dw4-sig-types.h | ||
file1.txt | ||
implptr.c | ||
implptr.exp | ||
implptr.S | ||
mac-fileno.exp | ||
mac-fileno.S | ||
main.c | ||
Makefile.in | ||
member-ptr-forwardref.exp | ||
member-ptr-forwardref.S | ||
pieces.c | ||
pieces.exp | ||
pieces.S | ||
pr10770.c | ||
pr10770.exp | ||
pr11465.exp | ||
pr11465.S | ||
valop.exp | ||
valop.S | ||
watch-notconst.c | ||
watch-notconst.exp | ||
watch-notconst2.c | ||
watch-notconst2.S |