gdb: remove COMPUNIT_LOCATIONS_VALID macro, add getter/setter

Add a getter and a setter for a compunit_symtab's locations valid flag.
Remove the corresponding macro and adjust all callers.

Change-Id: I3e3cfba926ce62993d5b61814331bb3244afad01
This commit is contained in:
Simon Marchi 2021-11-19 22:35:40 -05:00 committed by Simon Marchi
parent c1e35bc9c6
commit b0fc0e82d5
3 changed files with 14 additions and 5 deletions

View file

@ -9493,7 +9493,7 @@ process_full_comp_unit (dwarf2_cu *cu, enum language pretend_language)
options - this waits on GCC PR other/32998 (-frecord-gcc-switches). options - this waits on GCC PR other/32998 (-frecord-gcc-switches).
*/ */
if (cu->has_loclist && gcc_4_minor >= 5) if (cu->has_loclist && gcc_4_minor >= 5)
cust->locations_valid = 1; cust->set_locations_valid (true);
if (gcc_4_minor >= 5) if (gcc_4_minor >= 5)
cust->epilogue_unwind_valid = 1; cust->epilogue_unwind_valid = 1;

View file

@ -3709,7 +3709,7 @@ find_function_start_sal_1 (CORE_ADDR func_addr, obj_section *section,
symtab_and_line sal = find_pc_sect_line (func_addr, section, 0); symtab_and_line sal = find_pc_sect_line (func_addr, section, 0);
if (funfirstline && sal.symtab != NULL if (funfirstline && sal.symtab != NULL
&& (COMPUNIT_LOCATIONS_VALID (SYMTAB_COMPUNIT (sal.symtab)) && (SYMTAB_COMPUNIT (sal.symtab)->locations_valid ()
|| SYMTAB_LANGUAGE (sal.symtab) == language_asm)) || SYMTAB_LANGUAGE (sal.symtab) == language_asm))
{ {
struct gdbarch *gdbarch = SYMTAB_OBJFILE (sal.symtab)->arch (); struct gdbarch *gdbarch = SYMTAB_OBJFILE (sal.symtab)->arch ();
@ -3885,7 +3885,7 @@ skip_prologue_sal (struct symtab_and_line *sal)
have proven the CU (Compilation Unit) supports it. sal->SYMTAB does not have proven the CU (Compilation Unit) supports it. sal->SYMTAB does not
have to be set by the caller so we use SYM instead. */ have to be set by the caller so we use SYM instead. */
if (sym != NULL if (sym != NULL
&& COMPUNIT_LOCATIONS_VALID (SYMTAB_COMPUNIT (symbol_symtab (sym)))) && SYMTAB_COMPUNIT (symbol_symtab (sym))->locations_valid ())
force_skip = 0; force_skip = 0;
saved_pc = pc; saved_pc = pc;

View file

@ -1531,6 +1531,16 @@ struct compunit_symtab
m_block_line_section = block_line_section; m_block_line_section = block_line_section;
} }
bool locations_valid () const
{
return m_locations_valid;
}
void set_locations_valid (bool locations_valid)
{
m_locations_valid = locations_valid;
}
/* Make PRIMARY_FILETAB the primary filetab of this compunit symtab. /* Make PRIMARY_FILETAB the primary filetab of this compunit symtab.
PRIMARY_FILETAB must already be a filetab of this compunit symtab. */ PRIMARY_FILETAB must already be a filetab of this compunit symtab. */
@ -1593,7 +1603,7 @@ struct compunit_symtab
/* Symtab has been compiled with both optimizations and debug info so that /* Symtab has been compiled with both optimizations and debug info so that
GDB may stop skipping prologues as variables locations are valid already GDB may stop skipping prologues as variables locations are valid already
at function entry points. */ at function entry points. */
unsigned int locations_valid : 1; unsigned int m_locations_valid : 1;
/* DWARF unwinder for this CU is valid even for epilogues (PC at the return /* DWARF unwinder for this CU is valid even for epilogues (PC at the return
instruction). This is supported by GCC since 4.5.0. */ instruction). This is supported by GCC since 4.5.0. */
@ -1626,7 +1636,6 @@ struct compunit_symtab
using compunit_symtab_range = next_range<compunit_symtab>; using compunit_symtab_range = next_range<compunit_symtab>;
#define COMPUNIT_LOCATIONS_VALID(cust) ((cust)->locations_valid)
#define COMPUNIT_EPILOGUE_UNWIND_VALID(cust) ((cust)->epilogue_unwind_valid) #define COMPUNIT_EPILOGUE_UNWIND_VALID(cust) ((cust)->epilogue_unwind_valid)
#define COMPUNIT_MACRO_TABLE(cust) ((cust)->macro_table) #define COMPUNIT_MACRO_TABLE(cust) ((cust)->macro_table)