/* Functions for deciding which macros are currently in scope.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2007 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GDB.
struct macro_scope *
sal_macro_scope (struct symtab_and_line sal)
{
- struct macro_source_file *main, *inclusion;
+ struct macro_source_file *main_file, *inclusion;
struct macro_scope *ms;
if (! sal.symtab
ms = (struct macro_scope *) xmalloc (sizeof (*ms));
- main = macro_main (sal.symtab->macro_table);
- inclusion = macro_lookup_inclusion (main, sal.symtab->filename);
+ main_file = macro_main (sal.symtab->macro_table);
+ inclusion = macro_lookup_inclusion (main_file, sal.symtab->filename);
if (inclusion)
{
For the time being, though, we'll just treat these as
occurring at the end of the main source file. */
- ms->file = main;
+ ms->file = main_file;
ms->line = -1;
complaint (&symfile_complaints,
default_macro_scope (void)
{
struct symtab_and_line sal;
- struct macro_source_file *main;
struct macro_scope *ms;
+ struct frame_info *frame;
- /* If there's a selected frame, use its PC. */
- if (deprecated_selected_frame)
- sal = find_pc_line (get_frame_pc (deprecated_selected_frame), 0);
+ /* If there's a selected frame, use its PC. */
+ frame = deprecated_safe_get_selected_frame ();
+ if (frame)
+ sal = find_pc_line (get_frame_pc (frame), 0);
- /* If the target has any registers at all, then use its PC. Why we
- would have registers but no stack, I'm not sure. */
- else if (target_has_registers)
- sal = find_pc_line (read_pc (), 0);
-
- /* If all else fails, fall back to the current listing position. */
+ /* Fall back to the current listing position. */
else
{
/* Don't call select_source_symtab here. That can raise an