+2009-06-27 Daniel Jacobowitz <dan@codesourcery.com>
+ Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * NEWS: Document inlined function support.
+ * Makefile.in (SFILES): Add inline-frame.c.
+ (COMMON_OBS): Add inline-frame.o.
+ * block.c (contained_in): Rewrite to use lexical nesting.
+ (block_linkage_function): Skip inlined function blocks.
+ (block_inlined_p): New.
+ * block.h (struct block): Update comment.
+ (block_inlined_p): New prototype.
+ * blockframe.c (get_frame_block): Handle inlined functions.
+ (get_frame_function): Do not use block_linkage_function.
+ (block_innermost_frame): Use get_frame_block and contained_in.
+ * breakpoint.c (watchpoint_check): Remove extra reinit_frame_cache.
+ Skip over inlined functions. Simplify epilogue check.
+ (bpstat_check_breakpoint_conditions): Use get_stack_frame_id.
+ Update comments.
+ (set_momentary_breakpoint): Only accept non-inlined frames.
+ (watch_command_1): Use frame_unwind_caller_pc and
+ frame_unwind_caller_id instead of get_prev_frame.
+ (until_break_command): Likewise. Use get_stack_frame_id.
+ * buildsym.c (end_symtab): Set SYMBOL_SYMTAB for block functions.
+ * dwarf2loc.c (dwarf_expr_frame_base): Use block_linkage_function.
+ * dwarf2read.c (process_die): Handle DW_TAG_inlined_subroutine.
+ (read_func_scope, new_symbol): Likewise. Handle arguments specially
+ for inlined functions without call site information.
+ (inherit_abstract_dies): Allow tag mismatch for inlined subroutines.
+ (die_specification): Treat DW_AT_abstract_origin as a specification.
+ (read_type_die): Handle DW_TAG_inlined_subroutine.
+ * frame-unwind.c (frame_unwind_init): Add inline_frame_unwind.
+ * frame.c (fprint_frame_id): Print inline depth.
+ (fprint_frame_type): Handle INLINE_FRAME and SENTINEL_FRAME.
+ (skip_inlined_frames, get_stack_frame_id): New.
+ (frame_unwind_caller_id): Use skip_inlined_frames.
+ (frame_id_inlined_p): New.
+ (frame_id_eq): Make the logic match the comments. Add inline_depth
+ check.
+ (frame_id_inner): Handle inlined functions.
+ (frame_unwind_pc): New function, copied from frame_unwind_caller_pc.
+ (frame_unwind_caller_pc): Use skip_inlined_frames and frame_unwind_pc.
+ (get_prev_frame_1): Check for inline frames. Split out frame
+ allocation to get_prev_frame_raw.
+ (get_prev_frame_raw): New function.
+ (get_prev_frame): Handle inline frames.
+ (get_frame_pc): Use frame_unwind_pc.
+ (get_frame_address_in_block): Skip inlined frames on both sides.
+ (pc_notcurrent): Delete.
+ (find_frame_sal): Rewrite to handle inline call sites. Use
+ get_frame_address_in_block.
+ (deprecated_update_frame_pc_hack): Make static.
+ * frame.h: Update comments.
+ (struct frame_id): Add inline_depth.
+ (enum frame_type): Add INLINE_FRAME.
+ (frame_id_inlined_p, get_stack_frame_id): New prototypes.
+ * gdbthread.h (struct thread_info): Add step_stack_frame_id field.
+ * infcmd.c (set_step_frame): New function.
+ (step_once): Use set_step_frame. Handle inlined functions.
+ (until_next_command): Use set_step_frame.
+ (finish_backward), finish_forward): Use get_stack_frame_id.
+ (finish_command): Support inlined functions.
+ * inferior.h (set_step_info): New prototype.
+ * infrun.c (RESUME_ALL): Use minus_one_ptid.
+ (clear_proceed_status): Clear step_stack_frame_id.
+ (init_wait_for_inferior): Call clear_inline_frame_state.
+ (init_execution_control_state): Make static.
+ (set_step_info): New function.
+ (init_thread_stepping_state): Do not set the symtab or line here.
+ (stepped_in_from): New function.
+ (handle_inferior_event): Handle inlined functions. Use set_step_info.
+ (insert_step_resume_breakpoint_at_frame): Use get_stack_frame_id.
+ (struct inferior_status): Add step_stack_frame_id.
+ (save_inferior_status, restore_inferior_status): Save and restore
+ step_stack_frame_id.
+ * inline-frame.c, inline-frame.h: New files.
+ * minsyms.c (prim_record_minimal_symbol_and_info): Use XCALLOC.
+ * regcache.c (regcache_write_pc): Call reinit_frame_cache.
+ * s390-tdep.c (s390_prologue_frame_unwind_cache): Handle INLINE_FRAME.
+ * stack.c (frame_show_address): New.
+ (print_frame_info, print_frame): Use it.
+ (find_frame_funname): Use get_frame_function. Handle inlined blocks.
+ (frame_info): Mark inlined functions.
+ (backtrace_command_1): Use get_current_user_frame.
+ (print_frame_local_vars, print_frame_label_vars): Update comments.
+ (return_command): Refuse inlined functions.
+ * symtab.c (lookup_symbol_aux_local): Stop at inlined function
+ boundaries.
+ (find_function_start_sal): Avoid inlined functions.
+ (completion_list_add_fields): New function.
+ (default_make_symbol_completion_list): Use it. Use block_static_block
+ and block_global_block. Check for inlined functions.
+ (skip_prologue_using_sal): Avoid line number comparison across
+ inlining.
+ * symtab.h (struct symbol): Add is_inlined.
+ (SYMBOL_INLINED): New.
+ * target.c (target_resume): Call clear_inline_frame_state.
+ * valops.c (value_of_variable): Check block_inlined_p.
+
+2009-06-27 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * frame.c (frame_unwind_id): Renamed to ...
+ (frame_unwind_caller_id): ... this. All callers updated.
+ (frame_pc_unwind): Renamed to ...
+ (frame_unwind_caller_pc): ... this. All callers updated.
+ * frame.h: Document frame_unwind_caller_WHAT functions.
+ (frame_unwind_id): Renamed to ...
+ (frame_unwind_caller_id): ... this.
+ (frame_pc_unwind): Renamed to ...
+ (frame_unwind_caller_pc): ... this.
+ * hppa-tdep.c (hppa_find_unwind_entry_in_block): Correct comment.
+ * stack.c (parse_frame_specification_1): Do not rely on
+ frame_unwind_id.
+
+2009-06-27 Michael Snyder <msnyder@vmware.com>
+
+ * infrun.c (handle_inferior_event): Improve handling of
+ reverse-stepping into and over shared library functions.
+
+2009-06-25 Karen Osmond <karen.osmond@gmail.com>
+
+ * linespec.c (find_method): Add new not_found_ptr parameter to
+ bring in line with symtab_from_filename, decode_variable.
+ (decode_compound): Likewise. Also propagate not_found_ptr to
+ find_method.
+ (decode_line_1): Propagate not_found_ptr to decode_compound.
+ (cplusplus_error): Now throws NOT_FOUND_ERROR.
+
+2009-06-25 Karen Osmond <karen.osmond@gmail.com>
+
+ * MAINTAINERS (Write After Approval): Add self.
+
+2009-06-23 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * valops.c (value_one): Reimplement broken decimal-float case.
+
+2009-06-23 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * eval.c (evaluate_subexp_standard): Use expression architecture
+ instead of current_gdbarch.
+
+ * infrun.c (handle_inferior_event): Avoid unncessary reference
+ to current_gdbarch and get_current_frame ().
+
+2009-06-23 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * breakpoint.h (set_longjmp_breakpoint): Add THREAD argument.
+ (enum bptype): Add bp_longjmp_master.
+
+ * breakpoint.c (create_longjmp_master_breakpoint): New function.
+ (update_breakpoints_after_exec): Handle bp_longjmp_master
+ breakpoints. Call create_longjmp_master_breakpoint.
+ (print_it_typical, bpstat_stop_status, bpstat_what,
+ print_one_breakpoint_location, allocate_bp_location, mention,
+ delete_command, breakpoint_re_set_one): Handle bp_longjmp_master.
+ (breakpoint_re_set): Call create_longjmp_master_breakpoint.
+ (create_longjmp_breakpoint): Delete.
+ (set_longjmp_breakpoint): Add THREAD argument. Reimplement
+ to install momentary clones of bp_longjmp_master breakpoints.
+
+ * infcmd.c (step_1): Pass thread to set_longjmp_breakpoint.
+
+2009-06-23 Cary Coutant <ccoutant@google.com>
+
+ * dwarf2read.c (dwarf_decode_lines): Ignore rows where is_stmt is 0.
+ Set basic_block to 0 after a special opcode.
+
+2009-06-23 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ Fix a regression by the mmap patch from 2009-06-16.
+ * symfile.c (reread_symbols): Move sym_finish and clear_objfile_data
+ calls before deleting the OBJFILE obstack. Extend the comment.
+
+2009-06-23 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * jv-lang.h (JAVA_OBJECT_SIZE): Remove.
+ (get_java_object_header_size): Add GDBARCH parameter.
+ * jv-lang.c (get_java_object_header_size): Add GDBARCH parameter.
+ Use it instead of current_gdbarch.
+ (evaluate_subexp_java): Replace JAVA_OBJECT_SIZE with call to
+ get_java_object_header_size.
+ * jv-valprint.c (java_value_print): Likewise.
+
+2009-06-23 Sami Wagiaalla <swagiaal@redhat.com>
+
+ * dwarf2read.c (process_die): Handle import statements
+ (DW_TAG_imported_declaration, case DW_TAG_imported_module)
+ (read_import_statement): New.
+ (read_func_scope): Update using_directives to point to current context
+ (read_lexical_block_scope): Ditto.
+ * cp-support.h: Added prototype for cp_add_using.
+ * cp-namespace.c: Removed local context_stack.
+ (cp_initialize_namespace): Deleted.
+ (cp_finalize_namespace): Deleted.
+ (cp_add_using_directive): Use using_directives instead of using_list.
+ (cp_add_using): No longer static.
+ * buildsym.h: Created global using_direct variable.
+ Created using_direct variable in context_stack.
+ * buildsym.c (finish_block): Set using directives for the block under
+ construction.
+ (start_symtab): Removed call to cp_initialize_namespace().
+ (end_symtab): Removed call to cp_finalize_namespace().
+ (push_context): Save and reset using_directives.
+ * block.c (block_using): Return using directives for given
+ block instead of static block.
+
+2009-06-23 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * target-descriptions.h (struct type): Do not declare.
+ (struct tdesc_type): Declare.
+ (tdesc_named_type): Change return type to struct tdesc_type *.
+ (tdesc_record_type): Remove.
+ (tdesc_create_vector): Add prototype.
+ (tdesc_create_union): Likewise.
+ (tdesc_add_field): Likewise.
+
+ * target-descriptions.c (struct tdesc_reg): Replace gdb_type
+ member by tdesc_type member.
+ (struct tdesc_type_field, tdesc_type_field): Add type and vector def.
+ (struct tdesc_type, tdesc_type_p): Likewise.
+ (struct tdesc_arch_reg, tdesc_arch_reg): Likewise.
+ (struct tdesc_feature): Change type of "types" to VEC(tdesc_type_p).
+ (struct tdesc_arch_data): Replace registers member by arch_regs.
+
+ (tdesc_predefined_types): Change to array of pre-defined
+ struct tdesc_type structures. Add "code_ptr" and "data_ptr".
+ (tdesc_named_type): Return struct tdesc_type * instead of GDB type.
+ (tdesc_gdb_type): New function.
+
+ (target_find_description): Update for data structure changes.
+ (tdesc_data_cleanup): Likewise.
+ (tdesc_numbered_register): Likewise.
+ (tdesc_use_registers): Likewise.
+ (tdesc_create_reg): Likewise.
+
+ (tdesc_find_arch_register): New function.
+ (tdesc_find_register): Use it.
+ (tdesc_register_type): Use tdesc_gdb_type to generate GDB type from
+ tdesc_type on demand; cache generated types in tdesc_arch_reg.
+
+ (tdesc_free_type): New function.
+ (tdesc_free_feature): Call it.
+
+ (tdesc_create_vector): New function.
+ (tdesc_create_union): Likewise.
+ (tdesc_add_field): Likewise.
+ (tdesc_record_type): Remove.
+
+ (tdesc_type_id): Remove.
+ (maint_print_c_tdesc_cmd): Update for data structure changes. Update
+ generated code to create tdesc_type structures instead of GDB types.
+
+ * xml-tdesc.c: Do not include "gdbtypes.h".
+ (struct tdesc_parsing_data): Change type of current_union to
+ struct tdesc_type *.
+ (tdesc_start_reg): Do not special-case "code_ptr" or "data_ptr".
+ (tdesc_start_union): Call tdesc_create_union.
+ (tdesc_start_field): Call tdesc_add_field.
+ (tdesc_start_vector): Call tdesc_create_vector.
+ (tdesc_end_union): Remove.
+ (feature_children): Remove reference to tdesc_end_union.
+
+ * features/arm-with-iwmmxt.c: Regenerate.
+ * features/mips-linux.c: Regenerate.
+ * features/mips64-linux.c: Regenerate.
+ * features/rs6000/powerpc-32.c: Regenerate.
+ * features/rs6000/powerpc-32l.c: Regenerate.
+ * features/rs6000/powerpc-403.c: Regenerate.
+ * features/rs6000/powerpc-403gc.c: Regenerate.
+ * features/rs6000/powerpc-505.c: Regenerate.
+ * features/rs6000/powerpc-601.c: Regenerate.
+ * features/rs6000/powerpc-602.c: Regenerate.
+ * features/rs6000/powerpc-603.c: Regenerate.
+ * features/rs6000/powerpc-604.c: Regenerate.
+ * features/rs6000/powerpc-64.c: Regenerate.
+ * features/rs6000/powerpc-64l.c: Regenerate.
+ * features/rs6000/powerpc-7400.c: Regenerate.
+ * features/rs6000/powerpc-750.c: Regenerate.
+ * features/rs6000/powerpc-860.c: Regenerate.
+ * features/rs6000/powerpc-altivec32.c: Regenerate.
+ * features/rs6000/powerpc-altivec32l.c: Regenerate.
+ * features/rs6000/powerpc-altivec64.c: Regenerate.
+ * features/rs6000/powerpc-altivec64l.c: Regenerate.
+ * features/rs6000/powerpc-e500.c: Regenerate.
+ * features/rs6000/powerpc-e500l.c: Regenerate.
+ * features/rs6000/powerpc-isa205-32l.c: Regenerate.
+ * features/rs6000/powerpc-isa205-64l.c: Regenerate.
+ * features/rs6000/powerpc-isa205-altivec32l.c: Regenerate.
+ * features/rs6000/powerpc-isa205-altivec64l.c: Regenerate.
+ * features/rs6000/powerpc-isa205-vsx32l.c: Regenerate.
+ * features/rs6000/powerpc-isa205-vsx64l.c: Regenerate.
+ * features/rs6000/powerpc-vsx32.c: Regenerate.
+ * features/rs6000/powerpc-vsx32l.c: Regenerate.
+ * features/rs6000/powerpc-vsx64.c: Regenerate.
+ * features/rs6000/powerpc-vsx64l.c: Regenerate.
+ * features/rs6000/rs6000.c: Regenerate.
+
2009-06-23 Joel Brobecker <brobecker@adacore.com>
* ada-lang.c (decode_packed_array): If the value is a pointer to
* c-lang.c (classify_type): Iterate over typedefs.
* c-valprint.c (textual_element_type): Iterate over typedefs.
+2009-06-22 Tristan Gingold <gingold@adacore.com>
+
+ * darwin-nat.c (darwin_xfer_partial): Use host_address_to_string
+ instead of "%p".
+
2009-06-22 Jan Kratochvil <jan.kratochvil@redhat.com>
PR gdb/9988: