+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * language.h (struct language_arch_info): New members
+ bool_type_default and bool_type_symbol.
+ (lang_bool_type): Remove prototype.
+ (LA_BOOL_TYPE): Remove macro.
+ (language_bool_type): Add prototype.
+ * language.c (lang_bool_type): Remove.
+ (language_bool_type): New function.
+
+ * value.h (value_in): Change return value to int.
+ * value.c (value_in): Return int instead of struct value *.
+
+ * eval.c (evaluate_subexp_standard): Call language_bool_type instead
+ of using LA_BOOL_TYPE. Update call to value_in.
+ * ada-lang.c (ada_evaluate_subexp): Call language_bool_type instead
+ of using LA_BOOL_TYPE or builtin_type_int for boolean values.
+
+ * language.c (unknown_language_arch_info): Set bool_type_default member
+ of struct language_arch_info.
+ * ada-lang.c (ada_language_arch_info): Set bool_type_symbol and
+ bool_type_default members of struct language_arch_info.
+ * c-lang.c (c_language_arch_info): Set bool_type_default member
+ of struct language_arch_info.
+ (cplus_language_arch_info): Set bool_type_symbol and bool_type_default
+ members of struct language_arch_info.
+ * f-lang.c (f_language_arch_info): Set bool_type_symbol and
+ bool_type_default members of struct language_arch_info.
+ * jv-lang.c (java_language_arch_info): Set bool_type_symbol and
+ bool_type_default members of struct language_arch_info.
+ * m2-lang.c (m2_language_arch_info): Set bool_type_symbol and
+ bool_type_default members of struct language_arch_info.
+ * p-lang.c (p_language_arch_info): Set bool_type_symbol and
+ bool_type_default members of struct language_arch_info.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * jv-lang.c (enum java_primitive_types): New type.
+ (java_language_arch_info): New function.
+ (java_language): Use it instead of c_language_arch_info.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * value.h (value_bitstring_subscript): New prototype.
+ * valarith.h (value_bitstring_subscript): New function.
+ (value_subscript): No longer handle TYPE_CODE_BITSTRING.
+ * eval.c (evaluate_subexp_standard): Call value_bitstring_subscript
+ instead of value_subscript to handle TYPE_CODE_BITSTRING.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * expression.h (struct expression): New member GDBARCH.
+ * parse.c (parse_exp_in_context): Initialize it.
+ * parser-def.h (parse_gdbarch, parse_language): New macros.
+
+ * ada-exp.y (parse_type): New macro.
+ Replace builtin_type_ macros by using parse_type.
+ Replace current_language by parse_language.
+ * ada-lex.l (processInt): Replace current_gdbarch by parse_gdbarch.
+ Replace builtin_type_ macros.
+
+ * c-exp.y (parse_type): New macro.
+ Replace builtin_type_ macros by using parse_type.
+ (parse_number): Replace current_gdbarch by parse_gdbarch.
+ (yylex): Replace current_language by parse_language.
+
+ * f-exp.y (parse_type, parse_f_type): New macros.
+ Replace builtin_type_ macros by using parse_{f_,}type.
+ (parse_number): Replace current_gdbarch by parse_gdbarch.
+ (yylex): Replace current_language by parse_language.
+
+ * jv-exp.y (parse_type): New macro.
+ (parse_number): Replace builtin_type_ macros by using parse_type.
+
+ * m2-exp.y (parse_type, parse_m2_type): New macros.
+ Replace builtin_type_ macros by using parse_{m2_,}type.
+
+ * objc-exp.y (parse_type): New macro.
+ Replace builtin_type_ macros by using parse_type.
+ (parse_number): Replace current_gdbarch by parse_gdbarch.
+ (yylex): Replace current_language by parse_language.
+
+ * p-exp.y (parse_type): New macro.
+ Replace builtin_type_ macros by using parse_type.
+ (parse_number): Replace current_gdbarch by parse_gdbarch.
+ (yylex): Replace current_language by parse_language.
+
+2008-09-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * parser-defs.h (write_exp_msymbol): Remove TEXT_SYMBOL_TYPE
+ and DATA_SYMBOL_TYPE arguments.
+ * parse.c (write_exp_msymbol): Remove TEXT_SYMBOL_TYPE and
+ DATA_SYMBOL_TYPE arguments. Replace use of builtin_type_CORE_ADDR.
+ (write_dollar_variable): Update call.
+
+ * ada-exp.y (write_var_or_type): Update call.
+ * c-exp.y: Likewise.
+ * f-exp.y: Likewise.
+ * jv-exp.y: Likewise.
+ * m2-exp.y: Likewise.
+ * objc-exp.y: Likewise.
+ * p-exp.y: Likewise.
+
+2008-09-10 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.c (ada_parent_type): Add handling of the case where
+ the _parent field is a pointer and/or has a parallel XVS type.
+ (ada_evaluate_subexp) [OP_VAR_VALUE]: When doing an
+ EVAL_AVOID_SIDE_EFFECTS evaluation of a tagged type, return
+ the type of the tag instead of doing forcing an EVAL_NORMAL
+ expression evaluation.
+
+2008-09-10 Paul N. Hilfinger <hilfinger@adacore.com>
+ Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.c (is_digits_suffix): New function.
+ (is_dot_digits_suffix): Remove.
+ (ada_lookup_symbol_list): Remove digits suffix from minimal symbols
+ before looking up in symbol table, and do not use wild matches on them.
+ (wild_match): Reimplement for speed and to allow matching of operator
+ symbols.
+ (is_valid_name_for_wild_match): Return zero for names that do not
+ follow the GNAT encoding.
+
+ (is_name_suffix): Fix typo in comment.
+ (to_record_with_fixed_variant_part): Ditto.
+
+2008-09-10 Pedro Alves <pedro@codesourcery.com>
+
+ * Makefile.in (gnu-nat.o): New rule.
+
+2008-09-10 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.c (ada_evaluate_subexp) [OP_ATR_SIZE]: Use
+ archecture-neutral builtin_type_int32 instead of builtin_type_int.
+
+2008-09-10 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.c (ada_evaluate_subexp) [BINOP_ADD, BINOP_SUB]:
+ Add special handling for pointer types.
+
+2008-09-10 Pedro Alves <pedro@codesourcery.com>
+
+ * inf-ttrace.c (inf_ttrace_follow_fork): Declare locals at the
+ right scope level.
+ (inf_ttrace_resume, inf_ttrace_wait): Typos.
+
+2008-09-10 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * ada-lang.c (ada_array_length): Use builtin_type_int32 instead
+ of builtin_type_int.
+ (ada_evaluate_subexp) [UNOP_IN_RANGE]: Use operand range type
+ instead of builtin_type_int.
+
+2008-09-09 Pedro Alves <pedro@codesourcery.com>
+
+ * infrun.c (normal_stop): Run hook-stop last.
+
+2008-09-09 Pedro Alves <pedro@codesourcery.com>
+
+ * gnu-nat.c (gnu_pid_to_exec_file): Delete.
+ (init_gnu_ops): Don't register it.
+
+2008-09-09 Pedro Alves <pedro@codesourcery.com>
+
+ * gnu-nat.c (gnu_attach): Push target before fetching the list of
+ threads.
+
+2008-09-08 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * valops.c (value_cast_structs): Return NULL for failure.
+ (value_cast): Handle NULL from value_cast_structs.
+ (value_fetch_lazy): Call check_typedef. Remove unused variable.
+
+2008-09-08 Pedro Alves <pedro@codesourcery.com>
+
+ * inferior.h (context_switch_to): Delete.
+ * infrun.c (context_switch): Don't save and load infrun state.
+ (context_switch_to): Delete.
+
+ * infcmd.c (proceed_thread_callback): Replace context_switch_to
+ calls by switch_to_thread calls.
+
+ * gdbthread.h (save_infrun_state, load_infrun_state): Delete.
+ * thread.c (main_thread_state, main_thread_executing): Delete.
+ (inferior_thread): Delete references to them.
+ (add_thread_silent): Fix case where we're adding a thread with the
+ same ptid as an exited thread. Remove references to
+ context-switching.
+ (load_infrun_state, save_infrun_state): Delete.
+ (thread_alive, is_thread_state, any_running, is_executing)
+ (set_executing): Remove the special handling for targets that
+ don't register any thread.
+ (restore_current_thread, thread_apply_all_command)
+ (do_captured_thread_select): Unconditionally call
+ switch_to_thread.
+
+ * mi/mi-main.c (mi_cmd_execute): Check for exited threads.
+ Call switch_to_thread instead of context_switch_to.
+
+2008-09-08 Pedro Alves <pedro@codesourcery.com>
+
+ Remove global continuations in favour of a per-thread
+ continuations.
+
+ * gdbthread.h (struct thread_info): Add comments around
+ continuations and intermediate_continuations.
+ (save_infrun_state, load_infrun_state): Delete continuations and
+ intermediate_continuations arguments.
+ * infrun.c (context_switch): Don't context-switch the continuations.
+ * thread.c (clear_thread_inferior_resources): Discard all
+ continuations of the thread we're clearing.
+ (save_infrun_state, load_infrun_state): Delete continuations and
+ intermediate_continuations arguments, and the code referencing
+ them.
+ * utils.c: Include "gdbthread.h".
+ (cmd_continuation, intermediate_continuation): Delete.
+ (add_continuation): Add thread_info* argument. Install the
+ continuation on it.
+ (restore_thread_cleanup): New.
+ (do_all_continuations_ptid, do_all_continuations_thread_callback):
+ New.
+ (do_all_continuations): Reimplement.
+ (discard_all_continuations_thread_callback,
+ discard_all_continuations_thread): New.
+ (discard_all_continuations): Reimplement.
+ (add_intermediate_continuation): Add thread_info* argument.
+ Install the continuation on it.
+ (do_all_intermediate_continuations_thread_callback)
+ (do_all_intermediate_continuations_thread): New.
+ (do_all_intermediate_continuations): Reimplement.
+ (discard_all_intermediate_continuations_thread_callback): New.
+ (discard_all_intermediate_continuations_thread): New.
+ (discard_all_intermediate_continuations): Reimplement.
+
+ * breakpoint.c (until_break_command): Install the continuation on
+ the current thread.
+
+ * defs.h (cmd_continuation, intermediate_continuation): Delete.
+ (struct thread_info): Forward declare.
+ (add_continuation, add_intermediate_continuation): Add
+ thread_info* argument.
+ (do_all_continuations_thread, discard_all_continuations_thread)
+ (do_all_intermediate_continuations_thread)
+ (discard_all_intermediate_continuations_thread): Declare.
+ * inf-loop.c (inferior_event_handler): In non-stop only run
+ continuations on the thread that stopped. In all-stop, run
+ continuations on all threads.
+ * infcmd.c (step_once, finish_command): Adjust.
+
+2008-09-08 Pedro Alves <pedro@codesourcery.com>
+
+ Remove the global stop_step in favour of a per-thread
+ stop_step.
+
+ * inferior.h (stop_step): Delete.
+
+ * gdbthread.h (struct thread_info): Add comments to stop_step.
+ (save_infrun_state, load_infrun_state): Remove stop_step argument.
+ * thread.c (load_infrun_state, save_infrun_state): Remove
+ stop_step argument, and references to it.
+
+ * infrun.c (clear_proceed_status): Clear stop_step.
+ (fetch_inferior_event): Adjust.
+ (context_switch): Don't context-switch stop_step.
+ (handle_inferior_event): Adjust.
+ (normal_stop): Adjust.
+ (save_inferior_status, restore_inferior_status): Adjust.
+
+ * infcmd.c (stop_step): Delete.
+ (step_1, step_1_continuation, step_once, until_next_command):
+ Adjust.
+
+2008-09-08 Pedro Alves <pedro@codesourcery.com>
+
+ Remove the global step_multi in favour of a per-thread
+ step_multi.
+
+ * inferior.h (step_multi): Delete.
+ * gdbthread.h (struct thread_info): Add comments around
+ step_multi.
+ (save_infrun_state, load_infrun_state): Remove step_multi
+ parameter.
+ * thread.c (load_infrun_state, save_infrun_state): Remove
+ step_multi argument, and references to it.
+ * infcmd.c (step_multi): Delete.
+ (step_1): Adjust.
+ (step_1_continuation, until_next_command): Adjust.
+ * infrun.c (fetch_inferior_event): Adjust.
+ (context_switch): Don't context-switch step_multi.
+ (print_stop_reason, normal_stop): Adjust.
+
+2008-09-08 Pedro Alves <pedro@codesourcery.com>
+
+ Remove the global stop_signal in favour of a per-thread
+ stop_signal.
+
+ * inferior.h (stop_signal): Delete.
+ * gdbthread.h (save_infrun_state, load_infrun_state): Remove
+ stop_signal argument.
+ * thread.c (load_infrun_state, save_infrun_state): Remove
+ stop_signal argument. Don't reference it.
+
+ * infcmd.c (stop_signal): Delete.
+ (program_info): Adjust.
+ * infrun.c (resume): Clear stop_signal.
+ (proceed): Adjust. Pass the last stop_signal to the thread we're
+ resuming.
+ (context_switch): Don't context-switch stop_signal.
+ (handle_inferior_event, keep_going): Adjust.
+ (save_inferior_status, restore_inferior_status): Adjust.
+
+ * fbsd-nat.c: Include "gdbthread.h".
+ (find_signalled_thread, find_stop_signal): New.
+ (fbsd_make_corefile_notes): Use it.
+ * fork-child.c (startup_inferior): Adjust.
+
+ * linux-nat.c (get_pending_status): Adjust.
+ (linux_nat_do_thread_registers): Adjust.
+ (find_signalled_thread, find_stop_signal): New.
+ (linux_nat_do_thread_registers): Add stop_signal parameter.
+ (struct linux_nat_corefile_thread_data): Add stop_signal member.
+ (linux_nat_corefile_thread_callback): Pass stop_signal.
+ (linux_nat_do_registers): Delete.
+ (linux_nat_make_corefile_notes): Use find_stop_signal. Assume
+ there's always a thread.
+
+ * procfs.c (find_signalled_thread, find_stop_signal): New.
+ (find_stop_signal): New.
+ (procfs_do_thread_registers): Add stop_signal parameter.
+ (struct procfs_corefile_thread_data): Add stop_signal member.
+ (procfs_corefile_thread_callback): Pass args->stop_signal.
+ (procfs_make_note_section): Find the last stop_signal.
+
+ * solib-irix.c: Include gdbthread.h.
+ (irix_solib_create_inferior_hook): Adjust.
+ * solib-osf.c: Include gdbthread.h.
+ (osf_solib_create_inferior_hook): Adjust.
+ * solib-sunos.c: Include gdbthread.h.
+ (sunos_solib_create_inferior_hook): Adjust.
+ * solib-svr4.c: Include gdbthread.h.
+ (svr4_solib_create_inferior_hook): Adjust.
+
+ * win32-nat.c (do_initial_win32_stuff): Adjust.
+
+2008-09-08 Pedro Alves <pedro@codesourcery.com>
+
+ * gdbthread.h (struct thread_info): Add comments around
+ proceed_to_finish.
+ (save_infrun_state, load_infrun_state): Remove proceed_to_finish
+ argument.
+ * thread.c (load_infrun_state, save_infrun_state): Delete
+ proceed_to_finish argument and references to it.
+
+ * infcall.c (call_function_by_hand): Adjust.
+ * infcmd.c (finish_command): Adjust.
+ * infrun.c (proceed_to_finish): Delete.
+ (clear_proceed_status): Adjust.
+ (context_switch): Don't context-switch proceed_to_finish.
+ (normal_stop, save_inferior_status, restore_inferior_status):
+ Adjust.
+
+2008-09-08 Pedro Alves <pedro@codesourcery.com>
+
+ * inferior.h (stop_bpstat): Delete.
+
+ * breakpoint.h (bpstat_do_actions): Remove bpstat* argument.
+
+ * breakpoint.c (bpstat_do_actions): Rename to ...
+ (bpstat_do_actions_1): ... this. Make static. Change return type
+ to int. Return true if a breakpoint proceeded.
+ (bpstat_do_actions): New, as wrapper around bpstat_do_actions_1.
+ (delete_breakpoint): Don't reference the global stop_bpstat; it's
+ gone.
+
+ * gdbthread.h (struct thread_info): Add stop_bpstat.
+ (save_infrun_state, load_infrun_state): Remove stop_bpstat
+ argument.
+ * thread.c (load_infrun_state, save_infrun_state): Remove
+ stop_bpstat argument, and the code referencing it.
+
+ * infcall.c: Include "gdbthread.h".
+ (call_function_by_hand): Adjust.
+ * exceptions.c: Include "gdbthread.h".
+ (throw_exception): Adjust.
+ * infcmd.c (stop_bpstat): Delete.
+ (continue_command): In all-stop, set the ignore count on the
+ thread that reported the stop. In non-stop, set it on the current
+ thread.
+ (finish_command_continuation): Adjust.
+ (program_info): Adjust.
+ * infrun.c (clear_proceed_status): Adjust.
+ (context_switch): Don't context-switch stop_bpstat.
+ (handle_inferior_event): Adjust.
+ (normal_stop): Adjust.
+ (save_inferior_status, restore_inferior_status): Adjust.
+
+ * inf-loop.c (inferior_event_handler): Remove parameter to
+ bpstat_do_actions call.
+ * top.c (command_loop): Remove parameter to bpstat_do_actions
+ call. Call it unconditionally.
+ * event-top.c (command_handler): Ditto.
+ * python/python.c (execute_gdb_command): Ditto.
+
+2008-09-08 Pedro Alves <pedro@codesourcery.com>
+
+ * inferior.h (step_over_calls): Delete.
+
+ * gdbthread.h (save_infrun_state, load_infrun_state): Remove
+ step_over_calls argument.
+ * thread.c (save_infrun_state, load_infrun_state): Remove
+ step_over_calls argument. Adjust.
+
+ * infcmd.c (step_over_calls): Delete.
+ (step_1): Adjust.
+ * infrun.c (clear_proceed_status): Adjust.
+ (context_switch): Don't context-switch step_over_calls.
+ (handle_inferior_event, save_inferior_status)
+ (restore_inferior_status): Adjust.
+
+2008-09-08 Pedro Alves <pedro@codesourcery.com>
+
+ Remove context switching in favour of accessing thread_info fields
+ directly.
+
+ * infrun.c (stepping_over_breakpoint, step_resume_breakpoint):
+ Delete.
+ (struct thread_stepping_state): Delete.
+ (gtss, tss): Delete.
+ (follow_inferior_reset_breakpoints, follow_exec)
+ (resume, clear_proceed_status): Adjust.
+ (prev_pc): Delete.
+ (proceed, start_remote, init_wait_for_inferior): Adjust.
+ (struct execution_control_state): Add event_thread member.
+ (delete_step_resume_breakpoint_callback)
+ (delete_step_thread_step_resume_breakpoint)
+ (delete_step_thread_step_resume_breakpoint_cleanup)
+ (delete_step_thread_step_resume_breakpoint): New.
+ (wait_for_inferior, init_execution_control_state): Use
+ delete_step_thread_step_resume_breakpoint_cleanup.
+ (wait_for_inferior): Set the event_thread.
+ (fetch_inferior_event): Ditto. Delete the step-resume breakpoint
+ with delete_step_thread_step_resume_breakpoint.
+ (init_thread_stepping_state): Change parameter type to
+ thread_info. Adjust.
+ (context_switch): Don't context switch prev_pc,
+ stepping_over_breakpoint, step_resume_breakpoint,
+ step_range_start, step_range_end, step_frame_id,
+ tss->stepping_over_breakpoint,
+ tss->stepping_through_solib_after_catch,
+ tss->stepping_through_solib_catchpoints, tss->current_line, or
+ tss->current_symtab.
+ (adjust_pc_after_break, handle_inferior_event)
+ (currently_stepping, step_into_function)
+ (insert_step_resume_breakpoint_at_sal)
+ (insert_longjmp_resume_breakpoint, keep_going): Adjust.
+ (clear_stepping_state): New.
+ (normal_stop): Adjust.
+ (save_inferior_status, restore_inferior_status): Adjust.
+
+ * gdbthread.h (struct thread_info): Comments describing the
+ members moved here. Add step_after_step_resume_breakpoint.
+ (delete_step_resume_breakpoint): Add thread_info argument.
+ (save_infrun_state, load_infrun_state): Remove prev_pc,
+ trap_expected, step_resume_breakpoint, step_range_start,
+ step_range_end, step_frame_id, another_trap,
+ stepping_through_solib_after_catch,
+ stepping_through_solib_catchpoints, current_line and
+ current_symtab function arguments.
+ (inferior_thread): Declare.
+
+ * thread.c (inferior_thread): New.
+ (delete_step_resume_breakpoint): Add a thread_info parameter and
+ rewrite.
+ (load_infrun_state, save_infrun_state): Remove prev_pc,
+ trap_expected, step_resume_breakpoint, step_range_start,
+ step_range_end, step_frame_id, stepping_over_breakpoint,
+ stepping_through_solib_after_catch,
+ stepping_through_solib_catchpoints, current_line and
+ current_symtab args. Remove code referencing them.
+
+ * infcmd.c (step_range_start, step_range_end, step_frame_id):
+ Delete.
+ (step_1, step_once, until_next_command): Adjust.
+
+ * inferior.h (step_range_start, step_range_end, step_frame_id):
+ Delete.
+
+ * linux-nat.c (linux_child_follow_fork): If following the child,
+ move the step state to it. Adjust.
+ * inf-ptrace.c (inf_ptrace_follow_fork): Ditto.
+ * inf-ttrace.c (inf_ttrace_follow_fork): Ditto.
+
+2008-09-08 Pedro Alves <pedro@codesourcery.com>
+
+ * bsd-uthread.c (bsd_uthread_find_new_threads): Claim the main
+ thread.
+
2008-09-08 Pedro Alves <pedro@codesourcery.com>
* corelow.c (add_to_thread_list): If this is the first time we