aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2021-11-19 22:41:10 -0500
committerSimon Marchi <simon.marchi@polymtl.ca>2022-02-06 15:48:19 -0500
commit3908b699f8d08499ad53adcb34e8a4675cf39142 (patch)
treeee919825e6f4ea29031846b857c903626cec7b24
parentb0fc0e82d5ca4047ab3054a814b68a841e7001ea (diff)
downloadgdb-3908b699f8d08499ad53adcb34e8a4675cf39142.zip
gdb-3908b699f8d08499ad53adcb34e8a4675cf39142.tar.gz
gdb-3908b699f8d08499ad53adcb34e8a4675cf39142.tar.bz2
gdb: remove COMPUNIT_EPILOGUE_UNWIND_VALID macro, add getter/setter
Add a getter and a setter for a compunit_symtab's epilogue unwind valid flag. Remove the corresponding macro and adjust all callers. Change-Id: If3b68629d987767da9be7041a95d96dc34367a9a
-rw-r--r--gdb/amd64-tdep.c2
-rw-r--r--gdb/dwarf2/read.c2
-rw-r--r--gdb/i386-tdep.c2
-rw-r--r--gdb/symtab.h13
4 files changed, 14 insertions, 5 deletions
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
index 539ebe9..4444187 100644
--- a/gdb/amd64-tdep.c
+++ b/gdb/amd64-tdep.c
@@ -2901,7 +2901,7 @@ amd64_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
struct compunit_symtab *cust;
cust = find_pc_compunit_symtab (pc);
- if (cust != NULL && COMPUNIT_EPILOGUE_UNWIND_VALID (cust))
+ if (cust != NULL && cust->epilogue_unwind_valid ())
return 0;
if (target_read_memory (pc, &insn, 1))
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index a14ac22..fb138de 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -9496,7 +9496,7 @@ process_full_comp_unit (dwarf2_cu *cu, enum language pretend_language)
cust->set_locations_valid (true);
if (gcc_4_minor >= 5)
- cust->epilogue_unwind_valid = 1;
+ cust->set_epilogue_unwind_valid (true);
cust->set_call_site_htab (cu->call_site_htab);
}
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index e598a4d..b98f475 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -2222,7 +2222,7 @@ i386_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
struct compunit_symtab *cust;
cust = find_pc_compunit_symtab (pc);
- if (cust != NULL && COMPUNIT_EPILOGUE_UNWIND_VALID (cust))
+ if (cust != NULL && cust->epilogue_unwind_valid ())
return 0;
if (target_read_memory (pc, &insn, 1))
diff --git a/gdb/symtab.h b/gdb/symtab.h
index a612e1a..5419e70 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -1541,6 +1541,16 @@ struct compunit_symtab
m_locations_valid = locations_valid;
}
+ bool epilogue_unwind_valid () const
+ {
+ return m_epilogue_unwind_valid;
+ }
+
+ void set_epilogue_unwind_valid (bool epilogue_unwind_valid)
+ {
+ m_epilogue_unwind_valid = epilogue_unwind_valid;
+ }
+
/* Make PRIMARY_FILETAB the primary filetab of this compunit symtab.
PRIMARY_FILETAB must already be a filetab of this compunit symtab. */
@@ -1607,7 +1617,7 @@ struct compunit_symtab
/* DWARF unwinder for this CU is valid even for epilogues (PC at the return
instruction). This is supported by GCC since 4.5.0. */
- unsigned int epilogue_unwind_valid : 1;
+ unsigned int m_epilogue_unwind_valid : 1;
/* struct call_site entries for this compilation unit or NULL. */
htab_t m_call_site_htab;
@@ -1636,7 +1646,6 @@ struct compunit_symtab
using compunit_symtab_range = next_range<compunit_symtab>;
-#define COMPUNIT_EPILOGUE_UNWIND_VALID(cust) ((cust)->epilogue_unwind_valid)
#define COMPUNIT_MACRO_TABLE(cust) ((cust)->macro_table)
/* Return the language of CUST. */