From: Bruno Larsen <blarsen@redhat.com>
To: Simon Marchi <simon.marchi@polymtl.ca>, gdb-patches@sourceware.org
Subject: Re: [PATCH 4/6] gdb: revert frame_unwind::this_id and callees to use `frame_info *`
Date: Mon, 12 Dec 2022 14:17:04 +0100 [thread overview]
Message-ID: <3a0c4952-e44e-bed8-518a-52156a16747b@redhat.com> (raw)
In-Reply-To: <20221202180052.212745-5-simon.marchi@polymtl.ca>
On 02/12/2022 19:00, Simon Marchi via Gdb-patches wrote:
> A following patch will change frame_info_ptr to grab the frame id and
> reinflate automatically. This makes it so frame_info_ptr will no longer
> be able to wrap frame_info objects whose ids are being computed. This
> means that the frame_unwind::this_id method can't take a frame_info_ptr
> anymore, since that's the entry point of computing frame ids. And then,
> everything that "this_id" implementations can possibly call won't be
> able to accept a frame_info_ptr anymore.
>
> So, this patch started out as changing the prototype of
> frame_unwind::this_id and adjusting callees recursively until the code
> compiled again.
>
> The question is: doesn't this defeat the purpose of frame_info_ptr? I
> think it depends on what we decide the purpose of frame_info_ptr is.
>
> 1. catch accesses to stale frame_info ptr (and assert if so)
> 2. reinflate frame_info objects automatically.
I agree with Tom's point, both points fix the bugs that we tackled when
starting this, and I personally like the second option better.
>
> Right now, it does #1. My goal is to make it to #2. I think that is
> more in line with the original "reinflatable frames" idea, and in
> general more useful. And since those frames whose id is being computed
> are by definition not reinflatable (you need to id to reinflate), it's
> not really useful to have frame_info_ptr on code paths that deal with
> frames whose id is currently being computed. Reinflation only really
> makes sense for the "users" of the frame API, those who receive a frame
> with a computed id. And by experience, this is where the "using stale
> frame_info" bugs happen, a user holding a frame_info across a target
> resumption. If a frame cache reinit was to happen in the middle of a
> frame id computation, I think things would be seriously wrong. After
> the reinit, we'd be computing an id for a frame_info that doesn't exist
> anymore, I don't think it make sense.
>
> There are many functions that can be used in both contexts (frames with
> ids computed, and frames with ids being computed). value_of_register,
> for instance. These functions must be changed back to take a raw
> frame_info pointer. But to make things convenient to callers holding a
> frame_info_ptr, and to avoid having to change too many call sites, I
> introduced wrappers like this:
>
> static inline value *
> value_of_register (int regnum, frame_info_ptr frame)
> {
> return value_of_register (regnum, frame.get ());
> }
>
> Since frame_info_ptr::get will, at the end of this series, automatically
> reinflate the wrapped frame_info object, if necessary, the caller still
> gets the "protection" offered by frame_info_ptr, at least up to that
> point. Now, if a frame cache reinit was to happen inside that
> get_prev_frame call, we'd be screwed. But I think the risk of it
> happening is pretty low, for this kind of functions. And remember,
> since get_prev_frame is also used in the context of frame id
> computation, it's hard to imagine that it could happen.
s/get_prev_frame/value_of_register ? or am I missing something?
Regardless, your logic seems solid. I feel like a wrapper like this is
better than a second class, unless we start seeing the issues you theorized.
>
> Now, we could have two separate class frame_info wrapper classes, one
> that is today's frame_info_ptr, whose goal is just to catch uses of
> stale frame_info objects, and one that is the one at the end of this
> series, whose goal is to do automatic reinflation. The former one could
> continue being used in the paths involved in frame id computation.
> However, I'm not convinced it is worth it, due to (1) the low risk of
> this problem happening in these paths and (2) the availability of tools
> like ASan or Valgrind that will tell you precisely when a use-after-free
> happens.
>
> There are no user-visible changes expected with this patch. I
> built-tested and regression-tested on Linux x86-64. I don't think any
> platform-specific nat file needs to be changed, as they don't deal with
> frames.
For the patch itself, I took a look at it and saw nothing wrong, but I'm
not confident I understand the code well enough to say it is ok. This is
all I got:
Tested-By: Bruno Larsen <blarsen@redhat.com>
--
Cheers,
Bruno
> Change-Id: I68f4a0f52bdfea7d48d949c8239eeb830fbdadce
> ---
> gdb/aarch64-fbsd-tdep.c | 2 +-
> gdb/aarch64-linux-tdep.c | 2 +-
> gdb/aarch64-tdep.c | 30 ++--
> gdb/alpha-linux-tdep.c | 2 +-
> gdb/alpha-mdebug-tdep.c | 16 +-
> gdb/alpha-netbsd-tdep.c | 2 +-
> gdb/alpha-obsd-tdep.c | 2 +-
> gdb/alpha-tdep.c | 18 +-
> gdb/alpha-tdep.h | 2 +-
> gdb/amd64-darwin-tdep.c | 2 +-
> gdb/amd64-fbsd-tdep.c | 2 +-
> gdb/amd64-linux-tdep.c | 6 +-
> gdb/amd64-netbsd-tdep.c | 4 +-
> gdb/amd64-obsd-tdep.c | 12 +-
> gdb/amd64-sol2-tdep.c | 2 +-
> gdb/amd64-tdep.c | 32 ++--
> gdb/amd64-tdep.h | 1 -
> gdb/amd64-windows-tdep.c | 10 +-
> gdb/arc-linux-tdep.c | 4 +-
> gdb/arc-tdep.c | 18 +-
> gdb/arc-tdep.h | 4 +-
> gdb/arm-fbsd-tdep.c | 2 +-
> gdb/arm-linux-tdep.c | 8 +-
> gdb/arm-obsd-tdep.c | 2 +-
> gdb/arm-tdep.c | 56 +++---
> gdb/arm-tdep.h | 2 +-
> gdb/avr-tdep.c | 14 +-
> gdb/bfin-linux-tdep.c | 2 +-
> gdb/bfin-tdep.c | 12 +-
> gdb/blockframe.c | 4 +-
> gdb/bpf-tdep.c | 8 +-
> gdb/cris-tdep.c | 34 ++--
> gdb/csky-linux-tdep.c | 4 +-
> gdb/csky-tdep.c | 22 +--
> gdb/defs.h | 1 -
> gdb/dummy-frame.c | 8 +-
> gdb/dummy-frame.h | 2 +-
> gdb/dwarf2/expr.c | 12 +-
> gdb/dwarf2/expr.h | 6 +-
> gdb/dwarf2/frame-tailcall.c | 34 ++--
> gdb/dwarf2/frame-tailcall.h | 5 +-
> gdb/dwarf2/frame.c | 38 ++--
> gdb/dwarf2/frame.h | 12 +-
> gdb/dwarf2/loc.c | 10 +-
> gdb/dwarf2/loc.h | 2 +-
> gdb/findvar.c | 15 +-
> gdb/frame-base.c | 8 +-
> gdb/frame-base.h | 14 +-
> gdb/frame-unwind.c | 24 +--
> gdb/frame-unwind.h | 32 ++--
> gdb/frame.c | 197 ++++++++++----------
> gdb/frame.h | 347 +++++++++++++++++++++++++++++++-----
> gdb/frv-linux-tdep.c | 10 +-
> gdb/frv-tdep.c | 10 +-
> gdb/ft32-tdep.c | 8 +-
> gdb/gdbarch-components.py | 8 +-
> gdb/gdbarch-gen.h | 16 +-
> gdb/gdbarch-selftests.c | 5 +-
> gdb/gdbarch.c | 8 +-
> gdb/h8300-tdep.c | 8 +-
> gdb/hppa-bsd-tdep.c | 2 +-
> gdb/hppa-linux-tdep.c | 8 +-
> gdb/hppa-netbsd-tdep.c | 4 +-
> gdb/hppa-tdep.c | 28 +--
> gdb/hppa-tdep.h | 6 +-
> gdb/i386-bsd-tdep.c | 2 +-
> gdb/i386-darwin-tdep.c | 4 +-
> gdb/i386-darwin-tdep.h | 2 +-
> gdb/i386-fbsd-tdep.c | 2 +-
> gdb/i386-gnu-tdep.c | 6 +-
> gdb/i386-linux-tdep.c | 10 +-
> gdb/i386-netbsd-tdep.c | 4 +-
> gdb/i386-nto-tdep.c | 4 +-
> gdb/i386-obsd-tdep.c | 10 +-
> gdb/i386-sol2-tdep.c | 2 +-
> gdb/i386-tdep.c | 46 ++---
> gdb/i386-tdep.h | 6 +-
> gdb/i387-tdep.c | 2 +-
> gdb/i387-tdep.h | 2 +-
> gdb/ia64-libunwind-tdep.c | 12 +-
> gdb/ia64-libunwind-tdep.h | 11 +-
> gdb/ia64-tdep.c | 38 ++--
> gdb/inline-frame.c | 12 +-
> gdb/inline-frame.h | 3 +-
> gdb/iq2000-tdep.c | 10 +-
> gdb/jit.c | 10 +-
> gdb/lm32-tdep.c | 8 +-
> gdb/loongarch-linux-tdep.c | 2 +-
> gdb/loongarch-tdep.c | 6 +-
> gdb/m32c-tdep.c | 8 +-
> gdb/m32r-linux-tdep.c | 14 +-
> gdb/m32r-tdep.c | 8 +-
> gdb/m68hc11-tdep.c | 12 +-
> gdb/m68k-linux-tdep.c | 12 +-
> gdb/m68k-tdep.c | 14 +-
> gdb/m68k-tdep.h | 2 -
> gdb/mep-tdep.c | 8 +-
> gdb/microblaze-linux-tdep.c | 4 +-
> gdb/microblaze-tdep.c | 10 +-
> gdb/mips-fbsd-tdep.c | 4 +-
> gdb/mips-linux-tdep.c | 16 +-
> gdb/mips-sde-tdep.c | 12 +-
> gdb/mips-tdep.c | 68 +++----
> gdb/mips64-obsd-tdep.c | 2 +-
> gdb/mn10300-linux-tdep.c | 4 +-
> gdb/mn10300-tdep.c | 10 +-
> gdb/moxie-tdep.c | 8 +-
> gdb/msp430-tdep.c | 8 +-
> gdb/nds32-tdep.c | 18 +-
> gdb/nios2-linux-tdep.c | 2 +-
> gdb/nios2-tdep.c | 22 +--
> gdb/observable.h | 1 +
> gdb/or1k-linux-tdep.c | 8 +-
> gdb/or1k-tdep.c | 10 +-
> gdb/ppc-fbsd-tdep.c | 8 +-
> gdb/ppc-linux-tdep.c | 10 +-
> gdb/ppc-netbsd-tdep.c | 2 +-
> gdb/ppc-obsd-tdep.c | 8 +-
> gdb/python/py-unwind.c | 10 +-
> gdb/record-btrace.c | 24 ++-
> gdb/riscv-fbsd-tdep.c | 2 +-
> gdb/riscv-linux-tdep.c | 4 +-
> gdb/riscv-tdep.c | 8 +-
> gdb/rl78-tdep.c | 12 +-
> gdb/rs6000-aix-tdep.c | 8 +-
> gdb/rs6000-tdep.c | 26 +--
> gdb/rx-tdep.c | 16 +-
> gdb/s12z-tdep.c | 6 +-
> gdb/s390-linux-tdep.c | 8 +-
> gdb/s390-tdep.c | 41 +++--
> gdb/s390-tdep.h | 2 +-
> gdb/sentinel-frame.c | 6 +-
> gdb/sh-linux-tdep.c | 6 +-
> gdb/sh-tdep.c | 16 +-
> gdb/sol2-tdep.c | 2 +-
> gdb/sol2-tdep.h | 2 +-
> gdb/sparc-linux-tdep.c | 4 +-
> gdb/sparc-netbsd-tdep.c | 10 +-
> gdb/sparc-obsd-tdep.c | 8 +-
> gdb/sparc-sol2-tdep.c | 8 +-
> gdb/sparc-tdep.c | 16 +-
> gdb/sparc-tdep.h | 6 +-
> gdb/sparc64-fbsd-tdep.c | 8 +-
> gdb/sparc64-linux-tdep.c | 4 +-
> gdb/sparc64-netbsd-tdep.c | 10 +-
> gdb/sparc64-obsd-tdep.c | 16 +-
> gdb/sparc64-sol2-tdep.c | 8 +-
> gdb/sparc64-tdep.c | 10 +-
> gdb/sparc64-tdep.h | 3 +-
> gdb/std-regs.c | 8 +-
> gdb/symfile.h | 1 -
> gdb/tic6x-linux-tdep.c | 2 +-
> gdb/tic6x-tdep.c | 20 +--
> gdb/tilegx-linux-tdep.c | 2 +-
> gdb/tilegx-tdep.c | 10 +-
> gdb/trad-frame.c | 10 +-
> gdb/trad-frame.h | 9 +-
> gdb/tramp-frame.c | 10 +-
> gdb/tramp-frame.h | 5 +-
> gdb/user-regs.c | 4 +-
> gdb/user-regs.h | 16 +-
> gdb/v850-tdep.c | 10 +-
> gdb/value.c | 5 +-
> gdb/value.h | 28 ++-
> gdb/vax-tdep.c | 12 +-
> gdb/xstormy16-tdep.c | 10 +-
> gdb/xtensa-tdep.c | 22 +--
> gdb/z80-tdep.c | 6 +-
> 168 files changed, 1262 insertions(+), 996 deletions(-)
>
> diff --git a/gdb/aarch64-fbsd-tdep.c b/gdb/aarch64-fbsd-tdep.c
> index 39d193551059..95b2dcbd4c5b 100644
> --- a/gdb/aarch64-fbsd-tdep.c
> +++ b/gdb/aarch64-fbsd-tdep.c
> @@ -88,7 +88,7 @@ static const struct regcache_map_entry aarch64_fbsd_tls_regmap[] =
>
> static void
> aarch64_fbsd_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c
> index a321aee036a0..4d40069f0691 100644
> --- a/gdb/aarch64-linux-tdep.c
> +++ b/gdb/aarch64-linux-tdep.c
> @@ -284,7 +284,7 @@ aarch64_linux_restore_vreg (struct trad_frame_cache *cache, int num_regs,
>
> static void
> aarch64_linux_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
> index 07330356fdcb..828cd07b5fc8 100644
> --- a/gdb/aarch64-tdep.c
> +++ b/gdb/aarch64-tdep.c
> @@ -216,7 +216,7 @@ class instruction_reader : public abstract_instruction_reader
>
> static CORE_ADDR
> aarch64_frame_unmask_lr (aarch64_gdbarch_tdep *tdep,
> - frame_info_ptr this_frame, CORE_ADDR addr)
> + frame_info *this_frame, CORE_ADDR addr)
> {
> if (tdep->has_pauth ()
> && frame_unwind_register_unsigned (this_frame,
> @@ -927,7 +927,7 @@ aarch64_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
> cache CACHE. */
>
> static void
> -aarch64_scan_prologue (frame_info_ptr this_frame,
> +aarch64_scan_prologue (frame_info *this_frame,
> struct aarch64_prologue_cache *cache)
> {
> CORE_ADDR block_addr = get_frame_address_in_block (this_frame);
> @@ -981,7 +981,7 @@ aarch64_scan_prologue (frame_info_ptr this_frame,
> not available. */
>
> static void
> -aarch64_make_prologue_cache_1 (frame_info_ptr this_frame,
> +aarch64_make_prologue_cache_1 (frame_info *this_frame,
> struct aarch64_prologue_cache *cache)
> {
> CORE_ADDR unwound_fp;
> @@ -1016,7 +1016,7 @@ aarch64_make_prologue_cache_1 (frame_info_ptr this_frame,
> *THIS_CACHE. */
>
> static struct aarch64_prologue_cache *
> -aarch64_make_prologue_cache (frame_info_ptr this_frame, void **this_cache)
> +aarch64_make_prologue_cache (frame_info *this_frame, void **this_cache)
> {
> struct aarch64_prologue_cache *cache;
>
> @@ -1043,7 +1043,7 @@ aarch64_make_prologue_cache (frame_info_ptr this_frame, void **this_cache)
> /* Implement the "stop_reason" frame_unwind method. */
>
> static enum unwind_stop_reason
> -aarch64_prologue_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +aarch64_prologue_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct aarch64_prologue_cache *cache
> @@ -1069,7 +1069,7 @@ aarch64_prologue_frame_unwind_stop_reason (frame_info_ptr this_frame,
> PC and the caller's SP when we were called. */
>
> static void
> -aarch64_prologue_this_id (frame_info_ptr this_frame,
> +aarch64_prologue_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> struct aarch64_prologue_cache *cache
> @@ -1084,7 +1084,7 @@ aarch64_prologue_this_id (frame_info_ptr this_frame,
> /* Implement the "prev_register" frame_unwind method. */
>
> static struct value *
> -aarch64_prologue_prev_register (frame_info_ptr this_frame,
> +aarch64_prologue_prev_register (frame_info *this_frame,
> void **this_cache, int prev_regnum)
> {
> struct aarch64_prologue_cache *cache
> @@ -1150,7 +1150,7 @@ static frame_unwind aarch64_prologue_unwind =
> *THIS_CACHE. */
>
> static struct aarch64_prologue_cache *
> -aarch64_make_stub_cache (frame_info_ptr this_frame, void **this_cache)
> +aarch64_make_stub_cache (frame_info *this_frame, void **this_cache)
> {
> struct aarch64_prologue_cache *cache;
>
> @@ -1180,7 +1180,7 @@ aarch64_make_stub_cache (frame_info_ptr this_frame, void **this_cache)
> /* Implement the "stop_reason" frame_unwind method. */
>
> static enum unwind_stop_reason
> -aarch64_stub_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +aarch64_stub_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct aarch64_prologue_cache *cache
> @@ -1195,7 +1195,7 @@ aarch64_stub_frame_unwind_stop_reason (frame_info_ptr this_frame,
> /* Our frame ID for a stub frame is the current SP and LR. */
>
> static void
> -aarch64_stub_this_id (frame_info_ptr this_frame,
> +aarch64_stub_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> struct aarch64_prologue_cache *cache
> @@ -1211,7 +1211,7 @@ aarch64_stub_this_id (frame_info_ptr this_frame,
>
> static int
> aarch64_stub_unwind_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> CORE_ADDR addr_in_block;
> @@ -1242,7 +1242,7 @@ static frame_unwind aarch64_stub_unwind =
> /* Return the frame base address of *THIS_FRAME. */
>
> static CORE_ADDR
> -aarch64_normal_frame_base (frame_info_ptr this_frame, void **this_cache)
> +aarch64_normal_frame_base (frame_info *this_frame, void **this_cache)
> {
> struct aarch64_prologue_cache *cache
> = aarch64_make_prologue_cache (this_frame, this_cache);
> @@ -1263,7 +1263,7 @@ static frame_base aarch64_normal_base =
> *THIS_FRAME. */
>
> static struct value *
> -aarch64_dwarf2_prev_register (frame_info_ptr this_frame,
> +aarch64_dwarf2_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> gdbarch *arch = get_frame_arch (this_frame);
> @@ -1290,7 +1290,7 @@ static const unsigned char op_lit1 = DW_OP_lit1;
> static void
> aarch64_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> aarch64_gdbarch_tdep *tdep = gdbarch_tdep<aarch64_gdbarch_tdep> (gdbarch);
>
> @@ -2918,7 +2918,7 @@ aarch64_pseudo_write (struct gdbarch *gdbarch, struct regcache *regcache,
> /* Callback function for user_reg_add. */
>
> static struct value *
> -value_of_aarch64_user_reg (frame_info_ptr frame, const void *baton)
> +value_of_aarch64_user_reg (frame_info *frame, const void *baton)
> {
> const int *reg_p = (const int *) baton;
>
> diff --git a/gdb/alpha-linux-tdep.c b/gdb/alpha-linux-tdep.c
> index 3a6a9aea1603..bf75d2256fe5 100644
> --- a/gdb/alpha-linux-tdep.c
> +++ b/gdb/alpha-linux-tdep.c
> @@ -126,7 +126,7 @@ alpha_linux_pc_in_sigtramp (struct gdbarch *gdbarch,
> }
>
> static CORE_ADDR
> -alpha_linux_sigcontext_addr (frame_info_ptr this_frame)
> +alpha_linux_sigcontext_addr (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> CORE_ADDR pc;
> diff --git a/gdb/alpha-mdebug-tdep.c b/gdb/alpha-mdebug-tdep.c
> index 01f84f7fc3e9..1f270022ee98 100644
> --- a/gdb/alpha-mdebug-tdep.c
> +++ b/gdb/alpha-mdebug-tdep.c
> @@ -187,7 +187,7 @@ struct alpha_mdebug_unwind_cache
> and store the resulting register save locations in the structure. */
>
> static struct alpha_mdebug_unwind_cache *
> -alpha_mdebug_frame_unwind_cache (frame_info_ptr this_frame,
> +alpha_mdebug_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct alpha_mdebug_unwind_cache *info;
> @@ -264,7 +264,7 @@ alpha_mdebug_frame_unwind_cache (frame_info_ptr this_frame,
> frame. This will be used to create a new GDB frame struct. */
>
> static void
> -alpha_mdebug_frame_this_id (frame_info_ptr this_frame,
> +alpha_mdebug_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -277,7 +277,7 @@ alpha_mdebug_frame_this_id (frame_info_ptr this_frame,
> /* Retrieve the value of REGNUM in FRAME. Don't give up! */
>
> static struct value *
> -alpha_mdebug_frame_prev_register (frame_info_ptr this_frame,
> +alpha_mdebug_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct alpha_mdebug_unwind_cache *info
> @@ -308,7 +308,7 @@ alpha_mdebug_max_frame_size_exceeded (struct mdebug_extra_func_info *proc_desc)
>
> static int
> alpha_mdebug_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> CORE_ADDR pc = get_frame_address_in_block (this_frame);
> @@ -345,7 +345,7 @@ static const struct frame_unwind alpha_mdebug_frame_unwind =
> };
>
> static CORE_ADDR
> -alpha_mdebug_frame_base_address (frame_info_ptr this_frame,
> +alpha_mdebug_frame_base_address (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct alpha_mdebug_unwind_cache *info
> @@ -355,7 +355,7 @@ alpha_mdebug_frame_base_address (frame_info_ptr this_frame,
> }
>
> static CORE_ADDR
> -alpha_mdebug_frame_locals_address (frame_info_ptr this_frame,
> +alpha_mdebug_frame_locals_address (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct alpha_mdebug_unwind_cache *info
> @@ -365,7 +365,7 @@ alpha_mdebug_frame_locals_address (frame_info_ptr this_frame,
> }
>
> static CORE_ADDR
> -alpha_mdebug_frame_args_address (frame_info_ptr this_frame,
> +alpha_mdebug_frame_args_address (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct alpha_mdebug_unwind_cache *info
> @@ -382,7 +382,7 @@ static const struct frame_base alpha_mdebug_frame_base = {
> };
>
> static const struct frame_base *
> -alpha_mdebug_frame_base_sniffer (frame_info_ptr this_frame)
> +alpha_mdebug_frame_base_sniffer (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_address_in_block (this_frame);
> struct mdebug_extra_func_info *proc_desc;
> diff --git a/gdb/alpha-netbsd-tdep.c b/gdb/alpha-netbsd-tdep.c
> index ae2deca2c85e..23a7fea06292 100644
> --- a/gdb/alpha-netbsd-tdep.c
> +++ b/gdb/alpha-netbsd-tdep.c
> @@ -235,7 +235,7 @@ alphanbsd_pc_in_sigtramp (struct gdbarch *gdbarch,
> }
>
> static CORE_ADDR
> -alphanbsd_sigcontext_addr (frame_info_ptr frame)
> +alphanbsd_sigcontext_addr (frame_info *frame)
> {
> /* FIXME: This is not correct for all versions of NetBSD/alpha.
> We will probably need to disassemble the trampoline to figure
> diff --git a/gdb/alpha-obsd-tdep.c b/gdb/alpha-obsd-tdep.c
> index 41c376c65030..c01f1ff0c9c0 100644
> --- a/gdb/alpha-obsd-tdep.c
> +++ b/gdb/alpha-obsd-tdep.c
> @@ -69,7 +69,7 @@ alphaobsd_pc_in_sigtramp (struct gdbarch *gdbarch,
> }
>
> static CORE_ADDR
> -alphaobsd_sigcontext_addr (frame_info_ptr this_frame)
> +alphaobsd_sigcontext_addr (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> CORE_ADDR pc = get_frame_pc (this_frame);
> diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
> index 99e51b8afec1..225a8a0d02a2 100644
> --- a/gdb/alpha-tdep.c
> +++ b/gdb/alpha-tdep.c
> @@ -234,7 +234,7 @@ alpha_convert_register_p (struct gdbarch *gdbarch, int regno,
> }
>
> static int
> -alpha_register_to_value (frame_info_ptr frame, int regnum,
> +alpha_register_to_value (frame_info *frame, int regnum,
> struct type *valtype, gdb_byte *out,
> int *optimizedp, int *unavailablep)
> {
> @@ -871,7 +871,7 @@ struct alpha_sigtramp_unwind_cache
> };
>
> static struct alpha_sigtramp_unwind_cache *
> -alpha_sigtramp_frame_unwind_cache (frame_info_ptr this_frame,
> +alpha_sigtramp_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct alpha_sigtramp_unwind_cache *info;
> @@ -912,7 +912,7 @@ alpha_sigtramp_register_address (struct gdbarch *gdbarch,
> frame. This will be used to create a new GDB frame struct. */
>
> static void
> -alpha_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +alpha_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -954,7 +954,7 @@ alpha_sigtramp_frame_this_id (frame_info_ptr this_frame,
> /* Retrieve the value of REGNUM in FRAME. Don't give up! */
>
> static struct value *
> -alpha_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +alpha_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct alpha_sigtramp_unwind_cache *info
> @@ -979,7 +979,7 @@ alpha_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> alpha_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -1221,7 +1221,7 @@ alpha_heuristic_analyze_probing_loop (struct gdbarch *gdbarch, CORE_ADDR *pc,
> }
>
> static struct alpha_heuristic_unwind_cache *
> -alpha_heuristic_frame_unwind_cache (frame_info_ptr this_frame,
> +alpha_heuristic_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache,
> CORE_ADDR start_pc)
> {
> @@ -1398,7 +1398,7 @@ alpha_heuristic_frame_unwind_cache (frame_info_ptr this_frame,
> frame. This will be used to create a new GDB frame struct. */
>
> static void
> -alpha_heuristic_frame_this_id (frame_info_ptr this_frame,
> +alpha_heuristic_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -1411,7 +1411,7 @@ alpha_heuristic_frame_this_id (frame_info_ptr this_frame,
> /* Retrieve the value of REGNUM in FRAME. Don't give up! */
>
> static struct value *
> -alpha_heuristic_frame_prev_register (frame_info_ptr this_frame,
> +alpha_heuristic_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct alpha_heuristic_unwind_cache *info
> @@ -1438,7 +1438,7 @@ static const struct frame_unwind alpha_heuristic_frame_unwind =
> };
>
> static CORE_ADDR
> -alpha_heuristic_frame_base_address (frame_info_ptr this_frame,
> +alpha_heuristic_frame_base_address (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct alpha_heuristic_unwind_cache *info
> diff --git a/gdb/alpha-tdep.h b/gdb/alpha-tdep.h
> index be71b313a0a0..9d147d4dce65 100644
> --- a/gdb/alpha-tdep.h
> +++ b/gdb/alpha-tdep.h
> @@ -81,7 +81,7 @@ struct alpha_gdbarch_tdep : gdbarch_tdep_base
>
> /* Translate a signal handler stack base address into the address of
> the sigcontext structure for that signal handler. */
> - CORE_ADDR (*sigcontext_addr) (frame_info_ptr) = nullptr;
> + CORE_ADDR (*sigcontext_addr) (frame_info *) = nullptr;
>
> /* Does the PC fall in a signal trampoline. */
> /* NOTE: cagney/2004-04-30: Do not copy/clone this code. Instead
> diff --git a/gdb/amd64-darwin-tdep.c b/gdb/amd64-darwin-tdep.c
> index 86819cf148f8..633f2669819e 100644
> --- a/gdb/amd64-darwin-tdep.c
> +++ b/gdb/amd64-darwin-tdep.c
> @@ -75,7 +75,7 @@ const int amd64_darwin_thread_state_num_regs =
> address of the associated sigcontext structure. */
>
> static CORE_ADDR
> -amd64_darwin_sigcontext_addr (frame_info_ptr this_frame)
> +amd64_darwin_sigcontext_addr (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> diff --git a/gdb/amd64-fbsd-tdep.c b/gdb/amd64-fbsd-tdep.c
> index 960bb0b5942f..206f8674ecee 100644
> --- a/gdb/amd64-fbsd-tdep.c
> +++ b/gdb/amd64-fbsd-tdep.c
> @@ -169,7 +169,7 @@ const struct regset amd64_fbsd_segbases_regset =
>
> static void
> amd64_fbsd_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
> index 07c1669f91e0..2f4b0324c5dd 100644
> --- a/gdb/amd64-linux-tdep.c
> +++ b/gdb/amd64-linux-tdep.c
> @@ -133,7 +133,7 @@ static const gdb_byte amd64_x32_linux_sigtramp_code[] =
> the routine. Otherwise, return 0. */
>
> static CORE_ADDR
> -amd64_linux_sigtramp_start (frame_info_ptr this_frame)
> +amd64_linux_sigtramp_start (frame_info *this_frame)
> {
> struct gdbarch *gdbarch;
> const gdb_byte *sigtramp_code;
> @@ -175,7 +175,7 @@ amd64_linux_sigtramp_start (frame_info_ptr this_frame)
> routine. */
>
> static int
> -amd64_linux_sigtramp_p (frame_info_ptr this_frame)
> +amd64_linux_sigtramp_p (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> const char *name;
> @@ -201,7 +201,7 @@ amd64_linux_sigtramp_p (frame_info_ptr this_frame)
> address of the associated sigcontext structure. */
>
> static CORE_ADDR
> -amd64_linux_sigcontext_addr (frame_info_ptr this_frame)
> +amd64_linux_sigcontext_addr (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> diff --git a/gdb/amd64-netbsd-tdep.c b/gdb/amd64-netbsd-tdep.c
> index ec6906c12fb6..ded9d36fa52e 100644
> --- a/gdb/amd64-netbsd-tdep.c
> +++ b/gdb/amd64-netbsd-tdep.c
> @@ -35,7 +35,7 @@
> routine. */
>
> static int
> -amd64nbsd_sigtramp_p (frame_info_ptr this_frame)
> +amd64nbsd_sigtramp_p (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> const char *name;
> @@ -48,7 +48,7 @@ amd64nbsd_sigtramp_p (frame_info_ptr this_frame)
> return the address of the associated mcontext structure. */
>
> static CORE_ADDR
> -amd64nbsd_mcontext_addr (frame_info_ptr this_frame)
> +amd64nbsd_mcontext_addr (frame_info *this_frame)
> {
> CORE_ADDR addr;
>
> diff --git a/gdb/amd64-obsd-tdep.c b/gdb/amd64-obsd-tdep.c
> index 22cf7f5d6c24..b30342bfb5d8 100644
> --- a/gdb/amd64-obsd-tdep.c
> +++ b/gdb/amd64-obsd-tdep.c
> @@ -45,7 +45,7 @@ static const int amd64obsd_page_size = 4096;
> routine. */
>
> static int
> -amd64obsd_sigtramp_p (frame_info_ptr this_frame)
> +amd64obsd_sigtramp_p (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> CORE_ADDR start_pc = (pc & ~(amd64obsd_page_size - 1));
> @@ -98,7 +98,7 @@ amd64obsd_sigtramp_p (frame_info_ptr this_frame)
> address of the associated sigcontext structure. */
>
> static CORE_ADDR
> -amd64obsd_sigcontext_addr (frame_info_ptr this_frame)
> +amd64obsd_sigcontext_addr (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> ULONGEST offset = (pc & (amd64obsd_page_size - 1));
> @@ -315,7 +315,7 @@ amd64obsd_collect_uthread (const struct regcache *regcache,
> #define amd64obsd_tf_reg_offset amd64obsd_sc_reg_offset
>
> static struct trad_frame_cache *
> -amd64obsd_trapframe_cache (frame_info_ptr this_frame, void **this_cache)
> +amd64obsd_trapframe_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -362,7 +362,7 @@ amd64obsd_trapframe_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -amd64obsd_trapframe_this_id (frame_info_ptr this_frame,
> +amd64obsd_trapframe_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> struct trad_frame_cache *cache =
> @@ -372,7 +372,7 @@ amd64obsd_trapframe_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -amd64obsd_trapframe_prev_register (frame_info_ptr this_frame,
> +amd64obsd_trapframe_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct trad_frame_cache *cache =
> @@ -383,7 +383,7 @@ amd64obsd_trapframe_prev_register (frame_info_ptr this_frame,
>
> static int
> amd64obsd_trapframe_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> ULONGEST cs;
> diff --git a/gdb/amd64-sol2-tdep.c b/gdb/amd64-sol2-tdep.c
> index f62240fcd55f..254a86833b68 100644
> --- a/gdb/amd64-sol2-tdep.c
> +++ b/gdb/amd64-sol2-tdep.c
> @@ -67,7 +67,7 @@ static int amd64_sol2_gregset_reg_offset[] = {
> 'mcontext_t' that contains the saved set of machine registers. */
>
> static CORE_ADDR
> -amd64_sol2_mcontext_addr (frame_info_ptr this_frame)
> +amd64_sol2_mcontext_addr (frame_info *this_frame)
> {
> CORE_ADDR sp, ucontext_addr;
>
> diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
> index bbfc509319cb..96070d9ae635 100644
> --- a/gdb/amd64-tdep.c
> +++ b/gdb/amd64-tdep.c
> @@ -2560,7 +2560,7 @@ amd64_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
> /* Normal frames. */
>
> static void
> -amd64_frame_cache_1 (frame_info_ptr this_frame,
> +amd64_frame_cache_1 (frame_info *this_frame,
> struct amd64_frame_cache *cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2629,7 +2629,7 @@ amd64_frame_cache_1 (frame_info_ptr this_frame,
> }
>
> static struct amd64_frame_cache *
> -amd64_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +amd64_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct amd64_frame_cache *cache;
>
> @@ -2653,7 +2653,7 @@ amd64_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static enum unwind_stop_reason
> -amd64_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +amd64_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct amd64_frame_cache *cache =
> @@ -2670,7 +2670,7 @@ amd64_frame_unwind_stop_reason (frame_info_ptr this_frame,
> }
>
> static void
> -amd64_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +amd64_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct amd64_frame_cache *cache =
> @@ -2688,7 +2688,7 @@ amd64_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -amd64_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +amd64_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2742,7 +2742,7 @@ amd64_gen_return_address (struct gdbarch *gdbarch,
> on both platforms. */
>
> static struct amd64_frame_cache *
> -amd64_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +amd64_sigtramp_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> i386_gdbarch_tdep *tdep = gdbarch_tdep<i386_gdbarch_tdep> (gdbarch);
> @@ -2782,7 +2782,7 @@ amd64_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static enum unwind_stop_reason
> -amd64_sigtramp_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +amd64_sigtramp_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct amd64_frame_cache *cache =
> @@ -2795,7 +2795,7 @@ amd64_sigtramp_frame_unwind_stop_reason (frame_info_ptr this_frame,
> }
>
> static void
> -amd64_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +amd64_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> struct amd64_frame_cache *cache =
> @@ -2813,7 +2813,7 @@ amd64_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -amd64_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +amd64_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> /* Make sure we've initialized the cache. */
> @@ -2824,7 +2824,7 @@ amd64_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> amd64_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> gdbarch *arch = get_frame_arch (this_frame);
> @@ -2866,7 +2866,7 @@ static const struct frame_unwind amd64_sigtramp_frame_unwind =
> \f
>
> static CORE_ADDR
> -amd64_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +amd64_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct amd64_frame_cache *cache =
> amd64_frame_cache (this_frame, this_cache);
> @@ -2911,7 +2911,7 @@ amd64_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
>
> static int
> amd64_epilogue_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> if (frame_relative_level (this_frame) == 0)
> @@ -2922,7 +2922,7 @@ amd64_epilogue_frame_sniffer (const struct frame_unwind *self,
> }
>
> static struct amd64_frame_cache *
> -amd64_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +amd64_epilogue_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -2963,7 +2963,7 @@ amd64_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static enum unwind_stop_reason
> -amd64_epilogue_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +amd64_epilogue_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct amd64_frame_cache *cache
> @@ -2976,7 +2976,7 @@ amd64_epilogue_frame_unwind_stop_reason (frame_info_ptr this_frame,
> }
>
> static void
> -amd64_epilogue_frame_this_id (frame_info_ptr this_frame,
> +amd64_epilogue_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -3001,7 +3001,7 @@ static const struct frame_unwind amd64_epilogue_frame_unwind =
> };
>
> static struct frame_id
> -amd64_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +amd64_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> CORE_ADDR fp;
>
> diff --git a/gdb/amd64-tdep.h b/gdb/amd64-tdep.h
> index df85c60c19c5..be328e0b55e1 100644
> --- a/gdb/amd64-tdep.h
> +++ b/gdb/amd64-tdep.h
> @@ -22,7 +22,6 @@
> #define AMD64_TDEP_H
>
> struct gdbarch;
> -class frame_info_ptr;
> struct regcache;
>
> #include "i386-tdep.h"
> diff --git a/gdb/amd64-windows-tdep.c b/gdb/amd64-windows-tdep.c
> index 0cc5feec2a45..6c98fa121098 100644
> --- a/gdb/amd64-windows-tdep.c
> +++ b/gdb/amd64-windows-tdep.c
> @@ -513,7 +513,7 @@ pc_in_range (CORE_ADDR pc, const struct amd64_windows_frame_cache *cache)
> Return 1 if an epilogue sequence was recognized, 0 otherwise. */
>
> static int
> -amd64_windows_frame_decode_epilogue (frame_info_ptr this_frame,
> +amd64_windows_frame_decode_epilogue (frame_info *this_frame,
> struct amd64_windows_frame_cache *cache)
> {
> /* According to MSDN an epilogue "must consist of either an add RSP,constant
> @@ -693,7 +693,7 @@ amd64_windows_frame_decode_epilogue (frame_info_ptr this_frame,
> /* Decode and execute unwind insns at UNWIND_INFO. */
>
> static void
> -amd64_windows_frame_decode_insns (frame_info_ptr this_frame,
> +amd64_windows_frame_decode_insns (frame_info *this_frame,
> struct amd64_windows_frame_cache *cache,
> CORE_ADDR unwind_info)
> {
> @@ -1073,7 +1073,7 @@ amd64_windows_find_unwind_info (struct gdbarch *gdbarch, CORE_ADDR pc,
> for THIS_FRAME. */
>
> static struct amd64_windows_frame_cache *
> -amd64_windows_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +amd64_windows_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -1118,7 +1118,7 @@ amd64_windows_frame_cache (frame_info_ptr this_frame, void **this_cache)
> using the standard Windows x64 SEH info. */
>
> static struct value *
> -amd64_windows_frame_prev_register (frame_info_ptr this_frame,
> +amd64_windows_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -1164,7 +1164,7 @@ amd64_windows_frame_prev_register (frame_info_ptr this_frame,
> the standard Windows x64 SEH info. */
>
> static void
> -amd64_windows_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +amd64_windows_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct amd64_windows_frame_cache *cache =
> diff --git a/gdb/arc-linux-tdep.c b/gdb/arc-linux-tdep.c
> index da7f4758c195..81091d135a92 100644
> --- a/gdb/arc-linux-tdep.c
> +++ b/gdb/arc-linux-tdep.c
> @@ -159,7 +159,7 @@ static const int arc_linux_core_reg_offsets[] = {
> Returns TRUE if this is a sigtramp frame. */
>
> static bool
> -arc_linux_is_sigtramp (frame_info_ptr this_frame)
> +arc_linux_is_sigtramp (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> CORE_ADDR pc = get_frame_pc (this_frame);
> @@ -257,7 +257,7 @@ arc_linux_is_sigtramp (frame_info_ptr this_frame)
> etc) in GDB hardcode values. */
>
> static CORE_ADDR
> -arc_linux_sigcontext_addr (frame_info_ptr this_frame)
> +arc_linux_sigcontext_addr (frame_info *this_frame)
> {
> const int ucontext_offset = 0x80;
> const int sigcontext_offset = 0x14;
> diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c
> index 3ab0930bb295..432b3cca7dd7 100644
> --- a/gdb/arc-tdep.c
> +++ b/gdb/arc-tdep.c
> @@ -1061,7 +1061,7 @@ arc_return_value (struct gdbarch *gdbarch, struct value *function,
> frame pointer. */
>
> static CORE_ADDR
> -arc_frame_base_address (frame_info_ptr this_frame, void **prologue_cache)
> +arc_frame_base_address (frame_info *this_frame, void **prologue_cache)
> {
> return (CORE_ADDR) get_frame_register_unsigned (this_frame, ARC_FP_REGNUM);
> }
> @@ -1642,7 +1642,7 @@ arc_print_frame_cache (struct gdbarch *gdbarch, const char *message,
> /* Frame unwinder for normal frames. */
>
> static struct arc_frame_cache *
> -arc_make_frame_cache (frame_info_ptr this_frame)
> +arc_make_frame_cache (frame_info *this_frame)
> {
> arc_debug_printf ("called");
>
> @@ -1709,7 +1709,7 @@ arc_make_frame_cache (frame_info_ptr this_frame)
> /* Implement the "this_id" frame_unwind method. */
>
> static void
> -arc_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +arc_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> arc_debug_printf ("called");
> @@ -1754,7 +1754,7 @@ arc_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> /* Implement the "prev_register" frame_unwind method. */
>
> static struct value *
> -arc_frame_prev_register (frame_info_ptr this_frame,
> +arc_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> if (*this_cache == NULL)
> @@ -1791,7 +1791,7 @@ arc_frame_prev_register (frame_info_ptr this_frame,
> static void
> arc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr info)
> + frame_info *info)
> {
> if (regnum == gdbarch_pc_regnum (gdbarch))
> /* The return address column. */
> @@ -1805,7 +1805,7 @@ arc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> from within signal handlers. */
>
> static struct arc_frame_cache *
> -arc_make_sigtramp_frame_cache (frame_info_ptr this_frame)
> +arc_make_sigtramp_frame_cache (frame_info *this_frame)
> {
> arc_debug_printf ("called");
>
> @@ -1844,7 +1844,7 @@ arc_make_sigtramp_frame_cache (frame_info_ptr this_frame)
> frames. */
>
> static void
> -arc_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +arc_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> arc_debug_printf ("called");
> @@ -1863,7 +1863,7 @@ arc_sigtramp_frame_this_id (frame_info_ptr this_frame,
> /* Get a register from a signal handler frame. */
>
> static struct value *
> -arc_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +arc_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> arc_debug_printf ("regnum = %d", regnum);
> @@ -1881,7 +1881,7 @@ arc_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> arc_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> arc_debug_printf ("called");
> diff --git a/gdb/arc-tdep.h b/gdb/arc-tdep.h
> index 0a7628352953..16e9499b1609 100644
> --- a/gdb/arc-tdep.h
> +++ b/gdb/arc-tdep.h
> @@ -131,10 +131,10 @@ struct arc_gdbarch_tdep : gdbarch_tdep_base
> bool has_hw_loops = false;
>
> /* Detect sigtramp. */
> - bool (*is_sigtramp) (frame_info_ptr) = nullptr;
> + bool (*is_sigtramp) (frame_info *) = nullptr;
>
> /* Get address of sigcontext for sigtramp. */
> - CORE_ADDR (*sigcontext_addr) (frame_info_ptr) = nullptr;
> + CORE_ADDR (*sigcontext_addr) (frame_info *) = nullptr;
>
> /* Offset of registers in `struct sigcontext'. */
> const int *sc_reg_offset = nullptr;
> diff --git a/gdb/arm-fbsd-tdep.c b/gdb/arm-fbsd-tdep.c
> index 75ee08eba506..c459f9f44c26 100644
> --- a/gdb/arm-fbsd-tdep.c
> +++ b/gdb/arm-fbsd-tdep.c
> @@ -105,7 +105,7 @@ static const struct regcache_map_entry arm_fbsd_tls_regmap[] =
>
> static void
> arm_fbsd_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
> index 27aca0c39e6b..58e8cc9686b2 100644
> --- a/gdb/arm-linux-tdep.c
> +++ b/gdb/arm-linux-tdep.c
> @@ -277,7 +277,7 @@ static struct arm_get_next_pcs_ops arm_linux_get_next_pcs_ops = {
> };
>
> static void
> -arm_linux_sigtramp_cache (frame_info_ptr this_frame,
> +arm_linux_sigtramp_cache (frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func, int regs_offset)
> {
> @@ -300,7 +300,7 @@ arm_linux_sigtramp_cache (frame_info_ptr this_frame,
> /* See arm-linux.h for stack layout details. */
> static void
> arm_linux_sigreturn_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> @@ -320,7 +320,7 @@ arm_linux_sigreturn_init (const struct tramp_frame *self,
>
> static void
> arm_linux_rt_sigreturn_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> @@ -343,7 +343,7 @@ arm_linux_rt_sigreturn_init (const struct tramp_frame *self,
>
> static void
> arm_linux_restart_syscall_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/arm-obsd-tdep.c b/gdb/arm-obsd-tdep.c
> index 697f07561129..1e53579af180 100644
> --- a/gdb/arm-obsd-tdep.c
> +++ b/gdb/arm-obsd-tdep.c
> @@ -30,7 +30,7 @@
>
> static void
> armobsd_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
> index 6f02f04b5cb2..ac1f3eadeb5c 100644
> --- a/gdb/arm-tdep.c
> +++ b/gdb/arm-tdep.c
> @@ -338,7 +338,7 @@ arm_cache_init (struct arm_prologue_cache *cache, struct gdbarch *gdbarch)
> /* Similar to the previous function, but extracts GDBARCH from FRAME. */
>
> static void
> -arm_cache_init (struct arm_prologue_cache *cache, frame_info_ptr frame)
> +arm_cache_init (struct arm_prologue_cache *cache, frame_info *frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
> arm_gdbarch_tdep *tdep = gdbarch_tdep<arm_gdbarch_tdep> (gdbarch);
> @@ -627,7 +627,7 @@ arm_is_thumb (struct regcache *regcache)
> frame. */
>
> int
> -arm_frame_is_thumb (frame_info_ptr frame)
> +arm_frame_is_thumb (frame_info *frame)
> {
> /* Check the architecture of FRAME. */
> struct gdbarch *gdbarch = get_frame_arch (frame);
> @@ -767,7 +767,7 @@ arm_pc_is_thumb (struct gdbarch *gdbarch, CORE_ADDR memaddr)
> a symbol table we will not reach here, so it still may not be
> displayed in the mode it will be executed). */
> if (target_has_registers ())
> - return arm_frame_is_thumb (get_current_frame ());
> + return arm_frame_is_thumb (get_current_frame ().get ());
>
> /* Otherwise we're out of luck; we assume ARM. */
> return 0;
> @@ -2199,7 +2199,7 @@ arm_analyze_prologue (struct gdbarch *gdbarch,
> }
>
> static void
> -arm_scan_prologue (frame_info_ptr this_frame,
> +arm_scan_prologue (frame_info *this_frame,
> struct arm_prologue_cache *cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2296,7 +2296,7 @@ arm_scan_prologue (frame_info_ptr this_frame,
> }
>
> static struct arm_prologue_cache *
> -arm_make_prologue_cache (frame_info_ptr this_frame)
> +arm_make_prologue_cache (frame_info *this_frame)
> {
> int reg;
> struct arm_prologue_cache *cache;
> @@ -2330,7 +2330,7 @@ arm_make_prologue_cache (frame_info_ptr this_frame)
> /* Implementation of the stop_reason hook for arm_prologue frames. */
>
> static enum unwind_stop_reason
> -arm_prologue_unwind_stop_reason (frame_info_ptr this_frame,
> +arm_prologue_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct arm_prologue_cache *cache;
> @@ -2358,7 +2358,7 @@ arm_prologue_unwind_stop_reason (frame_info_ptr this_frame,
> and the caller's SP when we were called. */
>
> static void
> -arm_prologue_this_id (frame_info_ptr this_frame,
> +arm_prologue_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -2386,7 +2386,7 @@ arm_prologue_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -arm_prologue_prev_register (frame_info_ptr this_frame,
> +arm_prologue_prev_register (frame_info *this_frame,
> void **this_cache,
> int prev_regnum)
> {
> @@ -2782,7 +2782,7 @@ arm_find_exidx_entry (CORE_ADDR memaddr, CORE_ADDR *start)
> for the ARM Architecture" document. */
>
> static struct arm_prologue_cache *
> -arm_exidx_fill_cache (frame_info_ptr this_frame, gdb_byte *entry)
> +arm_exidx_fill_cache (frame_info *this_frame, gdb_byte *entry)
> {
> CORE_ADDR vsp = 0;
> int vsp_valid = 0;
> @@ -3080,7 +3080,7 @@ arm_exidx_fill_cache (frame_info_ptr this_frame, gdb_byte *entry)
>
> static int
> arm_exidx_unwind_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -3179,7 +3179,7 @@ struct frame_unwind arm_exidx_unwind = {
> };
>
> static struct arm_prologue_cache *
> -arm_make_epilogue_frame_cache (frame_info_ptr this_frame)
> +arm_make_epilogue_frame_cache (frame_info *this_frame)
> {
> struct arm_prologue_cache *cache;
> int reg;
> @@ -3211,7 +3211,7 @@ arm_make_epilogue_frame_cache (frame_info_ptr this_frame)
> 'struct frame_uwnind' for epilogue unwinder. */
>
> static void
> -arm_epilogue_frame_this_id (frame_info_ptr this_frame,
> +arm_epilogue_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -3239,7 +3239,7 @@ arm_epilogue_frame_this_id (frame_info_ptr this_frame,
> 'struct frame_uwnind' for epilogue unwinder. */
>
> static struct value *
> -arm_epilogue_frame_prev_register (frame_info_ptr this_frame,
> +arm_epilogue_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> if (*this_cache == NULL)
> @@ -3258,7 +3258,7 @@ static int thumb_stack_frame_destroyed_p (struct gdbarch *gdbarch,
>
> static int
> arm_epilogue_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> if (frame_relative_level (this_frame) == 0)
> @@ -3315,7 +3315,7 @@ static const struct frame_unwind arm_epilogue_frame_unwind =
> The trampoline 'bx r2' doesn't belong to main. */
>
> static CORE_ADDR
> -arm_skip_bx_reg (frame_info_ptr frame, CORE_ADDR pc)
> +arm_skip_bx_reg (frame_info *frame, CORE_ADDR pc)
> {
> /* The heuristics of recognizing such trampoline is that FRAME is
> executing in Thumb mode and the instruction on PC is 'bx Rm'. */
> @@ -3347,7 +3347,7 @@ arm_skip_bx_reg (frame_info_ptr frame, CORE_ADDR pc)
> }
>
> static struct arm_prologue_cache *
> -arm_make_stub_cache (frame_info_ptr this_frame)
> +arm_make_stub_cache (frame_info *this_frame)
> {
> struct arm_prologue_cache *cache;
>
> @@ -3366,7 +3366,7 @@ arm_make_stub_cache (frame_info_ptr this_frame)
> /* Our frame ID for a stub frame is the current SP and LR. */
>
> static void
> -arm_stub_this_id (frame_info_ptr this_frame,
> +arm_stub_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -3384,7 +3384,7 @@ arm_stub_this_id (frame_info_ptr this_frame,
>
> static int
> arm_stub_unwind_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> CORE_ADDR addr_in_block;
> @@ -3422,7 +3422,7 @@ struct frame_unwind arm_stub_unwind = {
> returned. */
>
> static struct arm_prologue_cache *
> -arm_m_exception_cache (frame_info_ptr this_frame)
> +arm_m_exception_cache (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> arm_gdbarch_tdep *tdep = gdbarch_tdep<arm_gdbarch_tdep> (gdbarch);
> @@ -3808,7 +3808,7 @@ arm_m_exception_cache (frame_info_ptr this_frame)
> /* Implementation of the stop_reason hook for arm_m_exception frames. */
>
> static enum unwind_stop_reason
> -arm_m_exception_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +arm_m_exception_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct arm_prologue_cache *cache;
> @@ -3830,7 +3830,7 @@ arm_m_exception_frame_unwind_stop_reason (frame_info_ptr this_frame,
> 'struct frame_uwnind'. */
>
> static void
> -arm_m_exception_this_id (frame_info_ptr this_frame,
> +arm_m_exception_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -3851,7 +3851,7 @@ arm_m_exception_this_id (frame_info_ptr this_frame,
> 'struct frame_uwnind'. */
>
> static struct value *
> -arm_m_exception_prev_register (frame_info_ptr this_frame,
> +arm_m_exception_prev_register (frame_info *this_frame,
> void **this_cache,
> int prev_regnum)
> {
> @@ -3916,7 +3916,7 @@ arm_m_exception_prev_register (frame_info_ptr this_frame,
>
> static int
> arm_m_exception_unwind_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -3944,7 +3944,7 @@ struct frame_unwind arm_m_exception_unwind =
> };
>
> static CORE_ADDR
> -arm_normal_frame_base (frame_info_ptr this_frame, void **this_cache)
> +arm_normal_frame_base (frame_info *this_frame, void **this_cache)
> {
> struct arm_prologue_cache *cache;
>
> @@ -3965,7 +3965,7 @@ struct frame_base arm_normal_base = {
> };
>
> static struct value *
> -arm_dwarf2_prev_register (frame_info_ptr this_frame, void **this_cache,
> +arm_dwarf2_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct gdbarch * gdbarch = get_frame_arch (this_frame);
> @@ -5191,7 +5191,7 @@ static const unsigned char op_lit0 = DW_OP_lit0;
> static void
> arm_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> arm_gdbarch_tdep *tdep = gdbarch_tdep<arm_gdbarch_tdep> (gdbarch);
>
> @@ -9312,7 +9312,7 @@ arm_skip_stub (frame_info_ptr frame, CORE_ADDR pc)
> {
> /* Trampoline 'bx reg' doesn't belong to any functions. Do the
> check here. */
> - start_addr = arm_skip_bx_reg (frame, pc);
> + start_addr = arm_skip_bx_reg (frame.get (), pc);
> if (start_addr != 0)
> return start_addr;
>
> @@ -9850,7 +9850,7 @@ arm_pseudo_write (struct gdbarch *gdbarch, struct regcache *regcache,
> }
>
> static struct value *
> -value_of_arm_user_reg (frame_info_ptr frame, const void *baton)
> +value_of_arm_user_reg (frame_info *frame, const void *baton)
> {
> const int *reg_p = (const int *) baton;
> return value_of_register (*reg_p, frame);
> diff --git a/gdb/arm-tdep.h b/gdb/arm-tdep.h
> index bcd7e08b7cee..eee6cc985e14 100644
> --- a/gdb/arm-tdep.h
> +++ b/gdb/arm-tdep.h
> @@ -292,7 +292,7 @@ int arm_get_next_pcs_is_thumb (struct arm_get_next_pcs *self);
>
> std::vector<CORE_ADDR> arm_software_single_step (struct regcache *);
> int arm_is_thumb (struct regcache *regcache);
> -int arm_frame_is_thumb (frame_info_ptr frame);
> +int arm_frame_is_thumb (frame_info *frame);
>
> extern void arm_displaced_step_fixup (struct gdbarch *,
> displaced_step_copy_insn_closure *,
> diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c
> index bac0b3f5008b..72a4663a01d3 100644
> --- a/gdb/avr-tdep.c
> +++ b/gdb/avr-tdep.c
> @@ -979,7 +979,7 @@ avr_return_value (struct gdbarch *gdbarch, struct value *function,
> for it IS the sp for the next frame. */
>
> static struct avr_unwind_cache *
> -avr_frame_unwind_cache (frame_info_ptr this_frame,
> +avr_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> CORE_ADDR start_pc, current_pc;
> @@ -1059,7 +1059,7 @@ avr_frame_unwind_cache (frame_info_ptr this_frame,
> }
>
> static CORE_ADDR
> -avr_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +avr_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> ULONGEST pc;
>
> @@ -1069,7 +1069,7 @@ avr_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> }
>
> static CORE_ADDR
> -avr_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +avr_unwind_sp (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> ULONGEST sp;
>
> @@ -1082,7 +1082,7 @@ avr_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> frame. This will be used to create a new GDB frame struct. */
>
> static void
> -avr_frame_this_id (frame_info_ptr this_frame,
> +avr_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -1107,7 +1107,7 @@ avr_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -avr_frame_prev_register (frame_info_ptr this_frame,
> +avr_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct avr_unwind_cache *info
> @@ -1166,7 +1166,7 @@ static const struct frame_unwind avr_frame_unwind = {
> };
>
> static CORE_ADDR
> -avr_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +avr_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct avr_unwind_cache *info
> = avr_frame_unwind_cache (this_frame, this_cache);
> @@ -1186,7 +1186,7 @@ static const struct frame_base avr_frame_base = {
> save_dummy_frame_tos(), and the PC match the dummy frame's breakpoint. */
>
> static struct frame_id
> -avr_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +avr_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> ULONGEST base;
>
> diff --git a/gdb/bfin-linux-tdep.c b/gdb/bfin-linux-tdep.c
> index 873cb017e82b..ecfe336eda76 100644
> --- a/gdb/bfin-linux-tdep.c
> +++ b/gdb/bfin-linux-tdep.c
> @@ -95,7 +95,7 @@ static const int bfin_linux_sigcontext_reg_offset[BFIN_NUM_REGS] =
>
> static void
> bfin_linux_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/bfin-tdep.c b/gdb/bfin-tdep.c
> index f751e2782112..781699284301 100644
> --- a/gdb/bfin-tdep.c
> +++ b/gdb/bfin-tdep.c
> @@ -288,7 +288,7 @@ bfin_alloc_frame_cache (void)
> }
>
> static struct bfin_frame_cache *
> -bfin_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +bfin_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct bfin_frame_cache *cache;
> int i;
> @@ -340,7 +340,7 @@ bfin_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -bfin_frame_this_id (frame_info_ptr this_frame,
> +bfin_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -355,7 +355,7 @@ bfin_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -bfin_frame_prev_register (frame_info_ptr this_frame,
> +bfin_frame_prev_register (frame_info *this_frame,
> void **this_cache,
> int regnum)
> {
> @@ -724,7 +724,7 @@ bfin_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
> }
>
> static CORE_ADDR
> -bfin_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +bfin_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct bfin_frame_cache *cache = bfin_frame_cache (this_frame, this_cache);
>
> @@ -732,7 +732,7 @@ bfin_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> }
>
> static CORE_ADDR
> -bfin_frame_local_address (frame_info_ptr this_frame, void **this_cache)
> +bfin_frame_local_address (frame_info *this_frame, void **this_cache)
> {
> struct bfin_frame_cache *cache = bfin_frame_cache (this_frame, this_cache);
>
> @@ -740,7 +740,7 @@ bfin_frame_local_address (frame_info_ptr this_frame, void **this_cache)
> }
>
> static CORE_ADDR
> -bfin_frame_args_address (frame_info_ptr this_frame, void **this_cache)
> +bfin_frame_args_address (frame_info *this_frame, void **this_cache)
> {
> struct bfin_frame_cache *cache = bfin_frame_cache (this_frame, this_cache);
>
> diff --git a/gdb/blockframe.c b/gdb/blockframe.c
> index 49bafa34b608..35bfa754f03c 100644
> --- a/gdb/blockframe.c
> +++ b/gdb/blockframe.c
> @@ -52,7 +52,7 @@
> slot instruction. */
>
> const struct block *
> -get_frame_block (frame_info_ptr frame, CORE_ADDR *addr_in_block)
> +get_frame_block (frame_info *frame, CORE_ADDR *addr_in_block)
> {
> CORE_ADDR pc;
> const struct block *bl;
> @@ -115,7 +115,7 @@ get_pc_function_start (CORE_ADDR pc)
> /* Return the symbol for the function executing in frame FRAME. */
>
> struct symbol *
> -get_frame_function (frame_info_ptr frame)
> +get_frame_function (frame_info *frame)
> {
> const struct block *bl = get_frame_block (frame, 0);
>
> diff --git a/gdb/bpf-tdep.c b/gdb/bpf-tdep.c
> index ea7c11473784..8708f7dd218a 100644
> --- a/gdb/bpf-tdep.c
> +++ b/gdb/bpf-tdep.c
> @@ -154,7 +154,7 @@ bpf_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
> /* Given THIS_FRAME, return its ID. */
>
> static void
> -bpf_frame_this_id (frame_info_ptr this_frame,
> +bpf_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -165,7 +165,7 @@ bpf_frame_this_id (frame_info_ptr this_frame,
> /* Return the reason why we can't unwind past THIS_FRAME. */
>
> static enum unwind_stop_reason
> -bpf_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +bpf_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> return UNWIND_OUTERMOST;
> @@ -174,7 +174,7 @@ bpf_frame_unwind_stop_reason (frame_info_ptr this_frame,
> /* Ask THIS_FRAME to unwind its register. */
>
> static struct value *
> -bpf_frame_prev_register (frame_info_ptr this_frame,
> +bpf_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> return frame_unwind_got_register (this_frame, regnum, regnum);
> @@ -235,7 +235,7 @@ bpf_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
> /* Assuming THIS_FRAME is a dummy frame, return its frame ID. */
>
> static struct frame_id
> -bpf_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +bpf_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> CORE_ADDR sp = get_frame_register_unsigned (this_frame,
> gdbarch_sp_regnum (gdbarch));
> diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c
> index d38850aa1af0..d6f5452ec53d 100644
> --- a/gdb/cris-tdep.c
> +++ b/gdb/cris-tdep.c
> @@ -193,7 +193,7 @@ static const unsigned short rt_sigtramp_code[] =
> the routine. Otherwise, return 0. */
>
> static CORE_ADDR
> -cris_sigtramp_start (frame_info_ptr this_frame)
> +cris_sigtramp_start (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> gdb_byte buf[SIGTRAMP_LEN];
> @@ -221,7 +221,7 @@ cris_sigtramp_start (frame_info_ptr this_frame)
> the routine. Otherwise, return 0. */
>
> static CORE_ADDR
> -cris_rt_sigtramp_start (frame_info_ptr this_frame)
> +cris_rt_sigtramp_start (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> gdb_byte buf[SIGTRAMP_LEN];
> @@ -249,7 +249,7 @@ cris_rt_sigtramp_start (frame_info_ptr this_frame)
> return the address of the associated sigcontext structure. */
>
> static CORE_ADDR
> -cris_sigcontext_addr (frame_info_ptr this_frame)
> +cris_sigcontext_addr (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -309,7 +309,7 @@ struct cris_unwind_cache
> };
>
> static struct cris_unwind_cache *
> -cris_sigtramp_frame_unwind_cache (frame_info_ptr this_frame,
> +cris_sigtramp_frame_unwind_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -402,7 +402,7 @@ cris_sigtramp_frame_unwind_cache (frame_info_ptr this_frame,
> }
>
> static void
> -cris_sigtramp_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +cris_sigtramp_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct cris_unwind_cache *cache =
> @@ -412,10 +412,10 @@ cris_sigtramp_frame_this_id (frame_info_ptr this_frame, void **this_cache,
>
> /* Forward declaration. */
>
> -static struct value *cris_frame_prev_register (frame_info_ptr this_frame,
> +static struct value *cris_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum);
> static struct value *
> -cris_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +cris_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> /* Make sure we've initialized the cache. */
> @@ -425,7 +425,7 @@ cris_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> cris_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> if (cris_sigtramp_start (this_frame)
> @@ -645,11 +645,11 @@ static void set_cris_dwarf2_cfi (const char *ignore_args, int from_tty,
> struct cmd_list_element *c);
>
> static CORE_ADDR cris_scan_prologue (CORE_ADDR pc,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct cris_unwind_cache *info);
>
> static CORE_ADDR crisv32_scan_prologue (CORE_ADDR pc,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct cris_unwind_cache *info);
>
> /* When arguments must be pushed onto the stack, they go on in reverse
> @@ -692,7 +692,7 @@ pop_stack_item (struct cris_stack_item *si)
> for it IS the sp for the next frame. */
>
> static struct cris_unwind_cache *
> -cris_frame_unwind_cache (frame_info_ptr this_frame,
> +cris_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -729,7 +729,7 @@ cris_frame_unwind_cache (frame_info_ptr this_frame,
> frame. This will be used to create a new GDB frame struct. */
>
> static void
> -cris_frame_this_id (frame_info_ptr this_frame,
> +cris_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -755,7 +755,7 @@ cris_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -cris_frame_prev_register (frame_info_ptr this_frame,
> +cris_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct cris_unwind_cache *info
> @@ -912,7 +912,7 @@ static const struct frame_unwind cris_frame_unwind =
> };
>
> static CORE_ADDR
> -cris_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +cris_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct cris_unwind_cache *info
> = cris_frame_unwind_cache (this_frame, this_cache);
> @@ -1004,7 +1004,7 @@ static const struct frame_base cris_frame_base =
> determine that it is a prologue (1). */
>
> static CORE_ADDR
> -cris_scan_prologue (CORE_ADDR pc, frame_info_ptr this_frame,
> +cris_scan_prologue (CORE_ADDR pc, frame_info *this_frame,
> struct cris_unwind_cache *info)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -1287,7 +1287,7 @@ cris_scan_prologue (CORE_ADDR pc, frame_info_ptr this_frame,
> }
>
> static CORE_ADDR
> -crisv32_scan_prologue (CORE_ADDR pc, frame_info_ptr this_frame,
> +crisv32_scan_prologue (CORE_ADDR pc, frame_info *this_frame,
> struct cris_unwind_cache *info)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -1756,7 +1756,7 @@ cris_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int reg)
> static void
> cris_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> /* The return address column. */
> if (regnum == gdbarch_pc_regnum (gdbarch))
> diff --git a/gdb/csky-linux-tdep.c b/gdb/csky-linux-tdep.c
> index 8df3eaa2026b..e22f50983a4f 100644
> --- a/gdb/csky-linux-tdep.c
> +++ b/gdb/csky-linux-tdep.c
> @@ -310,7 +310,7 @@ csky_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
>
> static void
> csky_linux_rt_sigreturn_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> @@ -355,7 +355,7 @@ csky_linux_rt_sigreturn_tramp_frame = {
>
> static void
> csky_linux_rt_sigreturn_init_pt_regs (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c
> index f293d204da20..67a9bdbda2c6 100644
> --- a/gdb/csky-tdep.c
> +++ b/gdb/csky-tdep.c
> @@ -955,7 +955,7 @@ csky_analyze_prologue (struct gdbarch *gdbarch,
> CORE_ADDR start_pc,
> CORE_ADDR limit_pc,
> CORE_ADDR end_pc,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct csky_unwind_cache *this_cache,
> lr_type_t lr_type)
> {
> @@ -2060,7 +2060,7 @@ csky_analyze_lr_type (struct gdbarch *gdbarch,
> /* Heuristic unwinder. */
>
> static struct csky_unwind_cache *
> -csky_frame_unwind_cache (frame_info_ptr this_frame)
> +csky_frame_unwind_cache (frame_info *this_frame)
> {
> CORE_ADDR prologue_start, prologue_end, func_end, prev_pc, block_addr;
> struct csky_unwind_cache *cache;
> @@ -2119,7 +2119,7 @@ csky_frame_unwind_cache (frame_info_ptr this_frame)
> /* Implement the this_id function for the normal unwinder. */
>
> static void
> -csky_frame_this_id (frame_info_ptr this_frame,
> +csky_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache, struct frame_id *this_id)
> {
> struct csky_unwind_cache *cache;
> @@ -2140,7 +2140,7 @@ csky_frame_this_id (frame_info_ptr this_frame,
> /* Implement the prev_register function for the normal unwinder. */
>
> static struct value *
> -csky_frame_prev_register (frame_info_ptr this_frame,
> +csky_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct csky_unwind_cache *cache;
> @@ -2169,7 +2169,7 @@ static const struct frame_unwind csky_unwind_cache = {
> };
>
> static CORE_ADDR
> -csky_check_long_branch (frame_info_ptr frame, CORE_ADDR pc)
> +csky_check_long_branch (frame_info *frame, CORE_ADDR pc)
> {
> gdb_byte buf[8];
> struct gdbarch *gdbarch = get_frame_arch (frame);
> @@ -2206,7 +2206,7 @@ csky_check_long_branch (frame_info_ptr frame, CORE_ADDR pc)
>
> static int
> csky_stub_unwind_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> CORE_ADDR addr_in_block, pc;
> @@ -2237,7 +2237,7 @@ csky_stub_unwind_sniffer (const struct frame_unwind *self,
> }
>
> static struct csky_unwind_cache *
> -csky_make_stub_cache (frame_info_ptr this_frame)
> +csky_make_stub_cache (frame_info *this_frame)
> {
> struct csky_unwind_cache *cache;
>
> @@ -2249,7 +2249,7 @@ csky_make_stub_cache (frame_info_ptr this_frame)
> }
>
> static void
> -csky_stub_this_id (frame_info_ptr this_frame,
> +csky_stub_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -2264,7 +2264,7 @@ csky_stub_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -csky_stub_prev_register (frame_info_ptr this_frame,
> +csky_stub_prev_register (frame_info *this_frame,
> void **this_cache,
> int prev_regnum)
> {
> @@ -2304,7 +2304,7 @@ static frame_unwind csky_stub_unwind = {
> for the normal unwinder. */
>
> static CORE_ADDR
> -csky_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +csky_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct csky_unwind_cache *cache;
>
> @@ -2327,7 +2327,7 @@ static const struct frame_base csky_frame_base = {
> static void
> csky_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> if (regnum == gdbarch_pc_regnum (gdbarch))
> reg->how = DWARF2_FRAME_REG_RA;
> diff --git a/gdb/defs.h b/gdb/defs.h
> index f51ab9e5c0c3..1cd644cc814f 100644
> --- a/gdb/defs.h
> +++ b/gdb/defs.h
> @@ -284,7 +284,6 @@ enum return_value_convention
>
> struct symtab;
> struct breakpoint;
> -class frame_info_ptr;
> struct gdbarch;
> struct value;
>
> diff --git a/gdb/dummy-frame.c b/gdb/dummy-frame.c
> index 42c4bf23431b..5254d26dd0a3 100644
> --- a/gdb/dummy-frame.c
> +++ b/gdb/dummy-frame.c
> @@ -288,7 +288,7 @@ struct dummy_frame_cache
>
> static int
> dummy_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> /* When unwinding a normal frame, the stack structure is determined
> @@ -334,7 +334,7 @@ dummy_frame_sniffer (const struct frame_unwind *self,
> register value is taken from the local copy of the register buffer. */
>
> static struct value *
> -dummy_frame_prev_register (frame_info_ptr this_frame,
> +dummy_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache,
> int regnum)
> {
> @@ -364,7 +364,7 @@ dummy_frame_prev_register (frame_info_ptr this_frame,
> dummy cache is located and saved in THIS_PROLOGUE_CACHE. */
>
> static void
> -dummy_frame_this_id (frame_info_ptr this_frame,
> +dummy_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -390,7 +390,7 @@ const struct frame_unwind dummy_frame_unwind =
> /* See dummy-frame.h. */
>
> struct frame_id
> -default_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +default_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> CORE_ADDR sp, pc;
>
> diff --git a/gdb/dummy-frame.h b/gdb/dummy-frame.h
> index 213881e4eab1..1388fdac2c0a 100644
> --- a/gdb/dummy-frame.h
> +++ b/gdb/dummy-frame.h
> @@ -78,6 +78,6 @@ extern int find_dummy_frame_dtor (dummy_frame_dtor_ftype *dtor,
> for THIS_FRAME assuming that the frame is a dummy frame. */
>
> extern struct frame_id default_dummy_id (struct gdbarch *gdbarch,
> - frame_info_ptr this_frame);
> + frame_info *this_frame);
>
> #endif /* !defined (DUMMY_FRAME_H) */
> diff --git a/gdb/dwarf2/expr.c b/gdb/dwarf2/expr.c
> index 73dfd4b4ffb6..ca13e1a2d56c 100644
> --- a/gdb/dwarf2/expr.c
> +++ b/gdb/dwarf2/expr.c
> @@ -49,7 +49,7 @@ static const registry<gdbarch>::key<dwarf_gdbarch_types> dwarf_arch_cookie;
> /* Ensure that a FRAME is defined, throw an exception otherwise. */
>
> static void
> -ensure_have_frame (frame_info_ptr frame, const char *op_name)
> +ensure_have_frame (frame_info *frame, const char *op_name)
> {
> if (frame == nullptr)
> throw_error (GENERIC_ERROR,
> @@ -78,7 +78,7 @@ bits_to_bytes (ULONGEST start, ULONGEST n_bits)
> /* See expr.h. */
>
> CORE_ADDR
> -read_addr_from_reg (frame_info_ptr frame, int reg)
> +read_addr_from_reg (frame_info *frame, int reg)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
> int regnum = dwarf_reg_to_regnum_or_error (gdbarch, reg);
> @@ -112,7 +112,7 @@ static piece_closure *
> allocate_piece_closure (dwarf2_per_cu_data *per_cu,
> dwarf2_per_objfile *per_objfile,
> std::vector<dwarf_expr_piece> &&pieces,
> - frame_info_ptr frame)
> + frame_info *frame)
> {
> piece_closure *c = new piece_closure;
>
> @@ -810,7 +810,7 @@ dwarf_expr_context::dwarf_call (cu_offset die_cu_off)
> {
> ensure_have_per_cu (this->m_per_cu, "DW_OP_call");
>
> - frame_info_ptr frame = this->m_frame;
> + frame_info *frame = this->m_frame;
>
> auto get_pc_from_frame = [frame] ()
> {
> @@ -887,7 +887,7 @@ dwarf_expr_context::push_dwarf_reg_entry_value (call_site_parameter_kind kind,
> It is possible for the caller to be from a different objfile from the
> callee if the call is made through a function pointer. */
> scoped_restore save_frame = make_scoped_restore (&this->m_frame,
> - caller_frame);
> + caller_frame.get ());
> scoped_restore save_per_cu = make_scoped_restore (&this->m_per_cu,
> caller_per_cu);
> scoped_restore save_addr_info = make_scoped_restore (&this->m_addr_info,
> @@ -1069,7 +1069,7 @@ dwarf_expr_context::fetch_result (struct type *type, struct type *subobj_type,
>
> value *
> dwarf_expr_context::evaluate (const gdb_byte *addr, size_t len, bool as_lval,
> - dwarf2_per_cu_data *per_cu, frame_info_ptr frame,
> + dwarf2_per_cu_data *per_cu, frame_info *frame,
> const struct property_addr_info *addr_info,
> struct type *type, struct type *subobj_type,
> LONGEST subobj_offset)
> diff --git a/gdb/dwarf2/expr.h b/gdb/dwarf2/expr.h
> index 6078dce0abc5..4ce9b734f77f 100644
> --- a/gdb/dwarf2/expr.h
> +++ b/gdb/dwarf2/expr.h
> @@ -137,7 +137,7 @@ struct dwarf_expr_context
> The ADDR_INFO property can be specified to override the range of
> memory addresses with the passed in buffer. */
> value *evaluate (const gdb_byte *addr, size_t len, bool as_lval,
> - dwarf2_per_cu_data *per_cu, frame_info_ptr frame,
> + dwarf2_per_cu_data *per_cu, frame_info *frame,
> const struct property_addr_info *addr_info = nullptr,
> struct type *type = nullptr,
> struct type *subobj_type = nullptr,
> @@ -196,7 +196,7 @@ struct dwarf_expr_context
> dwarf2_per_objfile *m_per_objfile;
>
> /* Frame information used for the evaluation. */
> - frame_info_ptr m_frame = nullptr;
> + frame_info *m_frame = nullptr;
>
> /* Compilation unit used for the evaluation. */
> dwarf2_per_cu_data *m_per_cu = nullptr;
> @@ -256,7 +256,7 @@ struct dwarf_expr_context
>
> /* Return the value of register number REG (a DWARF register number),
> read as an address in a given FRAME. */
> -CORE_ADDR read_addr_from_reg (frame_info_ptr frame, int reg);
> +CORE_ADDR read_addr_from_reg (frame_info *frame, int reg);
>
> void dwarf_expr_require_composition (const gdb_byte *, const gdb_byte *,
> const char *);
> diff --git a/gdb/dwarf2/frame-tailcall.c b/gdb/dwarf2/frame-tailcall.c
> index a1e43cc18eda..3e2e898d5eb3 100644
> --- a/gdb/dwarf2/frame-tailcall.c
> +++ b/gdb/dwarf2/frame-tailcall.c
> @@ -90,12 +90,12 @@ cache_eq (const void *arg1, const void *arg2)
> tailcall_cache. */
>
> static struct tailcall_cache *
> -cache_new_ref1 (frame_info_ptr next_bottom_frame)
> +cache_new_ref1 (frame_info *next_bottom_frame)
> {
> struct tailcall_cache *cache = XCNEW (struct tailcall_cache);
> void **slot;
>
> - cache->next_bottom_frame = next_bottom_frame.get ();
> + cache->next_bottom_frame = next_bottom_frame;
> cache->refc = 1;
>
> slot = htab_find_slot (cache_htab, cache, INSERT);
> @@ -137,7 +137,7 @@ cache_unref (struct tailcall_cache *cache)
> return 0. */
>
> static int
> -frame_is_tailcall (frame_info_ptr fi)
> +frame_is_tailcall (frame_info *fi)
> {
> return frame_unwinder_is (fi, &dwarf2_tailcall_frame_unwind);
> }
> @@ -146,7 +146,7 @@ frame_is_tailcall (frame_info_ptr fi)
> call chain. Otherwise return NULL. No new reference is created. */
>
> static struct tailcall_cache *
> -cache_find (frame_info_ptr fi)
> +cache_find (frame_info *fi)
> {
> struct tailcall_cache *cache;
> struct tailcall_cache search;
> @@ -158,7 +158,7 @@ cache_find (frame_info_ptr fi)
> gdb_assert (fi != NULL);
> }
>
> - search.next_bottom_frame = fi.get();
> + search.next_bottom_frame = fi;
> search.refc = 1;
> slot = htab_find_slot (cache_htab, &search, NO_INSERT);
> if (slot == NULL)
> @@ -173,11 +173,11 @@ cache_find (frame_info_ptr fi)
> If THIS_FRAME is CACHE-> NEXT_BOTTOM_FRAME return -1. */
>
> static int
> -existing_next_levels (frame_info_ptr this_frame,
> +existing_next_levels (frame_info *this_frame,
> struct tailcall_cache *cache)
> {
> int retval = (frame_relative_level (this_frame)
> - - frame_relative_level (frame_info_ptr (cache->next_bottom_frame)) - 1);
> + - frame_relative_level (cache->next_bottom_frame) - 1);
>
> gdb_assert (retval >= -1);
>
> @@ -210,14 +210,13 @@ pretended_chain_levels (struct call_site_chain *chain)
> Specific virtual tail call frames are tracked by INLINE_DEPTH. */
>
> static void
> -tailcall_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +tailcall_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct tailcall_cache *cache = (struct tailcall_cache *) *this_cache;
> - frame_info_ptr next_frame;
>
> /* Tail call does not make sense for a sentinel frame. */
> - next_frame = get_next_frame (this_frame);
> + frame_info *next_frame = get_next_frame (this_frame);
> gdb_assert (next_frame != NULL);
>
> *this_id = get_frame_id (next_frame);
> @@ -232,7 +231,7 @@ tailcall_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> CACHE. */
>
> static CORE_ADDR
> -pretend_pc (frame_info_ptr this_frame, struct tailcall_cache *cache)
> +pretend_pc (frame_info *this_frame, struct tailcall_cache *cache)
> {
> int next_levels = existing_next_levels (this_frame, cache);
> struct call_site_chain *chain = cache->chain;
> @@ -264,7 +263,7 @@ pretend_pc (frame_info_ptr this_frame, struct tailcall_cache *cache)
> frames unwind the NULL case differently. */
>
> struct value *
> -dwarf2_tailcall_prev_register_first (frame_info_ptr this_frame,
> +dwarf2_tailcall_prev_register_first (frame_info *this_frame,
> void **tailcall_cachep, int regnum)
> {
> struct gdbarch *this_gdbarch = get_frame_arch (this_frame);
> @@ -294,7 +293,7 @@ dwarf2_tailcall_prev_register_first (frame_info_ptr this_frame,
> dwarf2_tailcall_prev_register_first. */
>
> static struct value *
> -tailcall_frame_prev_register (frame_info_ptr this_frame,
> +tailcall_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct tailcall_cache *cache = (struct tailcall_cache *) *this_cache;
> @@ -316,9 +315,8 @@ tailcall_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> tailcall_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame, void **this_cache)
> + frame_info *this_frame, void **this_cache)
> {
> - frame_info_ptr next_frame;
> int next_levels;
> struct tailcall_cache *cache;
>
> @@ -326,7 +324,7 @@ tailcall_frame_sniffer (const struct frame_unwind *self,
> return 0;
>
> /* Inner tail call element does not make sense for a sentinel frame. */
> - next_frame = get_next_frame (this_frame);
> + frame_info *next_frame = get_next_frame (this_frame);
> if (next_frame == NULL)
> return 0;
>
> @@ -363,7 +361,7 @@ tailcall_frame_sniffer (const struct frame_unwind *self,
> address pushed on the stack. */
>
> void
> -dwarf2_tailcall_sniffer_first (frame_info_ptr this_frame,
> +dwarf2_tailcall_sniffer_first (frame_info *this_frame,
> void **tailcall_cachep,
> const LONGEST *entry_cfa_sp_offsetp)
> {
> @@ -458,7 +456,7 @@ tailcall_frame_dealloc_cache (frame_info *self, void *this_cache)
> call frames have gdbarch of the bottom (callee) frame. */
>
> static struct gdbarch *
> -tailcall_frame_prev_arch (frame_info_ptr this_frame,
> +tailcall_frame_prev_arch (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct tailcall_cache *cache = (struct tailcall_cache *) *this_prologue_cache;
> diff --git a/gdb/dwarf2/frame-tailcall.h b/gdb/dwarf2/frame-tailcall.h
> index c849bfb070ef..ec6e40e73a9c 100644
> --- a/gdb/dwarf2/frame-tailcall.h
> +++ b/gdb/dwarf2/frame-tailcall.h
> @@ -20,18 +20,17 @@
> #ifndef DWARF2_FRAME_TAILCALL_H
> #define DWARF2_FRAME_TAILCALL_H 1
>
> -class frame_info_ptr;
> struct frame_unwind;
>
> /* The tail call frame unwinder. */
>
> extern void
> - dwarf2_tailcall_sniffer_first (frame_info_ptr this_frame,
> + dwarf2_tailcall_sniffer_first (frame_info *this_frame,
> void **tailcall_cachep,
> const LONGEST *entry_cfa_sp_offsetp);
>
> extern struct value *
> - dwarf2_tailcall_prev_register_first (frame_info_ptr this_frame,
> + dwarf2_tailcall_prev_register_first (frame_info *this_frame,
> void **tailcall_cachep, int regnum);
>
> extern const struct frame_unwind dwarf2_tailcall_frame_unwind;
> diff --git a/gdb/dwarf2/frame.c b/gdb/dwarf2/frame.c
> index 3f884abe1d58..70a5c5d45d2a 100644
> --- a/gdb/dwarf2/frame.c
> +++ b/gdb/dwarf2/frame.c
> @@ -226,7 +226,7 @@ register %s (#%d) at %s"),
>
> static CORE_ADDR
> execute_stack_op (const gdb_byte *exp, ULONGEST len, int addr_size,
> - frame_info_ptr this_frame, CORE_ADDR initial,
> + frame_info *this_frame, CORE_ADDR initial,
> int initial_in_stack_memory, dwarf2_per_objfile *per_objfile)
> {
> dwarf_expr_context ctx (per_objfile, addr_size);
> @@ -582,17 +582,17 @@ execute_cfa_program_test (struct gdbarch *gdbarch)
> static void dwarf2_frame_default_init_reg (struct gdbarch *gdbarch,
> int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame);
> + frame_info *this_frame);
>
> struct dwarf2_frame_ops
> {
> /* Pre-initialize the register state REG for register REGNUM. */
> void (*init_reg) (struct gdbarch *, int, struct dwarf2_frame_state_reg *,
> - frame_info_ptr)
> + frame_info *)
> = dwarf2_frame_default_init_reg;
>
> /* Check whether the THIS_FRAME is a signal trampoline. */
> - int (*signal_frame_p) (struct gdbarch *, frame_info_ptr) = nullptr;
> + int (*signal_frame_p) (struct gdbarch *, frame_info *) = nullptr;
>
> /* Convert .eh_frame register number to DWARF register number, or
> adjust .debug_frame register number. */
> @@ -618,7 +618,7 @@ get_frame_ops (struct gdbarch *gdbarch)
> static void
> dwarf2_frame_default_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> /* If we have a register that acts as a program counter, mark it as
> a destination for the return address. If we have a register that
> @@ -659,7 +659,7 @@ void
> dwarf2_frame_set_init_reg (struct gdbarch *gdbarch,
> void (*init_reg) (struct gdbarch *, int,
> struct dwarf2_frame_state_reg *,
> - frame_info_ptr))
> + frame_info *))
> {
> struct dwarf2_frame_ops *ops = get_frame_ops (gdbarch);
>
> @@ -671,7 +671,7 @@ dwarf2_frame_set_init_reg (struct gdbarch *gdbarch,
> static void
> dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> struct dwarf2_frame_ops *ops = get_frame_ops (gdbarch);
>
> @@ -684,7 +684,7 @@ dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> void
> dwarf2_frame_set_signal_frame_p (struct gdbarch *gdbarch,
> int (*signal_frame_p) (struct gdbarch *,
> - frame_info_ptr))
> + frame_info *))
> {
> struct dwarf2_frame_ops *ops = get_frame_ops (gdbarch);
>
> @@ -696,7 +696,7 @@ dwarf2_frame_set_signal_frame_p (struct gdbarch *gdbarch,
>
> static int
> dwarf2_frame_signal_frame_p (struct gdbarch *gdbarch,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> struct dwarf2_frame_ops *ops = get_frame_ops (gdbarch);
>
> @@ -865,7 +865,7 @@ struct dwarf2_frame_cache
> };
>
> static struct dwarf2_frame_cache *
> -dwarf2_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +dwarf2_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> const int num_regs = gdbarch_num_cooked_regs (gdbarch);
> @@ -1094,7 +1094,7 @@ incomplete CFI data; unspecified registers (e.g., %s) at %s"),
> }
>
> static enum unwind_stop_reason
> -dwarf2_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +dwarf2_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct dwarf2_frame_cache *cache
> @@ -1110,7 +1110,7 @@ dwarf2_frame_unwind_stop_reason (frame_info_ptr this_frame,
> }
>
> static void
> -dwarf2_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +dwarf2_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct dwarf2_frame_cache *cache =
> @@ -1125,7 +1125,7 @@ dwarf2_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -dwarf2_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +dwarf2_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -1228,7 +1228,7 @@ static void
> dwarf2_frame_dealloc_cache (frame_info *self, void *this_cache)
> {
> struct dwarf2_frame_cache *cache
> - = dwarf2_frame_cache (frame_info_ptr (self), &this_cache);
> + = dwarf2_frame_cache (self, &this_cache);
>
> if (cache->tailcall_cache)
> dwarf2_tailcall_frame_unwind.dealloc_cache (self, cache->tailcall_cache);
> @@ -1236,7 +1236,7 @@ dwarf2_frame_dealloc_cache (frame_info *self, void *this_cache)
>
> static int
> dwarf2_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame, void **this_cache)
> + frame_info *this_frame, void **this_cache)
> {
> if (!dwarf2_frame_unwinders_enabled_p)
> return 0;
> @@ -1312,7 +1312,7 @@ dwarf2_append_unwinders (struct gdbarch *gdbarch)
> response to the "info frame" command. */
>
> static CORE_ADDR
> -dwarf2_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +dwarf2_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct dwarf2_frame_cache *cache =
> dwarf2_frame_cache (this_frame, this_cache);
> @@ -1329,7 +1329,7 @@ static const struct frame_base dwarf2_frame_base =
> };
>
> const struct frame_base *
> -dwarf2_frame_base_sniffer (frame_info_ptr this_frame)
> +dwarf2_frame_base_sniffer (frame_info *this_frame)
> {
> CORE_ADDR block_addr = get_frame_address_in_block (this_frame);
>
> @@ -1344,7 +1344,7 @@ dwarf2_frame_base_sniffer (frame_info_ptr this_frame)
> DW_OP_call_frame_cfa. */
>
> CORE_ADDR
> -dwarf2_frame_cfa (frame_info_ptr this_frame)
> +dwarf2_frame_cfa (frame_info *this_frame)
> {
> if (frame_unwinder_is (this_frame, &record_btrace_tailcall_frame_unwind)
> || frame_unwinder_is (this_frame, &record_btrace_frame_unwind))
> @@ -1352,7 +1352,7 @@ dwarf2_frame_cfa (frame_info_ptr this_frame)
> _("cfa not available for record btrace target"));
>
> while (get_frame_type (this_frame) == INLINE_FRAME)
> - this_frame = get_prev_frame (this_frame);
> + this_frame = get_prev_frame (this_frame).get ();
> if (get_frame_unwind_stop_reason (this_frame) == UNWIND_UNAVAILABLE)
> throw_error (NOT_AVAILABLE_ERROR,
> _("can't compute CFA for this frame: "
> diff --git a/gdb/dwarf2/frame.h b/gdb/dwarf2/frame.h
> index 06c8a10c1785..20e1ae344510 100644
> --- a/gdb/dwarf2/frame.h
> +++ b/gdb/dwarf2/frame.h
> @@ -23,7 +23,7 @@
> #define DWARF2_FRAME_H 1
>
> struct gdbarch;
> -class frame_info_ptr;
> +struct frame_info;
> struct dwarf2_per_cu_data;
> struct agent_expr;
> struct axs_value;
> @@ -78,7 +78,7 @@ struct dwarf2_frame_state_reg
> const gdb_byte *start;
> ULONGEST len;
> } exp;
> - struct value *(*fn) (frame_info_ptr this_frame, void **this_cache,
> + struct value *(*fn) (frame_info *this_frame, void **this_cache,
> int regnum);
> } loc;
> enum dwarf2_frame_reg_rule how;
> @@ -208,7 +208,7 @@ extern bool dwarf2_frame_unwinders_enabled_p;
> extern void dwarf2_frame_set_init_reg (struct gdbarch *gdbarch,
> void (*init_reg) (struct gdbarch *, int,
> struct dwarf2_frame_state_reg *,
> - frame_info_ptr));
> + frame_info *));
>
> /* Set the architecture-specific signal trampoline recognition
> function for GDBARCH to SIGNAL_FRAME_P. */
> @@ -216,7 +216,7 @@ extern void dwarf2_frame_set_init_reg (struct gdbarch *gdbarch,
> extern void
> dwarf2_frame_set_signal_frame_p (struct gdbarch *gdbarch,
> int (*signal_frame_p) (struct gdbarch *,
> - frame_info_ptr));
> + frame_info *));
>
> /* Set the architecture-specific adjustment of .eh_frame and .debug_frame
> register numbers. */
> @@ -234,11 +234,11 @@ void dwarf2_append_unwinders (struct gdbarch *gdbarch);
> NULL if it can't be handled by the DWARF CFI frame unwinder. */
>
> extern const struct frame_base *
> - dwarf2_frame_base_sniffer (frame_info_ptr this_frame);
> + dwarf2_frame_base_sniffer (frame_info *this_frame);
>
> /* Compute the DWARF CFA for a frame. */
>
> -CORE_ADDR dwarf2_frame_cfa (frame_info_ptr this_frame);
> +CORE_ADDR dwarf2_frame_cfa (frame_info *this_frame);
>
> /* Find the CFA information for PC.
>
> diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c
> index 8355aa44333c..a97fa5888e3b 100644
> --- a/gdb/dwarf2/loc.c
> +++ b/gdb/dwarf2/loc.c
> @@ -1126,7 +1126,7 @@ call_site_parameter_matches (struct call_site_parameter *parameter,
> /* See loc.h. */
>
> struct call_site_parameter *
> -dwarf_expr_reg_to_entry_parameter (frame_info_ptr frame,
> +dwarf_expr_reg_to_entry_parameter (frame_info *frame,
> enum call_site_parameter_kind kind,
> union call_site_parameter_u kind_u,
> dwarf2_per_cu_data **per_cu_return,
> @@ -1143,7 +1143,7 @@ dwarf_expr_reg_to_entry_parameter (frame_info_ptr frame,
>
> while (get_frame_type (frame) == INLINE_FRAME)
> {
> - frame = get_prev_frame (frame);
> + frame = get_prev_frame (frame).get ();
> gdb_assert (frame != NULL);
> }
>
> @@ -1339,7 +1339,7 @@ value_of_dwarf_reg_entry (struct type *type, frame_info_ptr frame,
> dwarf2_per_cu_data *caller_per_cu;
> dwarf2_per_objfile *caller_per_objfile;
>
> - parameter = dwarf_expr_reg_to_entry_parameter (frame, kind, kind_u,
> + parameter = dwarf_expr_reg_to_entry_parameter (frame.get (), kind, kind_u,
> &caller_per_cu,
> &caller_per_objfile);
>
> @@ -1510,7 +1510,7 @@ dwarf2_evaluate_loc_desc_full (struct type *type, frame_info_ptr frame,
>
> try
> {
> - retval = ctx.evaluate (data, size, as_lval, per_cu, frame, nullptr,
> + retval = ctx.evaluate (data, size, as_lval, per_cu, frame.get (), nullptr,
> type, subobj_type, subobj_byte_offset);
> }
> catch (const gdb_exception_error &ex)
> @@ -1595,7 +1595,7 @@ dwarf2_locexpr_baton_eval (const struct dwarf2_locexpr_baton *dlbaton,
> try
> {
> result = ctx.evaluate (dlbaton->data, dlbaton->size,
> - true, per_cu, frame, addr_stack);
> + true, per_cu, frame.get (), addr_stack);
> }
> catch (const gdb_exception_error &ex)
> {
> diff --git a/gdb/dwarf2/loc.h b/gdb/dwarf2/loc.h
> index 9156e1ee5333..b599402471d7 100644
> --- a/gdb/dwarf2/loc.h
> +++ b/gdb/dwarf2/loc.h
> @@ -65,7 +65,7 @@ value *compute_var_value (const char *name);
> otherwise. */
>
> struct call_site_parameter *dwarf_expr_reg_to_entry_parameter
> - (frame_info_ptr frame, enum call_site_parameter_kind kind,
> + (frame_info *frame, enum call_site_parameter_kind kind,
> union call_site_parameter_u kind_u, dwarf2_per_cu_data **per_cu_return,
> dwarf2_per_objfile **per_objfile_return);
>
> diff --git a/gdb/findvar.c b/gdb/findvar.c
> index 91de3fd5c3eb..d4a1910c2aeb 100644
> --- a/gdb/findvar.c
> +++ b/gdb/findvar.c
> @@ -257,7 +257,7 @@ copy_integer_to_size (gdb_byte *dest, int dest_size, const gdb_byte *source,
> determined by register_type (). */
>
> struct value *
> -value_of_register (int regnum, frame_info_ptr frame)
> +value_of_register (int regnum, frame_info *frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
> struct value *reg_val;
> @@ -277,17 +277,16 @@ value_of_register (int regnum, frame_info_ptr frame)
> determined by register_type (). The value is not fetched. */
>
> struct value *
> -value_of_register_lazy (frame_info_ptr frame, int regnum)
> +value_of_register_lazy (frame_info *frame, int regnum)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
> struct value *reg_val;
> - frame_info_ptr next_frame;
>
> gdb_assert (regnum < gdbarch_num_cooked_regs (gdbarch));
>
> gdb_assert (frame != NULL);
>
> - next_frame = get_next_frame_sentinel_okay (frame);
> + frame_info *next_frame = get_next_frame_sentinel_okay_raw (frame);
>
> /* In some cases NEXT_FRAME may not have a valid frame-id yet. This can
> happen if we end up trying to unwind a register as part of the frame
> @@ -295,7 +294,7 @@ value_of_register_lazy (frame_info_ptr frame, int regnum)
> if NEXT_FRAME is an inline frame. If this is the case then we can
> avoid getting into trouble here by skipping past the inline frames. */
> while (get_frame_type (next_frame) == INLINE_FRAME)
> - next_frame = get_next_frame_sentinel_okay (next_frame);
> + next_frame = get_next_frame_sentinel_okay_raw (next_frame);
>
> /* We should have a valid next frame. */
> gdb_assert (frame_id_p (get_frame_id (next_frame)));
> @@ -832,7 +831,7 @@ default_value_from_register (struct gdbarch *gdbarch, struct type *type,
> complete resulting value as optimized out. */
>
> void
> -read_frame_register_value (struct value *value, frame_info_ptr frame)
> +read_frame_register_value (struct value *value, frame_info *frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
> LONGEST offset = 0;
> @@ -872,7 +871,7 @@ read_frame_register_value (struct value *value, frame_info_ptr frame)
> /* Return a value of type TYPE, stored in register REGNUM, in frame FRAME. */
>
> struct value *
> -value_from_register (struct type *type, int regnum, frame_info_ptr frame)
> +value_from_register (struct type *type, int regnum, frame_info *frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
> struct type *type1 = check_typedef (type);
> @@ -922,7 +921,7 @@ value_from_register (struct type *type, int regnum, frame_info_ptr frame)
> Will abort if register value is not available. */
>
> CORE_ADDR
> -address_from_register (int regnum, frame_info_ptr frame)
> +address_from_register (int regnum, frame_info *frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
> struct type *type = builtin_type (gdbarch)->builtin_data_ptr;
> diff --git a/gdb/frame-base.c b/gdb/frame-base.c
> index fb577df5143f..7167e448a431 100644
> --- a/gdb/frame-base.c
> +++ b/gdb/frame-base.c
> @@ -29,19 +29,19 @@
> really need to override this. */
>
> static CORE_ADDR
> -default_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +default_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> return get_frame_base (this_frame); /* sigh! */
> }
>
> static CORE_ADDR
> -default_frame_locals_address (frame_info_ptr this_frame, void **this_cache)
> +default_frame_locals_address (frame_info *this_frame, void **this_cache)
> {
> return default_frame_base_address (this_frame, this_cache);
> }
>
> static CORE_ADDR
> -default_frame_args_address (frame_info_ptr this_frame, void **this_cache)
> +default_frame_args_address (frame_info *this_frame, void **this_cache)
> {
> return default_frame_base_address (this_frame, this_cache);
> }
> @@ -99,7 +99,7 @@ frame_base_set_default (struct gdbarch *gdbarch,
> }
>
> const struct frame_base *
> -frame_base_find_by_frame (frame_info_ptr this_frame)
> +frame_base_find_by_frame (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct frame_base_table *table = get_frame_base_table (gdbarch);
> diff --git a/gdb/frame-base.h b/gdb/frame-base.h
> index 334a2e2c7504..dde61f21e3da 100644
> --- a/gdb/frame-base.h
> +++ b/gdb/frame-base.h
> @@ -20,7 +20,7 @@
> #if !defined (FRAME_BASE_H)
> #define FRAME_BASE_H 1
>
> -class frame_info_ptr;
> +struct frame_info;
> struct frame_id;
> struct frame_unwind;
> struct frame_base;
> @@ -42,17 +42,17 @@ struct regcache;
>
> /* A generic base address. */
>
> -typedef CORE_ADDR (frame_this_base_ftype) (frame_info_ptr this_frame,
> +typedef CORE_ADDR (frame_this_base_ftype) (frame_info *this_frame,
> void **this_base_cache);
>
> /* The base address of the frame's local variables. */
>
> -typedef CORE_ADDR (frame_this_locals_ftype) (frame_info_ptr this_frame,
> +typedef CORE_ADDR (frame_this_locals_ftype) (frame_info *this_frame,
> void **this_base_cache);
>
> /* The base address of the frame's arguments / parameters. */
>
> -typedef CORE_ADDR (frame_this_args_ftype) (frame_info_ptr this_frame,
> +typedef CORE_ADDR (frame_this_args_ftype) (frame_info *this_frame,
> void **this_base_cache);
>
> struct frame_base
> @@ -68,7 +68,8 @@ struct frame_base
> /* Given THIS frame, return the frame base methods for THIS frame,
> or NULL if it can't handle THIS frame. */
>
> -typedef const struct frame_base *(frame_base_sniffer_ftype) (frame_info_ptr this_frame);
> +typedef const struct frame_base *(frame_base_sniffer_ftype)
> + (frame_info *this_frame);
>
> /* Append a frame base sniffer to the list. The sniffers are polled
> in the order that they are appended. */
> @@ -86,6 +87,7 @@ extern void frame_base_set_default (struct gdbarch *gdbarch,
> /* Iterate through the list of frame base handlers until one returns
> an implementation. */
>
> -extern const struct frame_base *frame_base_find_by_frame (frame_info_ptr this_frame);
> +extern const struct frame_base *frame_base_find_by_frame
> + (frame_info *this_frame);
>
> #endif
> diff --git a/gdb/frame-unwind.c b/gdb/frame-unwind.c
> index e535d41225c6..f52e9e40352d 100644
> --- a/gdb/frame-unwind.c
> +++ b/gdb/frame-unwind.c
> @@ -121,7 +121,7 @@ frame_unwind_append_unwinder (struct gdbarch *gdbarch,
> unchanged and returns 0. */
>
> static int
> -frame_unwind_try_unwinder (frame_info_ptr this_frame, void **this_cache,
> +frame_unwind_try_unwinder (frame_info *this_frame, void **this_cache,
> const struct frame_unwind *unwinder)
> {
> int res = 0;
> @@ -181,7 +181,7 @@ frame_unwind_try_unwinder (frame_info_ptr this_frame, void **this_cache,
> by this function. Possibly initialize THIS_CACHE. */
>
> void
> -frame_unwind_find_by_frame (frame_info_ptr this_frame, void **this_cache)
> +frame_unwind_find_by_frame (frame_info *this_frame, void **this_cache)
> {
> FRAME_SCOPED_DEBUG_ENTER_EXIT;
> frame_debug_printf ("this_frame=%d", frame_relative_level (this_frame));
> @@ -215,7 +215,7 @@ frame_unwind_find_by_frame (frame_info_ptr this_frame, void **this_cache)
>
> int
> default_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> return 1;
> @@ -224,7 +224,7 @@ default_frame_sniffer (const struct frame_unwind *self,
> /* The default frame unwinder stop_reason callback. */
>
> enum unwind_stop_reason
> -default_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +default_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct frame_id this_id = get_frame_id (this_frame);
> @@ -238,7 +238,7 @@ default_frame_unwind_stop_reason (frame_info_ptr this_frame,
> /* See frame-unwind.h. */
>
> CORE_ADDR
> -default_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +default_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> int pc_regnum = gdbarch_pc_regnum (gdbarch);
> CORE_ADDR pc = frame_unwind_register_unsigned (next_frame, pc_regnum);
> @@ -249,7 +249,7 @@ default_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> /* See frame-unwind.h. */
>
> CORE_ADDR
> -default_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +default_unwind_sp (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> int sp_regnum = gdbarch_sp_regnum (gdbarch);
> return frame_unwind_register_unsigned (next_frame, sp_regnum);
> @@ -261,7 +261,7 @@ default_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> /* Return a value which indicates that FRAME did not save REGNUM. */
>
> struct value *
> -frame_unwind_got_optimized (frame_info_ptr frame, int regnum)
> +frame_unwind_got_optimized (frame_info *frame, int regnum)
> {
> struct gdbarch *gdbarch = frame_unwind_arch (frame);
> struct type *type = register_type (gdbarch, regnum);
> @@ -273,7 +273,7 @@ frame_unwind_got_optimized (frame_info_ptr frame, int regnum)
> register NEW_REGNUM. */
>
> struct value *
> -frame_unwind_got_register (frame_info_ptr frame,
> +frame_unwind_got_register (frame_info *frame,
> int regnum, int new_regnum)
> {
> return value_of_register_lazy (frame, new_regnum);
> @@ -283,7 +283,7 @@ frame_unwind_got_register (frame_info_ptr frame,
> ADDR. */
>
> struct value *
> -frame_unwind_got_memory (frame_info_ptr frame, int regnum, CORE_ADDR addr)
> +frame_unwind_got_memory (frame_info *frame, int regnum, CORE_ADDR addr)
> {
> struct gdbarch *gdbarch = frame_unwind_arch (frame);
> struct value *v = value_at_lazy (register_type (gdbarch, regnum), addr);
> @@ -296,7 +296,7 @@ frame_unwind_got_memory (frame_info_ptr frame, int regnum, CORE_ADDR addr)
> REGNUM has a known constant (computed) value of VAL. */
>
> struct value *
> -frame_unwind_got_constant (frame_info_ptr frame, int regnum,
> +frame_unwind_got_constant (frame_info *frame, int regnum,
> ULONGEST val)
> {
> struct gdbarch *gdbarch = frame_unwind_arch (frame);
> @@ -310,7 +310,7 @@ frame_unwind_got_constant (frame_info_ptr frame, int regnum,
> }
>
> struct value *
> -frame_unwind_got_bytes (frame_info_ptr frame, int regnum, const gdb_byte *buf)
> +frame_unwind_got_bytes (frame_info *frame, int regnum, const gdb_byte *buf)
> {
> struct gdbarch *gdbarch = frame_unwind_arch (frame);
> struct value *reg_val;
> @@ -326,7 +326,7 @@ frame_unwind_got_bytes (frame_info_ptr frame, int regnum, const gdb_byte *buf)
> CORE_ADDR to a target address if necessary. */
>
> struct value *
> -frame_unwind_got_address (frame_info_ptr frame, int regnum,
> +frame_unwind_got_address (frame_info *frame, int regnum,
> CORE_ADDR addr)
> {
> struct gdbarch *gdbarch = frame_unwind_arch (frame);
> diff --git a/gdb/frame-unwind.h b/gdb/frame-unwind.h
> index 84c90fdd143b..fac4a8063222 100644
> --- a/gdb/frame-unwind.h
> +++ b/gdb/frame-unwind.h
> @@ -50,37 +50,37 @@ struct value;
> to set *THIS_PROLOGUE_CACHE to NULL. */
>
> typedef int (frame_sniffer_ftype) (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache);
>
> typedef enum unwind_stop_reason (frame_unwind_stop_reason_ftype)
> - (frame_info_ptr this_frame, void **this_prologue_cache);
> + (frame_info *this_frame, void **this_prologue_cache);
>
> /* A default frame sniffer which always accepts the frame. Used by
> fallback prologue unwinders. */
>
> int default_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache);
>
> /* A default stop_reason callback which always claims the frame is
> unwindable. */
>
> enum unwind_stop_reason
> - default_frame_unwind_stop_reason (frame_info_ptr this_frame,
> + default_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache);
>
> /* A default unwind_pc callback that simply unwinds the register identified
> by GDBARCH_PC_REGNUM. */
>
> extern CORE_ADDR default_unwind_pc (struct gdbarch *gdbarch,
> - frame_info_ptr next_frame);
> + frame_info *next_frame);
>
> /* A default unwind_sp callback that simply unwinds the register identified
> by GDBARCH_SP_REGNUM. */
>
> extern CORE_ADDR default_unwind_sp (struct gdbarch *gdbarch,
> - frame_info_ptr next_frame);
> + frame_info *next_frame);
>
> /* Assuming the frame chain: (outer) prev <-> this <-> next (inner);
> use THIS frame, and through it the NEXT frame's register unwind
> @@ -105,7 +105,7 @@ extern CORE_ADDR default_unwind_sp (struct gdbarch *gdbarch,
> with the other unwind methods. Memory for that cache should be
> allocated using FRAME_OBSTACK_ZALLOC(). */
>
> -typedef void (frame_this_id_ftype) (frame_info_ptr this_frame,
> +typedef void (frame_this_id_ftype) (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id);
>
> @@ -141,7 +141,7 @@ typedef void (frame_this_id_ftype) (frame_info_ptr this_frame,
> allocated using FRAME_OBSTACK_ZALLOC(). */
>
> typedef struct value * (frame_prev_register_ftype)
> - (frame_info_ptr this_frame, void **this_prologue_cache,
> + (frame_info *this_frame, void **this_prologue_cache,
> int regnum);
>
> /* Deallocate extra memory associated with the frame cache if any. */
> @@ -153,7 +153,7 @@ typedef void (frame_dealloc_cache_ftype) (frame_info *self,
> use THIS frame, and implicitly the NEXT frame's register unwind
> method, return PREV frame's architecture. */
>
> -typedef struct gdbarch *(frame_prev_arch_ftype) (frame_info_ptr this_frame,
> +typedef struct gdbarch *(frame_prev_arch_ftype) (frame_info *this_frame,
> void **this_prologue_cache);
>
> struct frame_unwind
> @@ -193,7 +193,7 @@ extern void frame_unwind_append_unwinder (struct gdbarch *gdbarch,
> unwinder implementation. THIS_FRAME->UNWIND must be NULL, it will get set
> by this function. Possibly initialize THIS_CACHE. */
>
> -extern void frame_unwind_find_by_frame (frame_info_ptr this_frame,
> +extern void frame_unwind_find_by_frame (frame_info *this_frame,
> void **this_cache);
>
> /* Helper functions for value-based register unwinding. These return
> @@ -201,39 +201,39 @@ extern void frame_unwind_find_by_frame (frame_info_ptr this_frame,
>
> /* Return a value which indicates that FRAME did not save REGNUM. */
>
> -struct value *frame_unwind_got_optimized (frame_info_ptr frame,
> +struct value *frame_unwind_got_optimized (frame_info *frame,
> int regnum);
>
> /* Return a value which indicates that FRAME copied REGNUM into
> register NEW_REGNUM. */
>
> -struct value *frame_unwind_got_register (frame_info_ptr frame, int regnum,
> +struct value *frame_unwind_got_register (frame_info *frame, int regnum,
> int new_regnum);
>
> /* Return a value which indicates that FRAME saved REGNUM in memory at
> ADDR. */
>
> -struct value *frame_unwind_got_memory (frame_info_ptr frame, int regnum,
> +struct value *frame_unwind_got_memory (frame_info *frame, int regnum,
> CORE_ADDR addr);
>
> /* Return a value which indicates that FRAME's saved version of
> REGNUM has a known constant (computed) value of VAL. */
>
> -struct value *frame_unwind_got_constant (frame_info_ptr frame, int regnum,
> +struct value *frame_unwind_got_constant (frame_info *frame, int regnum,
> ULONGEST val);
>
> /* Return a value which indicates that FRAME's saved version of
> REGNUM has a known constant (computed) value which is stored
> inside BUF. */
>
> -struct value *frame_unwind_got_bytes (frame_info_ptr frame, int regnum,
> +struct value *frame_unwind_got_bytes (frame_info *frame, int regnum,
> const gdb_byte *buf);
>
> /* Return a value which indicates that FRAME's saved version of REGNUM
> has a known constant (computed) value of ADDR. Convert the
> CORE_ADDR to a target address if necessary. */
>
> -struct value *frame_unwind_got_address (frame_info_ptr frame, int regnum,
> +struct value *frame_unwind_got_address (frame_info *frame, int regnum,
> CORE_ADDR addr);
>
> #endif
> diff --git a/gdb/frame.c b/gdb/frame.c
> index e6e58a76668f..e8bfd5c2ec1a 100644
> --- a/gdb/frame.c
> +++ b/gdb/frame.c
> @@ -68,7 +68,7 @@ get_frame_cache_generation ()
> /* The values behind the global "set backtrace ..." settings. */
> set_backtrace_options user_set_backtrace_options;
>
> -static frame_info_ptr get_prev_frame_raw (frame_info_ptr this_frame);
> +static frame_info *get_prev_frame_raw (frame_info *this_frame);
> static const char *frame_stop_reason_symbol_string (enum unwind_stop_reason reason);
>
> /* Status of some values cached in the frame_info object. */
> @@ -197,7 +197,7 @@ struct frame_info
> /* See frame.h. */
>
> void
> -set_frame_previous_pc_masked (frame_info_ptr frame)
> +set_frame_previous_pc_masked (frame_info *frame)
> {
> frame->prev_pc.masked = true;
> }
> @@ -562,7 +562,7 @@ skip_tailcall_frames (frame_info_ptr frame)
> frame. */
>
> static void
> -compute_frame_id (frame_info_ptr fi)
> +compute_frame_id (frame_info *fi)
> {
> FRAME_SCOPED_DEBUG_ENTER_EXIT;
>
> @@ -608,7 +608,7 @@ compute_frame_id (frame_info_ptr fi)
> frame. */
>
> struct frame_id
> -get_frame_id (frame_info_ptr fi)
> +get_frame_id (frame_info *fi)
> {
> if (fi == NULL)
> return null_frame_id;
> @@ -631,7 +631,7 @@ get_frame_id (frame_info_ptr fi)
>
> /* Since this is the first frame in the chain, this should
> always succeed. */
> - bool stashed = frame_stash_add (fi.get ());
> + bool stashed = frame_stash_add (fi);
> gdb_assert (stashed);
> }
>
> @@ -921,7 +921,7 @@ frame_find_by_id (struct frame_id id)
> }
>
> static CORE_ADDR
> -frame_unwind_pc (frame_info_ptr this_frame)
> +frame_unwind_pc (frame_info *this_frame)
> {
> if (this_frame->prev_pc.status == CC_UNKNOWN)
> {
> @@ -1004,11 +1004,11 @@ frame_unwind_caller_pc (frame_info_ptr this_frame)
> in this case. */
> gdb_assert (this_frame != NULL);
>
> - return frame_unwind_pc (this_frame);
> + return frame_unwind_pc (this_frame.get ());
> }
>
> bool
> -get_frame_func_if_available (frame_info_ptr this_frame, CORE_ADDR *pc)
> +get_frame_func_if_available (frame_info *this_frame, CORE_ADDR *pc)
> {
> frame_info *next_frame = this_frame->next;
>
> @@ -1051,7 +1051,7 @@ get_frame_func_if_available (frame_info_ptr this_frame, CORE_ADDR *pc)
> }
>
> CORE_ADDR
> -get_frame_func (frame_info_ptr this_frame)
> +get_frame_func (frame_info *this_frame)
> {
> CORE_ADDR pc;
>
> @@ -1066,7 +1066,7 @@ frame_save_as_regcache (frame_info_ptr this_frame)
> {
> auto cooked_read = [this_frame] (int regnum, gdb_byte *buf)
> {
> - if (!deprecated_frame_register_read (this_frame, regnum, buf))
> + if (!deprecated_frame_register_read (this_frame.get (), regnum, buf))
> return REG_UNAVAILABLE;
> else
> return REG_VALID;
> @@ -1128,7 +1128,7 @@ frame_pop (frame_info_ptr this_frame)
> }
>
> void
> -frame_register_unwind (frame_info_ptr next_frame, int regnum,
> +frame_register_unwind (frame_info *next_frame, int regnum,
> int *optimizedp, int *unavailablep,
> enum lval_type *lvalp, CORE_ADDR *addrp,
> int *realnump, gdb_byte *bufferp)
> @@ -1176,7 +1176,7 @@ frame_register_unwind (frame_info_ptr next_frame, int regnum,
> VALUEP is NULL, the registers value is not fetched/computed. */
>
> static void
> -frame_register (frame_info_ptr frame, int regnum,
> +frame_register (frame_info *frame, int regnum,
> int *optimizedp, int *unavailablep, enum lval_type *lvalp,
> CORE_ADDR *addrp, int *realnump, gdb_byte *bufferp)
> {
> @@ -1191,12 +1191,12 @@ frame_register (frame_info_ptr frame, int regnum,
> /* Obtain the register value by unwinding the register from the next
> (more inner frame). */
> gdb_assert (frame != NULL && frame->next != NULL);
> - frame_register_unwind (frame_info_ptr (frame->next), regnum, optimizedp,
> + frame_register_unwind (frame->next, regnum, optimizedp,
> unavailablep, lvalp, addrp, realnump, bufferp);
> }
>
> void
> -frame_unwind_register (frame_info_ptr next_frame, int regnum, gdb_byte *buf)
> +frame_unwind_register (frame_info *next_frame, int regnum, gdb_byte *buf)
> {
> int optimized;
> int unavailable;
> @@ -1216,14 +1216,13 @@ frame_unwind_register (frame_info_ptr next_frame, int regnum, gdb_byte *buf)
> }
>
> void
> -get_frame_register (frame_info_ptr frame,
> - int regnum, gdb_byte *buf)
> +get_frame_register (frame_info *frame, int regnum, gdb_byte *buf)
> {
> - frame_unwind_register (frame_info_ptr (frame->next), regnum, buf);
> + frame_unwind_register (frame->next, regnum, buf);
> }
>
> struct value *
> -frame_unwind_register_value (frame_info_ptr next_frame, int regnum)
> +frame_unwind_register_value (frame_info *next_frame, int regnum)
> {
> FRAME_SCOPED_DEBUG_ENTER_EXIT;
>
> @@ -1286,13 +1285,13 @@ frame_unwind_register_value (frame_info_ptr next_frame, int regnum)
> }
>
> struct value *
> -get_frame_register_value (frame_info_ptr frame, int regnum)
> +get_frame_register_value (frame_info *frame, int regnum)
> {
> - return frame_unwind_register_value (frame_info_ptr (frame->next), regnum);
> + return frame_unwind_register_value (frame->next, regnum);
> }
>
> LONGEST
> -frame_unwind_register_signed (frame_info_ptr next_frame, int regnum)
> +frame_unwind_register_signed (frame_info *next_frame, int regnum)
> {
> struct gdbarch *gdbarch = frame_unwind_arch (next_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -1318,13 +1317,13 @@ frame_unwind_register_signed (frame_info_ptr next_frame, int regnum)
> }
>
> LONGEST
> -get_frame_register_signed (frame_info_ptr frame, int regnum)
> +get_frame_register_signed (frame_info *frame, int regnum)
> {
> - return frame_unwind_register_signed (frame_info_ptr (frame->next), regnum);
> + return frame_unwind_register_signed (frame->next, regnum);
> }
>
> ULONGEST
> -frame_unwind_register_unsigned (frame_info_ptr next_frame, int regnum)
> +frame_unwind_register_unsigned (frame_info *next_frame, int regnum)
> {
> struct gdbarch *gdbarch = frame_unwind_arch (next_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -1352,9 +1351,9 @@ frame_unwind_register_unsigned (frame_info_ptr next_frame, int regnum)
> }
>
> ULONGEST
> -get_frame_register_unsigned (frame_info_ptr frame, int regnum)
> +get_frame_register_unsigned (frame_info *frame, int regnum)
> {
> - return frame_unwind_register_unsigned (frame_info_ptr (frame->next), regnum);
> + return frame_unwind_register_unsigned (frame->next, regnum);
> }
>
> bool
> @@ -1389,7 +1388,7 @@ put_frame_register (frame_info_ptr frame, int regnum,
> enum lval_type lval;
> CORE_ADDR addr;
>
> - frame_register (frame, regnum, &optim, &unavail,
> + frame_register (frame.get (), regnum, &optim, &unavail,
> &lval, &addr, &realnum, NULL);
> if (optim)
> error (_("Attempt to assign to a register that was not saved."));
> @@ -1417,7 +1416,7 @@ put_frame_register (frame_info_ptr frame, int regnum,
> Returns 0 if the register value could not be found. */
>
> bool
> -deprecated_frame_register_read (frame_info_ptr frame, int regnum,
> +deprecated_frame_register_read (frame_info *frame, int regnum,
> gdb_byte *myaddr)
> {
> int optimized;
> @@ -1433,7 +1432,7 @@ deprecated_frame_register_read (frame_info_ptr frame, int regnum,
> }
>
> bool
> -get_frame_register_bytes (frame_info_ptr frame, int regnum,
> +get_frame_register_bytes (frame_info *frame, int regnum,
> CORE_ADDR offset,
> gdb::array_view<gdb_byte> buffer,
> int *optimizedp, int *unavailablep)
> @@ -1492,8 +1491,7 @@ get_frame_register_bytes (frame_info_ptr frame, int regnum,
> else
> {
> struct value *value
> - = frame_unwind_register_value (frame_info_ptr (frame->next),
> - regnum);
> + = frame_unwind_register_value (frame->next, regnum);
> gdb_assert (value != NULL);
> *optimizedp = value_optimized_out (value);
> *unavailablep = !value_entirely_available (value);
> @@ -1552,8 +1550,7 @@ put_frame_register_bytes (frame_info_ptr frame, int regnum,
> else
> {
> struct value *value
> - = frame_unwind_register_value (frame_info_ptr (frame->next),
> - regnum);
> + = frame_unwind_register_value (frame->next, regnum);
> gdb_assert (value != NULL);
>
> memcpy ((char *) value_contents_writeable (value).data () + offset,
> @@ -1613,13 +1610,11 @@ frame_obstack_zalloc (unsigned long size)
> return data;
> }
>
> -static frame_info_ptr get_prev_frame_always_1 (frame_info_ptr this_frame);
> +static frame_info *get_prev_frame_always_1 (frame_info *this_frame);
>
> frame_info_ptr
> get_current_frame (void)
> {
> - frame_info_ptr current_frame;
> -
> /* First check, and report, the lack of registers. Having GDB
> report "No stack!" or "No memory" when the target doesn't even
> have registers is very confusing. Besides, "printcmd.exp"
> @@ -1650,10 +1645,10 @@ get_current_frame (void)
> want to leave with the current frame created and linked in --
> we should never end up with the sentinel frame as outermost
> frame. */
> - current_frame = get_prev_frame_always_1 (frame_info_ptr (sentinel_frame));
> + frame_info *current_frame = get_prev_frame_always_1 (sentinel_frame);
> gdb_assert (current_frame != NULL);
>
> - return current_frame;
> + return frame_info_ptr (current_frame);
> }
>
> /* The "selected" stack frame is used by default for local and arg
> @@ -1968,7 +1963,7 @@ create_new_frame (CORE_ADDR addr, CORE_ADDR pc)
>
> /* Select/initialize both the unwind function and the frame's type
> based on the PC. */
> - frame_unwind_find_by_frame (frame_info_ptr (fi), &fi->prologue_cache);
> + frame_unwind_find_by_frame (fi, &fi->prologue_cache);
>
> fi->this_id.p = frame_id_status::COMPUTED;
> fi->this_id.value = frame_id_build (addr, pc);
> @@ -1978,15 +1973,13 @@ create_new_frame (CORE_ADDR addr, CORE_ADDR pc)
> return frame_info_ptr (fi);
> }
>
> -/* Return the frame that THIS_FRAME calls (NULL if THIS_FRAME is the
> - innermost frame). Be careful to not fall off the bottom of the
> - frame chain and onto the sentinel frame. */
> +/* See frame.h. */
>
> -frame_info_ptr
> -get_next_frame (frame_info_ptr this_frame)
> +frame_info *
> +get_next_frame (frame_info *this_frame)
> {
> if (this_frame->level > 0)
> - return frame_info_ptr (this_frame->next);
> + return this_frame->next;
> else
> return NULL;
> }
> @@ -1995,8 +1988,8 @@ get_next_frame (frame_info_ptr this_frame)
> innermost (i.e. current) frame, return the sentinel frame. Thus,
> unlike get_next_frame(), NULL will never be returned. */
>
> -frame_info_ptr
> -get_next_frame_sentinel_okay (frame_info_ptr this_frame)
> +frame_info *
> +get_next_frame_sentinel_okay_raw (frame_info *this_frame)
> {
> gdb_assert (this_frame != NULL);
>
> @@ -2007,7 +2000,7 @@ get_next_frame_sentinel_okay (frame_info_ptr this_frame)
> is likely a coding error. */
> gdb_assert (this_frame != sentinel_frame);
>
> - return frame_info_ptr (this_frame->next);
> + return this_frame->next;
> }
>
> /* Observer for the target_changed event. */
> @@ -2056,7 +2049,7 @@ reinit_frame_cache (void)
> relative to this particular frame. */
>
> static void
> -frame_register_unwind_location (frame_info_ptr this_frame, int regnum,
> +frame_register_unwind_location (frame_info *this_frame, int regnum,
> int *optimizedp, enum lval_type *lvalp,
> CORE_ADDR *addrp, int *realnump)
> {
> @@ -2099,10 +2092,10 @@ frame_register_unwind_location (frame_info_ptr this_frame, int regnum,
> then the frame_id of the inline frame, calculated based off the frame_id
> of the previous frame, should also be a duplicate. */
>
> -static frame_info_ptr
> -get_prev_frame_maybe_check_cycle (frame_info_ptr this_frame)
> +static frame_info *
> +get_prev_frame_maybe_check_cycle (frame_info *this_frame)
> {
> - frame_info_ptr prev_frame = get_prev_frame_raw (this_frame);
> + frame_info *prev_frame = get_prev_frame_raw (this_frame);
>
> /* Don't compute the frame id of the current frame yet. Unwinding
> the sentinel frame can fail (e.g., if the thread is gone and we
> @@ -2156,7 +2149,7 @@ get_prev_frame_maybe_check_cycle (frame_info_ptr this_frame)
> PREV_FRAME into the cache; if PREV_FRAME is unique then we do want
> it in the cache, but if it is a duplicate and CYCLE_DETECTION_P is
> false, then we don't want to unlink it. */
> - if (!frame_stash_add (prev_frame.get ()) && cycle_detection_p)
> + if (!frame_stash_add (prev_frame) && cycle_detection_p)
> {
> /* Another frame with the same id was already in the stash. We just
> detected a cycle. */
> @@ -2187,8 +2180,8 @@ get_prev_frame_maybe_check_cycle (frame_info_ptr this_frame)
> TRY_CATCH block. Return the frame that called THIS_FRAME or NULL if
> there is no such frame. This may throw an exception. */
>
> -static frame_info_ptr
> -get_prev_frame_always_1 (frame_info_ptr this_frame)
> +static frame_info *
> +get_prev_frame_always_1 (frame_info *this_frame)
> {
> FRAME_SCOPED_DEBUG_ENTER_EXIT;
>
> @@ -2214,7 +2207,7 @@ get_prev_frame_always_1 (frame_info_ptr this_frame)
> frame_debug_printf
> (" -> nullptr // %s // cached",
> frame_stop_reason_symbol_string (this_frame->stop_reason));
> - return frame_info_ptr (this_frame->prev);
> + return this_frame->prev;
> }
>
> /* If the frame unwinder hasn't been selected yet, we must do so
> @@ -2272,9 +2265,9 @@ get_prev_frame_always_1 (frame_info_ptr this_frame)
> See the comment at frame_id_inner for details. */
> if (get_frame_type (this_frame) == NORMAL_FRAME
> && this_frame->next->unwind->type == NORMAL_FRAME
> - && frame_id_inner (get_frame_arch (frame_info_ptr (this_frame->next)),
> + && frame_id_inner (get_frame_arch (this_frame->next),
> get_frame_id (this_frame),
> - get_frame_id (frame_info_ptr (this_frame->next))))
> + get_frame_id (this_frame->next)))
> {
> CORE_ADDR this_pc_in_block;
> struct minimal_symbol *morestack_msym;
> @@ -2310,8 +2303,8 @@ get_prev_frame_always_1 (frame_info_ptr this_frame)
> if (this_frame->level > 0
> && gdbarch_pc_regnum (gdbarch) >= 0
> && get_frame_type (this_frame) == NORMAL_FRAME
> - && (get_frame_type (frame_info_ptr (this_frame->next)) == NORMAL_FRAME
> - || get_frame_type (frame_info_ptr (this_frame->next)) == INLINE_FRAME))
> + && (get_frame_type (this_frame->next) == NORMAL_FRAME
> + || get_frame_type (this_frame->next) == INLINE_FRAME))
> {
> int optimized, realnum, nrealnum;
> enum lval_type lval, nlval;
> @@ -2343,10 +2336,10 @@ get_prev_frame_always_1 (frame_info_ptr this_frame)
> Unlike get_prev_frame, this function always tries to unwind the
> frame. */
>
> -frame_info_ptr
> -get_prev_frame_always (frame_info_ptr this_frame)
> +frame_info *
> +get_prev_frame_always_raw (frame_info *this_frame)
> {
> - frame_info_ptr prev_frame = NULL;
> + frame_info *prev_frame = nullptr;
>
> try
> {
> @@ -2383,8 +2376,8 @@ get_prev_frame_always (frame_info_ptr this_frame)
> /* Construct a new "struct frame_info" and link it previous to
> this_frame. */
>
> -static frame_info_ptr
> -get_prev_frame_raw (frame_info_ptr this_frame)
> +static frame_info *
> +get_prev_frame_raw (frame_info *this_frame)
> {
> frame_info *prev_frame;
>
> @@ -2427,17 +2420,17 @@ get_prev_frame_raw (frame_info_ptr this_frame)
>
> /* Link it in. */
> this_frame->prev = prev_frame;
> - prev_frame->next = this_frame.get ();
> + prev_frame->next = this_frame;
>
> frame_debug_printf (" -> %s", prev_frame->to_string ().c_str ());
>
> - return frame_info_ptr (prev_frame);
> + return prev_frame;
> }
>
> /* Debug routine to print a NULL frame being returned. */
>
> static void
> -frame_debug_got_null_frame (frame_info_ptr this_frame,
> +frame_debug_got_null_frame (frame_info *this_frame,
> const char *reason)
> {
> if (frame_debug)
> @@ -2452,7 +2445,7 @@ frame_debug_got_null_frame (frame_info_ptr this_frame,
> /* Is this (non-sentinel) frame in the "main"() function? */
>
> static bool
> -inside_main_func (frame_info_ptr this_frame)
> +inside_main_func (frame_info *this_frame)
> {
> if (current_program_space->symfile_object_file == nullptr)
> return false;
> @@ -2489,7 +2482,7 @@ inside_main_func (frame_info_ptr this_frame)
> /* Test whether THIS_FRAME is inside the process entry point function. */
>
> static bool
> -inside_entry_func (frame_info_ptr this_frame)
> +inside_entry_func (frame_info *this_frame)
> {
> CORE_ADDR entry_point;
>
> @@ -2509,7 +2502,7 @@ inside_entry_func (frame_info_ptr this_frame)
> checking whether the program-counter is zero. */
>
> frame_info_ptr
> -get_prev_frame (frame_info_ptr this_frame)
> +get_prev_frame (frame_info *this_frame)
> {
> FRAME_SCOPED_DEBUG_ENTER_EXIT;
>
> @@ -2607,21 +2600,21 @@ get_prev_frame (frame_info_ptr this_frame)
> }
>
> CORE_ADDR
> -get_frame_pc (frame_info_ptr frame)
> +get_frame_pc (frame_info *frame)
> {
> gdb_assert (frame->next != NULL);
> - return frame_unwind_pc (frame_info_ptr (frame->next));
> + return frame_unwind_pc (frame->next);
> }
>
> bool
> -get_frame_pc_if_available (frame_info_ptr frame, CORE_ADDR *pc)
> +get_frame_pc_if_available (frame_info *frame, CORE_ADDR *pc)
> {
>
> gdb_assert (frame->next != NULL);
>
> try
> {
> - *pc = frame_unwind_pc (frame_info_ptr (frame->next));
> + *pc = frame_unwind_pc (frame->next);
> }
> catch (const gdb_exception_error &ex)
> {
> @@ -2637,12 +2630,12 @@ get_frame_pc_if_available (frame_info_ptr frame, CORE_ADDR *pc)
> /* Return an address that falls within THIS_FRAME's code block. */
>
> CORE_ADDR
> -get_frame_address_in_block (frame_info_ptr this_frame)
> +get_frame_address_in_block (frame_info *this_frame)
> {
> /* A draft address. */
> CORE_ADDR pc = get_frame_pc (this_frame);
>
> - frame_info_ptr next_frame (this_frame->next);
> + frame_info *next_frame = this_frame->next;
>
> /* Calling get_frame_pc returns the resume address for THIS_FRAME.
> Normally the resume address is inside the body of the function
> @@ -2684,7 +2677,7 @@ get_frame_address_in_block (frame_info_ptr this_frame)
> "calling" normal function should not be adjusted either. */
>
> while (get_frame_type (next_frame) == INLINE_FRAME)
> - next_frame = frame_info_ptr (next_frame->next);
> + next_frame = next_frame->next;
>
> if ((get_frame_type (next_frame) == NORMAL_FRAME
> || get_frame_type (next_frame) == TAILCALL_FRAME)
> @@ -2697,7 +2690,7 @@ get_frame_address_in_block (frame_info_ptr this_frame)
> }
>
> bool
> -get_frame_address_in_block_if_available (frame_info_ptr this_frame,
> +get_frame_address_in_block_if_available (frame_info *this_frame,
> CORE_ADDR *pc)
> {
>
> @@ -2722,7 +2715,7 @@ find_frame_sal (frame_info_ptr frame)
> int notcurrent;
> CORE_ADDR pc;
>
> - if (frame_inlined_callees (frame) > 0)
> + if (frame_inlined_callees (frame.get ()) > 0)
> {
> struct symbol *sym;
>
> @@ -2774,7 +2767,7 @@ find_frame_sal (frame_info_ptr frame)
> /* Per "frame.h", return the ``address'' of the frame. Code should
> really be using get_frame_id(). */
> CORE_ADDR
> -get_frame_base (frame_info_ptr fi)
> +get_frame_base (frame_info *fi)
> {
> return get_frame_id (fi).stack_addr;
> }
> @@ -2782,7 +2775,7 @@ get_frame_base (frame_info_ptr fi)
> /* High-level offsets into the frame. Used by the debug info. */
>
> CORE_ADDR
> -get_frame_base_address (frame_info_ptr fi)
> +get_frame_base_address (frame_info *fi)
> {
> if (get_frame_type (fi) != NORMAL_FRAME)
> return 0;
> @@ -2802,12 +2795,12 @@ get_frame_locals_address (frame_info_ptr fi)
> return 0;
> /* If there isn't a frame address method, find it. */
> if (fi->base == NULL)
> - fi->base = frame_base_find_by_frame (fi);
> + fi->base = frame_base_find_by_frame (fi.get ());
> /* Sneaky: If the low-level unwind and high-level base code share a
> common unwinder, let them share the prologue cache. */
> if (fi->base->unwind == fi->unwind)
> - return fi->base->this_locals (fi, &fi->prologue_cache);
> - return fi->base->this_locals (fi, &fi->base_cache);
> + return fi->base->this_locals (fi.get (), &fi->prologue_cache);
> + return fi->base->this_locals (fi.get (), &fi->base_cache);
> }
>
> CORE_ADDR
> @@ -2817,19 +2810,19 @@ get_frame_args_address (frame_info_ptr fi)
> return 0;
> /* If there isn't a frame address method, find it. */
> if (fi->base == NULL)
> - fi->base = frame_base_find_by_frame (fi);
> + fi->base = frame_base_find_by_frame (fi.get ());
> /* Sneaky: If the low-level unwind and high-level base code share a
> common unwinder, let them share the prologue cache. */
> if (fi->base->unwind == fi->unwind)
> - return fi->base->this_args (fi, &fi->prologue_cache);
> - return fi->base->this_args (fi, &fi->base_cache);
> + return fi->base->this_args (fi.get (), &fi->prologue_cache);
> + return fi->base->this_args (fi.get (), &fi->base_cache);
> }
>
> /* Return true if the frame unwinder for frame FI is UNWINDER; false
> otherwise. */
>
> bool
> -frame_unwinder_is (frame_info_ptr fi, const frame_unwind *unwinder)
> +frame_unwinder_is (frame_info *fi, const frame_unwind *unwinder)
> {
> if (fi->unwind == nullptr)
> frame_unwind_find_by_frame (fi, &fi->prologue_cache);
> @@ -2841,7 +2834,7 @@ frame_unwinder_is (frame_info_ptr fi, const frame_unwind *unwinder)
> or -1 for a NULL frame. */
>
> int
> -frame_relative_level (frame_info_ptr fi)
> +frame_relative_level (frame_info *fi)
> {
> if (fi == NULL)
> return -1;
> @@ -2850,7 +2843,7 @@ frame_relative_level (frame_info_ptr fi)
> }
>
> enum frame_type
> -get_frame_type (frame_info_ptr frame)
> +get_frame_type (frame_info *frame)
> {
> if (frame->unwind == NULL)
> /* Initialize the frame's unwinder because that's what
> @@ -2900,7 +2893,7 @@ get_frame_memory (frame_info_ptr this_frame, CORE_ADDR addr,
> }
>
> LONGEST
> -get_frame_memory_signed (frame_info_ptr this_frame, CORE_ADDR addr,
> +get_frame_memory_signed (frame_info *this_frame, CORE_ADDR addr,
> int len)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2910,7 +2903,7 @@ get_frame_memory_signed (frame_info_ptr this_frame, CORE_ADDR addr,
> }
>
> ULONGEST
> -get_frame_memory_unsigned (frame_info_ptr this_frame, CORE_ADDR addr,
> +get_frame_memory_unsigned (frame_info *this_frame, CORE_ADDR addr,
> int len)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2920,7 +2913,7 @@ get_frame_memory_unsigned (frame_info_ptr this_frame, CORE_ADDR addr,
> }
>
> bool
> -safe_frame_unwind_memory (frame_info_ptr this_frame,
> +safe_frame_unwind_memory (frame_info *this_frame,
> CORE_ADDR addr, gdb::array_view<gdb_byte> buffer)
> {
> /* NOTE: target_read_memory returns zero on success! */
> @@ -2930,13 +2923,13 @@ safe_frame_unwind_memory (frame_info_ptr this_frame,
> /* Architecture methods. */
>
> struct gdbarch *
> -get_frame_arch (frame_info_ptr this_frame)
> +get_frame_arch (frame_info *this_frame)
> {
> - return frame_unwind_arch (frame_info_ptr (this_frame->next));
> + return frame_unwind_arch (this_frame->next);
> }
>
> struct gdbarch *
> -frame_unwind_arch (frame_info_ptr next_frame)
> +frame_unwind_arch (frame_info *next_frame)
> {
> if (!next_frame->prev_arch.p)
> {
> @@ -3018,19 +3011,19 @@ get_frame_language (frame_info_ptr frame)
> /* Stack pointer methods. */
>
> CORE_ADDR
> -get_frame_sp (frame_info_ptr this_frame)
> +get_frame_sp (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
>
> /* NOTE drow/2008-06-28: gdbarch_unwind_sp could be converted to
> operate on THIS_FRAME now. */
> - return gdbarch_unwind_sp (gdbarch, frame_info_ptr (this_frame->next));
> + return gdbarch_unwind_sp (gdbarch, this_frame->next);
> }
>
> /* Return the reason why we can't unwind past FRAME. */
>
> enum unwind_stop_reason
> -get_frame_unwind_stop_reason (frame_info_ptr frame)
> +get_frame_unwind_stop_reason (frame_info *frame)
> {
> /* Fill-in STOP_REASON. */
> get_prev_frame_always (frame);
> @@ -3092,7 +3085,7 @@ frame_stop_reason_symbol_string (enum unwind_stop_reason reason)
> FRAME. */
>
> void
> -frame_cleanup_after_sniffer (frame_info_ptr frame)
> +frame_cleanup_after_sniffer (frame_info *frame)
> {
> /* The sniffer should not allocate a prologue cache if it did not
> match this frame. */
> @@ -3122,7 +3115,7 @@ frame_cleanup_after_sniffer (frame_info_ptr frame)
> frame_cleanup_after_sniffer. */
>
> void
> -frame_prepare_for_sniffer (frame_info_ptr frame,
> +frame_prepare_for_sniffer (frame_info *frame,
> const struct frame_unwind *unwind)
> {
> gdb_assert (frame->unwind == NULL);
> diff --git a/gdb/frame.h b/gdb/frame.h
> index 12cb27573f4e..2182ca7d4665 100644
> --- a/gdb/frame.h
> +++ b/gdb/frame.h
> @@ -265,19 +265,72 @@ extern void restore_selected_frame (frame_id frame_id, int frame_level)
>
> /* Given a FRAME, return the next (more inner, younger) or previous
> (more outer, older) frame. */
> -extern frame_info_ptr get_prev_frame (frame_info_ptr);
> -extern frame_info_ptr get_next_frame (frame_info_ptr);
> +extern frame_info_ptr get_prev_frame (frame_info *frame);
>
> -/* Like get_next_frame(), but allows return of the sentinel frame. NULL
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline frame_info_ptr
> +get_prev_frame (frame_info_ptr frame)
> +{
> + return get_prev_frame (frame.get ());
> +}
> +
> +/* Return the frame that FRAME calls (nullptr if FRAME is the
> + innermost frame), as raw frame_info pointer.
> +
> + This is meant to be used by the context of some unwinders, where the next
> + frame's id may not be computed yet (and therefore can't be wrapped in a
> + frame_info_ptr). Most callers should use get_next_frame. */
> +
> +extern frame_info *get_next_frame (frame_info *frame);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline frame_info_ptr
> +get_next_frame (frame_info_ptr frame)
> +{
> + return frame_info_ptr (get_next_frame (frame.get ()));
> +};
> +
> +/* Like get_next_frame_raw(), but allows return of the sentinel frame. NULL
> is never returned. */
> -extern frame_info_ptr get_next_frame_sentinel_okay (frame_info_ptr);
> +
> +extern frame_info *get_next_frame_sentinel_okay_raw (frame_info *this_frame);
> +
> +static inline frame_info_ptr
> +get_next_frame_sentinel_okay (frame_info *this_frame)
> +{
> + return frame_info_ptr (get_next_frame_sentinel_okay_raw (this_frame));
> +}
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline frame_info_ptr
> +get_next_frame_sentinel_okay (frame_info_ptr this_frame)
> +{
> + return get_next_frame_sentinel_okay (this_frame.get ());
> +}
>
> /* Return a "struct frame_info" corresponding to the frame that called
> THIS_FRAME. Returns NULL if there is no such frame.
>
> Unlike get_prev_frame, this function always tries to unwind the
> frame. */
> -extern frame_info_ptr get_prev_frame_always (frame_info_ptr);
> +extern frame_info *get_prev_frame_always_raw (frame_info *this_frame);
> +
> +static inline frame_info_ptr
> +get_prev_frame_always (frame_info *this_frame)
> +{
> + return frame_info_ptr (get_prev_frame_always_raw (this_frame));
> +}
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline frame_info_ptr
> +get_prev_frame_always (frame_info_ptr this_frame)
> +{
> + return get_prev_frame_always (this_frame.get ());
> +}
>
> /* Given a frame's ID, relocate the frame. Returns NULL if the frame
> is not found. */
> @@ -289,12 +342,28 @@ extern frame_info_ptr frame_find_by_id (frame_id id);
> this frame.
>
> This replaced: frame->pc; */
> -extern CORE_ADDR get_frame_pc (frame_info_ptr);
> +extern CORE_ADDR get_frame_pc (frame_info *frame);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline CORE_ADDR
> +get_frame_pc (frame_info_ptr frame)
> +{
> + return get_frame_pc (frame.get ());
> +}
>
> /* Same as get_frame_pc, but return a boolean indication of whether
> the PC is actually available, instead of throwing an error. */
>
> -extern bool get_frame_pc_if_available (frame_info_ptr frame, CORE_ADDR *pc);
> +extern bool get_frame_pc_if_available (frame_info *frame, CORE_ADDR *pc);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline bool
> +get_frame_pc_if_available (frame_info_ptr frame, CORE_ADDR *pc)
> +{
> + return get_frame_pc_if_available (frame.get (), pc);
> +}
>
> /* An address (not necessarily aligned to an instruction boundary)
> that falls within THIS frame's code block.
> @@ -309,32 +378,65 @@ extern bool get_frame_pc_if_available (frame_info_ptr frame, CORE_ADDR *pc);
> function returns the frame's PC-1 which "should" be an address in
> the frame's block. */
>
> -extern CORE_ADDR get_frame_address_in_block (frame_info_ptr this_frame);
> +extern CORE_ADDR get_frame_address_in_block (frame_info *this_frame);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline CORE_ADDR
> +get_frame_address_in_block (frame_info_ptr this_frame)
> +{
> + return get_frame_address_in_block (this_frame.get ());
> +}
>
> /* Same as get_frame_address_in_block, but returns a boolean
> indication of whether the frame address is determinable (when the
> PC is unavailable, it will not be), instead of possibly throwing an
> error trying to read an unavailable PC. */
>
> -extern bool get_frame_address_in_block_if_available (frame_info_ptr this_frame,
> +extern bool get_frame_address_in_block_if_available (frame_info *this_frame,
> CORE_ADDR *pc);
>
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline bool
> +get_frame_address_in_block_if_available (frame_info_ptr this_frame,
> + CORE_ADDR *pc)
> +{
> + return get_frame_address_in_block_if_available (this_frame.get (), pc);
> +}
> +
> /* The frame's inner-most bound. AKA the stack-pointer. Confusingly
> known as top-of-stack. */
>
> -extern CORE_ADDR get_frame_sp (frame_info_ptr);
> +extern CORE_ADDR get_frame_sp (frame_info *this_frame);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline CORE_ADDR
> +get_frame_sp (frame_info_ptr this_frame)
> +{
> + return get_frame_sp (this_frame.get ());
> +}
>
> /* Following on from the `resume' address. Return the entry point
> address of the function containing that resume address, or zero if
> that function isn't known. */
> -extern CORE_ADDR get_frame_func (frame_info_ptr fi);
> +extern CORE_ADDR get_frame_func (frame_info *fi);
>
> /* Same as get_frame_func, but returns a boolean indication of whether
> the frame function is determinable (when the PC is unavailable, it
> will not be), instead of possibly throwing an error trying to read
> an unavailable PC. */
>
> -extern bool get_frame_func_if_available (frame_info_ptr fi, CORE_ADDR *);
> +extern bool get_frame_func_if_available (frame_info *fi, CORE_ADDR *pc);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline bool
> +get_frame_func_if_available (frame_info_ptr fi, CORE_ADDR *pc)
> +{
> + return get_frame_func_if_available (fi.get (), pc);
> +}
>
> /* Closely related to the resume address, various symbol table
> attributes that are determined by the PC. Note that for a normal
> @@ -383,19 +485,44 @@ void set_current_sal_from_frame (frame_info_ptr);
>
> This replaced: frame->frame; */
>
> -extern CORE_ADDR get_frame_base (frame_info_ptr);
> +extern CORE_ADDR get_frame_base (frame_info *fi);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline CORE_ADDR
> +get_frame_base (frame_info_ptr fi)
> +{
> + return get_frame_base (fi.get ());
> +}
>
> /* Return the per-frame unique identifer. Can be used to relocate a
> frame after a frame cache flush (and other similar operations). If
> FI is NULL, return the null_frame_id. */
> -extern struct frame_id get_frame_id (frame_info_ptr fi);
> +extern struct frame_id get_frame_id (frame_info *fi);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline frame_id
> +get_frame_id (frame_info_ptr fi)
> +{
> + return get_frame_id (fi.get ());
> +}
> +
> extern struct frame_id get_stack_frame_id (frame_info_ptr fi);
> extern struct frame_id frame_unwind_caller_id (frame_info_ptr next_frame);
>
> /* Assuming that a frame is `normal', return its base-address, or 0 if
> the information isn't available. NOTE: This address is really only
> meaningful to the frame's high-level debug info. */
> -extern CORE_ADDR get_frame_base_address (frame_info_ptr);
> +extern CORE_ADDR get_frame_base_address (frame_info *fi);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline CORE_ADDR
> +get_frame_base_address (frame_info_ptr fi)
> +{
> + return get_frame_base_address (fi.get ());
> +}
>
> /* Assuming that a frame is `normal', return the base-address of the
> local variables, or 0 if the information isn't available. NOTE:
> @@ -413,11 +540,26 @@ extern CORE_ADDR get_frame_args_address (frame_info_ptr);
>
> /* The frame's level: 0 for innermost, 1 for its caller, ...; or -1
> for an invalid frame). */
> -extern int frame_relative_level (frame_info_ptr fi);
> +extern int frame_relative_level (frame_info *fi);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline int frame_relative_level (frame_info_ptr fi)
> +{
> + return frame_relative_level (fi.get ());
> +}
>
> /* Return the frame's type. */
>
> -extern enum frame_type get_frame_type (frame_info_ptr);
> +extern enum frame_type get_frame_type (frame_info *frame);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline frame_type
> +get_frame_type (frame_info_ptr frame)
> +{
> + return get_frame_type (frame.get ());
> +}
>
> /* Return whether FRAME is user created. */
>
> @@ -452,7 +594,15 @@ enum unwind_stop_reason
>
> /* Return the reason why we can't unwind past this frame. */
>
> -enum unwind_stop_reason get_frame_unwind_stop_reason (frame_info_ptr);
> +enum unwind_stop_reason get_frame_unwind_stop_reason (frame_info *frame);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline unwind_stop_reason
> +get_frame_unwind_stop_reason (frame_info_ptr frame)
> +{
> + return get_frame_unwind_stop_reason (frame.get ());
> +}
>
> /* Translate a reason code to an informative string. This converts the
> generic stop reason codes into a generic string describing the code.
> @@ -475,37 +625,99 @@ const char *frame_stop_reason_string (frame_info_ptr);
> (up, older) frame is returned. If VALUEP is NULL, don't
> fetch/compute the value. Instead just return the location of the
> value. */
> -extern void frame_register_unwind (frame_info_ptr frame, int regnum,
> +extern void frame_register_unwind (frame_info *frame, int regnum,
> int *optimizedp, int *unavailablep,
> enum lval_type *lvalp,
> CORE_ADDR *addrp, int *realnump,
> gdb_byte *valuep);
>
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline void
> +frame_register_unwind (frame_info_ptr frame, int regnum, int *optimizedp,
> + int *unavailablep, enum lval_type *lvalp,
> + CORE_ADDR *addrp, int *realnump, gdb_byte *valuep)
> +{
> + return frame_register_unwind (frame.get (), regnum, optimizedp, unavailablep,
> + lvalp, addrp, realnump, valuep);
> +}
> +
> /* Fetch a register from this, or unwind a register from the next
> frame. Note that the get_frame methods are wrappers to
> frame->next->unwind. They all [potentially] throw an error if the
> fetch fails. The value methods never return NULL, but usually
> do return a lazy value. */
>
> -extern void frame_unwind_register (frame_info_ptr next_frame,
> +extern void frame_unwind_register (frame_info *next_frame,
> int regnum, gdb_byte *buf);
> -extern void get_frame_register (frame_info_ptr frame,
> - int regnum, gdb_byte *buf);
>
> -struct value *frame_unwind_register_value (frame_info_ptr next_frame,
> +extern void get_frame_register (frame_info *frame, int regnum, gdb_byte *buf);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline void
> +get_frame_register (frame_info_ptr frame, int regnum, gdb_byte *buf)
> +{
> + return get_frame_register (frame.get (), regnum, buf);
> +}
> +
> +struct value *frame_unwind_register_value (frame_info *next_frame,
> int regnum);
> -struct value *get_frame_register_value (frame_info_ptr frame,
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline value *
> +frame_unwind_register_value (frame_info_ptr next_frame, int regnum)
> +{
> + return frame_unwind_register_value (next_frame.get (), regnum);
> +}
> +
> +struct value *get_frame_register_value (frame_info *frame,
> int regnum);
>
> -extern LONGEST frame_unwind_register_signed (frame_info_ptr next_frame,
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline value *
> +get_frame_register_value (frame_info_ptr frame, int regnum)
> +{
> + return get_frame_register_value (frame.get (), regnum);
> +}
> +
> +extern LONGEST frame_unwind_register_signed (frame_info *next_frame,
> int regnum);
> -extern LONGEST get_frame_register_signed (frame_info_ptr frame,
> - int regnum);
> -extern ULONGEST frame_unwind_register_unsigned (frame_info_ptr frame,
> +
> +extern LONGEST get_frame_register_signed (frame_info *frame, int regnum);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline ULONGEST
> +get_frame_register_signed (frame_info_ptr frame, int regnum)
> +{
> + return get_frame_register_signed (frame.get (), regnum);
> +}
> +
> +extern ULONGEST frame_unwind_register_unsigned (frame_info *frame,
> int regnum);
> -extern ULONGEST get_frame_register_unsigned (frame_info_ptr frame,
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline ULONGEST
> +frame_unwind_register_unsigned (frame_info_ptr frame, int regnum)
> +{
> + return frame_unwind_register_unsigned (frame.get (), regnum);
> +}
> +
> +extern ULONGEST get_frame_register_unsigned (frame_info *frame,
> int regnum);
>
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline ULONGEST
> +get_frame_register_unsigned (frame_info_ptr frame, int regnum)
> +{
> + return get_frame_register_unsigned (frame.get (), regnum);
> +}
> +
> /* Read a register from this, or unwind a register from the next
> frame. Note that the read_frame methods are wrappers to
> get_frame_register_value, that do not throw if the result is
> @@ -524,11 +736,22 @@ extern void put_frame_register (frame_info_ptr frame, int regnum,
> in frame FRAME, starting at OFFSET, into BUF. If the register
> contents are optimized out or unavailable, set *OPTIMIZEDP,
> *UNAVAILABLEP accordingly. */
> -extern bool get_frame_register_bytes (frame_info_ptr frame, int regnum,
> +extern bool get_frame_register_bytes (frame_info *frame, int regnum,
> CORE_ADDR offset,
> gdb::array_view<gdb_byte> buffer,
> int *optimizedp, int *unavailablep);
>
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline bool
> +get_frame_register_bytes (frame_info_ptr frame, int regnum, CORE_ADDR offset,
> + gdb::array_view<gdb_byte> buffer, int *optimizedp,
> + int *unavailablep)
> +{
> + return get_frame_register_bytes (frame.get (), regnum, offset, buffer,
> + optimizedp, unavailablep);
> +}
> +
> /* Write bytes from BUFFER to one or multiple registers starting with REGNUM
> in frame FRAME, starting at OFFSET. */
> extern void put_frame_register_bytes (frame_info_ptr frame, int regnum,
> @@ -560,21 +783,45 @@ extern void frame_pop (frame_info_ptr frame);
>
> extern void get_frame_memory (frame_info_ptr this_frame, CORE_ADDR addr,
> gdb::array_view<gdb_byte> buffer);
> -extern LONGEST get_frame_memory_signed (frame_info_ptr this_frame,
> +extern LONGEST get_frame_memory_signed (frame_info *this_frame,
> CORE_ADDR memaddr, int len);
> -extern ULONGEST get_frame_memory_unsigned (frame_info_ptr this_frame,
> +extern ULONGEST get_frame_memory_unsigned (frame_info *this_frame,
> CORE_ADDR memaddr, int len);
>
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline ULONGEST
> +get_frame_memory_unsigned (frame_info_ptr this_frame, CORE_ADDR memaddr, int len)
> +{
> + return get_frame_memory_unsigned (this_frame.get (), memaddr, len);
> +}
> +
> /* Same as above, but return true zero when the entire memory read
> succeeds, false otherwise. */
> -extern bool safe_frame_unwind_memory (frame_info_ptr this_frame, CORE_ADDR addr,
> +extern bool safe_frame_unwind_memory (frame_info *this_frame, CORE_ADDR addr,
> gdb::array_view<gdb_byte> buffer);
>
> /* Return this frame's architecture. */
> -extern struct gdbarch *get_frame_arch (frame_info_ptr this_frame);
> +extern struct gdbarch *get_frame_arch (frame_info *this_frame);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline gdbarch *
> +get_frame_arch (frame_info_ptr this_frame)
> +{
> + return get_frame_arch (this_frame.get ());
> +}
>
> /* Return the previous frame's architecture. */
> -extern struct gdbarch *frame_unwind_arch (frame_info_ptr next_frame);
> +extern struct gdbarch *frame_unwind_arch (frame_info *next_frame);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline gdbarch *
> +frame_unwind_arch (frame_info_ptr next_frame)
> +{
> + return frame_unwind_arch (next_frame.get ());
> +}
>
> /* Return the previous frame's architecture, skipping inline functions. */
> extern struct gdbarch *frame_unwind_caller_arch (frame_info_ptr frame);
> @@ -619,9 +866,17 @@ class readonly_detached_regcache;
> std::unique_ptr<readonly_detached_regcache> frame_save_as_regcache
> (frame_info_ptr this_frame);
>
> -extern const struct block *get_frame_block (frame_info_ptr,
> +extern const struct block *get_frame_block (frame_info *this_frame,
> CORE_ADDR *addr_in_block);
>
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline const struct block *
> +get_frame_block (frame_info_ptr this_frame, CORE_ADDR *addr_in_block)
> +{
> + return get_frame_block (this_frame.get (), addr_in_block);
> +}
> +
> /* Return the `struct block' that belongs to the selected thread's
> selected frame. If the inferior has no state, return NULL.
>
> @@ -650,7 +905,15 @@ extern const struct block *get_frame_block (frame_info_ptr,
>
> extern const struct block *get_selected_block (CORE_ADDR *addr_in_block);
>
> -extern struct symbol *get_frame_function (frame_info_ptr);
> +extern struct symbol *get_frame_function (frame_info *frame);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline symbol *
> +get_frame_function (frame_info_ptr frame)
> +{
> + return get_frame_function (frame.get ());
> +}
>
> extern CORE_ADDR get_pc_function_start (CORE_ADDR);
>
> @@ -675,7 +938,7 @@ extern void print_frame_info (const frame_print_options &fp_opts,
>
> extern frame_info_ptr block_innermost_frame (const struct block *);
>
> -extern bool deprecated_frame_register_read (frame_info_ptr frame, int regnum,
> +extern bool deprecated_frame_register_read (frame_info *frame, int regnum,
> gdb_byte *buf);
>
> /* From stack.c. */
> @@ -763,13 +1026,13 @@ extern void return_command (const char *, int);
> If sniffing fails, the caller should be sure to call
> frame_cleanup_after_sniffer. */
>
> -extern void frame_prepare_for_sniffer (frame_info_ptr frame,
> +extern void frame_prepare_for_sniffer (frame_info *frame,
> const struct frame_unwind *unwind);
>
> /* Clean up after a failed (wrong unwinder) attempt to unwind past
> FRAME. */
>
> -extern void frame_cleanup_after_sniffer (frame_info_ptr frame);
> +extern void frame_cleanup_after_sniffer (frame_info *frame);
>
> /* Notes (cagney/2002-11-27, drow/2003-09-06):
>
> @@ -810,7 +1073,7 @@ extern frame_info_ptr create_new_frame (CORE_ADDR base, CORE_ADDR pc);
> /* Return true if the frame unwinder for frame FI is UNWINDER; false
> otherwise. */
>
> -extern bool frame_unwinder_is (frame_info_ptr fi, const frame_unwind *unwinder);
> +extern bool frame_unwinder_is (frame_info *fi, const frame_unwind *unwinder);
>
> /* Return the language of FRAME. */
>
> @@ -857,7 +1120,7 @@ unsigned int get_frame_cache_generation ();
>
> /* Mark that the PC value is masked for the previous frame. */
>
> -extern void set_frame_previous_pc_masked (frame_info_ptr frame);
> +extern void set_frame_previous_pc_masked (frame_info *frame);
>
> /* Get whether the PC value is masked for the given frame. */
>
> diff --git a/gdb/frv-linux-tdep.c b/gdb/frv-linux-tdep.c
> index 41344c82370a..2784cbefa0c0 100644
> --- a/gdb/frv-linux-tdep.c
> +++ b/gdb/frv-linux-tdep.c
> @@ -168,7 +168,7 @@ frv_linux_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc,
> } __attribute__((aligned(8))); */
>
> static LONGEST
> -frv_linux_sigcontext_reg_addr (frame_info_ptr this_frame, int regno,
> +frv_linux_sigcontext_reg_addr (frame_info *this_frame, int regno,
> CORE_ADDR *sc_addr_cache_ptr)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -258,7 +258,7 @@ frv_linux_sigcontext_reg_addr (frame_info_ptr this_frame, int regno,
> /* Signal trampolines. */
>
> static struct trad_frame_cache *
> -frv_linux_sigtramp_frame_cache (frame_info_ptr this_frame,
> +frv_linux_sigtramp_frame_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -297,7 +297,7 @@ frv_linux_sigtramp_frame_cache (frame_info_ptr this_frame,
> }
>
> static void
> -frv_linux_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +frv_linux_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -307,7 +307,7 @@ frv_linux_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -frv_linux_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +frv_linux_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> /* Make sure we've initialized the cache. */
> @@ -318,7 +318,7 @@ frv_linux_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> frv_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c
> index 056aad3f17e7..383aca4594cc 100644
> --- a/gdb/frv-tdep.c
> +++ b/gdb/frv-tdep.c
> @@ -504,7 +504,7 @@ is_argument_reg (int reg)
> prologue analysis. */
> static CORE_ADDR
> frv_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct frv_unwind_cache *info)
> {
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -1078,7 +1078,7 @@ frv_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
>
>
> static struct frv_unwind_cache *
> -frv_frame_unwind_cache (frame_info_ptr this_frame,
> +frv_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -1361,7 +1361,7 @@ frv_return_value (struct gdbarch *gdbarch, struct value *function,
> frame. This will be used to create a new GDB frame struct. */
>
> static void
> -frv_frame_this_id (frame_info_ptr this_frame,
> +frv_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache, struct frame_id *this_id)
> {
> struct frv_unwind_cache *info
> @@ -1391,7 +1391,7 @@ frv_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -frv_frame_prev_register (frame_info_ptr this_frame,
> +frv_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct frv_unwind_cache *info
> @@ -1410,7 +1410,7 @@ static const struct frame_unwind frv_frame_unwind = {
> };
>
> static CORE_ADDR
> -frv_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +frv_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct frv_unwind_cache *info
> = frv_frame_unwind_cache (this_frame, this_cache);
> diff --git a/gdb/ft32-tdep.c b/gdb/ft32-tdep.c
> index 8da3dbae5928..e831fbb6f28b 100644
> --- a/gdb/ft32-tdep.c
> +++ b/gdb/ft32-tdep.c
> @@ -449,7 +449,7 @@ ft32_alloc_frame_cache (void)
> /* Populate a ft32_frame_cache object for this_frame. */
>
> static struct ft32_frame_cache *
> -ft32_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +ft32_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct ft32_frame_cache *cache;
> CORE_ADDR current_pc;
> @@ -489,7 +489,7 @@ ft32_frame_cache (frame_info_ptr this_frame, void **this_cache)
> frame. This will be used to create a new GDB frame struct. */
>
> static void
> -ft32_frame_this_id (frame_info_ptr this_frame,
> +ft32_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache, struct frame_id *this_id)
> {
> struct ft32_frame_cache *cache = ft32_frame_cache (this_frame,
> @@ -505,7 +505,7 @@ ft32_frame_this_id (frame_info_ptr this_frame,
> /* Get the value of register regnum in the previous stack frame. */
>
> static struct value *
> -ft32_frame_prev_register (frame_info_ptr this_frame,
> +ft32_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct ft32_frame_cache *cache = ft32_frame_cache (this_frame,
> @@ -537,7 +537,7 @@ static const struct frame_unwind ft32_frame_unwind =
> /* Return the base address of this_frame. */
>
> static CORE_ADDR
> -ft32_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +ft32_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct ft32_frame_cache *cache = ft32_frame_cache (this_frame,
> this_cache);
> diff --git a/gdb/gdbarch-components.py b/gdb/gdbarch-components.py
> index e7230949aad5..ff07f6f5bd8b 100644
> --- a/gdb/gdbarch-components.py
> +++ b/gdb/gdbarch-components.py
> @@ -613,7 +613,7 @@ frame.
> """,
> type="struct frame_id",
> name="dummy_id",
> - params=[("frame_info_ptr", "this_frame")],
> + params=[("frame_info *", "this_frame")],
> predefault="default_dummy_id",
> invalid=False,
> )
> @@ -778,7 +778,7 @@ Function(
> type="int",
> name="register_to_value",
> params=[
> - ("frame_info_ptr", "frame"),
> + ("frame_info *", "frame"),
> ("int", "regnum"),
> ("struct type *", "type"),
> ("gdb_byte *", "buf"),
> @@ -1080,7 +1080,7 @@ Value(
> Method(
> type="CORE_ADDR",
> name="unwind_pc",
> - params=[("frame_info_ptr", "next_frame")],
> + params=[("frame_info *", "next_frame")],
> predefault="default_unwind_pc",
> invalid=False,
> )
> @@ -1088,7 +1088,7 @@ Method(
> Method(
> type="CORE_ADDR",
> name="unwind_sp",
> - params=[("frame_info_ptr", "next_frame")],
> + params=[("frame_info *", "next_frame")],
> predefault="default_unwind_sp",
> invalid=False,
> )
> diff --git a/gdb/gdbarch-gen.h b/gdb/gdbarch-gen.h
> index a663316df166..d796125fcb23 100644
> --- a/gdb/gdbarch-gen.h
> +++ b/gdb/gdbarch-gen.h
> @@ -315,8 +315,8 @@ extern void set_gdbarch_register_type (struct gdbarch *gdbarch, gdbarch_register
> should match the address at which the breakpoint was set in the dummy
> frame. */
>
> -typedef struct frame_id (gdbarch_dummy_id_ftype) (struct gdbarch *gdbarch, frame_info_ptr this_frame);
> -extern struct frame_id gdbarch_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame);
> +typedef struct frame_id (gdbarch_dummy_id_ftype) (struct gdbarch *gdbarch, frame_info *this_frame);
> +extern struct frame_id gdbarch_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame);
> extern void set_gdbarch_dummy_id (struct gdbarch *gdbarch, gdbarch_dummy_id_ftype *dummy_id);
>
> /* Implement DUMMY_ID and PUSH_DUMMY_CALL, then delete
> @@ -393,8 +393,8 @@ typedef int (gdbarch_convert_register_p_ftype) (struct gdbarch *gdbarch, int reg
> extern int gdbarch_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type);
> extern void set_gdbarch_convert_register_p (struct gdbarch *gdbarch, gdbarch_convert_register_p_ftype *convert_register_p);
>
> -typedef int (gdbarch_register_to_value_ftype) (frame_info_ptr frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep);
> -extern int gdbarch_register_to_value (struct gdbarch *gdbarch, frame_info_ptr frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep);
> +typedef int (gdbarch_register_to_value_ftype) (frame_info *frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep);
> +extern int gdbarch_register_to_value (struct gdbarch *gdbarch, frame_info *frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep);
> extern void set_gdbarch_register_to_value (struct gdbarch *gdbarch, gdbarch_register_to_value_ftype *register_to_value);
>
> typedef void (gdbarch_value_to_register_ftype) (frame_info_ptr frame, int regnum, struct type *type, const gdb_byte *buf);
> @@ -578,12 +578,12 @@ extern void set_gdbarch_get_thread_local_address (struct gdbarch *gdbarch, gdbar
> extern CORE_ADDR gdbarch_frame_args_skip (struct gdbarch *gdbarch);
> extern void set_gdbarch_frame_args_skip (struct gdbarch *gdbarch, CORE_ADDR frame_args_skip);
>
> -typedef CORE_ADDR (gdbarch_unwind_pc_ftype) (struct gdbarch *gdbarch, frame_info_ptr next_frame);
> -extern CORE_ADDR gdbarch_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame);
> +typedef CORE_ADDR (gdbarch_unwind_pc_ftype) (struct gdbarch *gdbarch, frame_info *next_frame);
> +extern CORE_ADDR gdbarch_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame);
> extern void set_gdbarch_unwind_pc (struct gdbarch *gdbarch, gdbarch_unwind_pc_ftype *unwind_pc);
>
> -typedef CORE_ADDR (gdbarch_unwind_sp_ftype) (struct gdbarch *gdbarch, frame_info_ptr next_frame);
> -extern CORE_ADDR gdbarch_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame);
> +typedef CORE_ADDR (gdbarch_unwind_sp_ftype) (struct gdbarch *gdbarch, frame_info *next_frame);
> +extern CORE_ADDR gdbarch_unwind_sp (struct gdbarch *gdbarch, frame_info *next_frame);
> extern void set_gdbarch_unwind_sp (struct gdbarch *gdbarch, gdbarch_unwind_sp_ftype *unwind_sp);
>
> /* DEPRECATED_FRAME_LOCALS_ADDRESS as been replaced by the per-frame
> diff --git a/gdb/gdbarch-selftests.c b/gdb/gdbarch-selftests.c
> index 75d18111c0d5..d02e7c253b3f 100644
> --- a/gdb/gdbarch-selftests.c
> +++ b/gdb/gdbarch-selftests.c
> @@ -107,8 +107,9 @@ register_to_value_test (struct gdbarch *gdbarch)
> /* Set the fingerprint in the last two bytes. */
> buf [type->length ()]= 'w';
> buf [type->length () + 1]= 'l';
> - ok = gdbarch_register_to_value (gdbarch, frame, regnum, type,
> - buf.data (), &optim, &unavail);
> + ok = gdbarch_register_to_value (gdbarch, frame.get (), regnum,
> + type, buf.data (), &optim,
> + &unavail);
>
> SELF_CHECK (ok);
> SELF_CHECK (!optim);
> diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
> index ddb8dec1c72d..43f4002f5d3d 100644
> --- a/gdb/gdbarch.c
> +++ b/gdb/gdbarch.c
> @@ -2177,7 +2177,7 @@ set_gdbarch_register_type (struct gdbarch *gdbarch,
> }
>
> struct frame_id
> -gdbarch_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +gdbarch_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> gdb_assert (gdbarch != NULL);
> gdb_assert (gdbarch->dummy_id != NULL);
> @@ -2460,7 +2460,7 @@ set_gdbarch_convert_register_p (struct gdbarch *gdbarch,
> }
>
> int
> -gdbarch_register_to_value (struct gdbarch *gdbarch, frame_info_ptr frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep)
> +gdbarch_register_to_value (struct gdbarch *gdbarch, frame_info *frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep)
> {
> gdb_assert (gdbarch != NULL);
> gdb_assert (gdbarch->register_to_value != NULL);
> @@ -2951,7 +2951,7 @@ set_gdbarch_frame_args_skip (struct gdbarch *gdbarch,
> }
>
> CORE_ADDR
> -gdbarch_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +gdbarch_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> gdb_assert (gdbarch != NULL);
> gdb_assert (gdbarch->unwind_pc != NULL);
> @@ -2968,7 +2968,7 @@ set_gdbarch_unwind_pc (struct gdbarch *gdbarch,
> }
>
> CORE_ADDR
> -gdbarch_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +gdbarch_unwind_sp (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> gdb_assert (gdbarch != NULL);
> gdb_assert (gdbarch->unwind_sp != NULL);
> diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c
> index 38e7135601ec..2d5a69f05645 100644
> --- a/gdb/h8300-tdep.c
> +++ b/gdb/h8300-tdep.c
> @@ -404,7 +404,7 @@ h8300_analyze_prologue (struct gdbarch *gdbarch,
> }
>
> static struct h8300_frame_cache *
> -h8300_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +h8300_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct h8300_frame_cache *cache;
> @@ -466,7 +466,7 @@ h8300_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -h8300_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +h8300_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct h8300_frame_cache *cache =
> @@ -480,7 +480,7 @@ h8300_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -h8300_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +h8300_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -511,7 +511,7 @@ static const struct frame_unwind h8300_frame_unwind = {
> };
>
> static CORE_ADDR
> -h8300_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +h8300_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct h8300_frame_cache *cache = h8300_frame_cache (this_frame, this_cache);
> return cache->base;
> diff --git a/gdb/hppa-bsd-tdep.c b/gdb/hppa-bsd-tdep.c
> index 458c22085d75..40534a6a2c7d 100644
> --- a/gdb/hppa-bsd-tdep.c
> +++ b/gdb/hppa-bsd-tdep.c
> @@ -107,7 +107,7 @@ hppabsd_find_global_pointer (struct gdbarch *gdbarch, struct value *function)
> static void
> hppabsd_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> if (regnum == HPPA_PCOQ_HEAD_REGNUM)
> reg->how = DWARF2_FRAME_REG_RA;
> diff --git a/gdb/hppa-linux-tdep.c b/gdb/hppa-linux-tdep.c
> index 2a1aa6c24b34..4b67e63d76cd 100644
> --- a/gdb/hppa-linux-tdep.c
> +++ b/gdb/hppa-linux-tdep.c
> @@ -193,7 +193,7 @@ struct hppa_linux_sigtramp_unwind_cache
> };
>
> static struct hppa_linux_sigtramp_unwind_cache *
> -hppa_linux_sigtramp_frame_unwind_cache (frame_info_ptr this_frame,
> +hppa_linux_sigtramp_frame_unwind_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -268,7 +268,7 @@ hppa_linux_sigtramp_frame_unwind_cache (frame_info_ptr this_frame,
> }
>
> static void
> -hppa_linux_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +hppa_linux_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -278,7 +278,7 @@ hppa_linux_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -hppa_linux_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +hppa_linux_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache,
> int regnum)
> {
> @@ -296,7 +296,7 @@ hppa_linux_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> we can find the beginning of the struct rt_sigframe. */
> static int
> hppa_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> diff --git a/gdb/hppa-netbsd-tdep.c b/gdb/hppa-netbsd-tdep.c
> index 7be06a4d1a62..96ff692d5b78 100644
> --- a/gdb/hppa-netbsd-tdep.c
> +++ b/gdb/hppa-netbsd-tdep.c
> @@ -64,7 +64,7 @@ static int hppanbsd_mc_reg_offset[] =
> };
>
> static void hppanbsd_sigtramp_cache_init (const struct tramp_frame *,
> - frame_info_ptr,
> + frame_info *,
> struct trad_frame_cache *,
> CORE_ADDR);
>
> @@ -99,7 +99,7 @@ static const struct tramp_frame hppanbsd_sigtramp_si4 =
>
> static void
> hppanbsd_sigtramp_cache_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
> index fb4c4b42eab2..d0c26aa7e02e 100644
> --- a/gdb/hppa-tdep.c
> +++ b/gdb/hppa-tdep.c
> @@ -1830,7 +1830,7 @@ hppa_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
> /* Return an unwind entry that falls within the frame's code block. */
>
> static struct unwind_table_entry *
> -hppa_find_unwind_entry_in_block (frame_info_ptr this_frame)
> +hppa_find_unwind_entry_in_block (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_address_in_block (this_frame);
>
> @@ -1851,7 +1851,7 @@ struct hppa_frame_cache
> };
>
> static struct hppa_frame_cache *
> -hppa_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +hppa_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -2252,7 +2252,7 @@ hppa_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -hppa_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +hppa_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct hppa_frame_cache *info;
> @@ -2265,7 +2265,7 @@ hppa_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -hppa_frame_prev_register (frame_info_ptr this_frame,
> +hppa_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct hppa_frame_cache *info = hppa_frame_cache (this_frame, this_cache);
> @@ -2276,7 +2276,7 @@ hppa_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> hppa_frame_unwind_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame, void **this_cache)
> + frame_info *this_frame, void **this_cache)
> {
> if (hppa_find_unwind_entry_in_block (this_frame))
> return 1;
> @@ -2304,7 +2304,7 @@ static const struct frame_unwind hppa_frame_unwind =
> identify the stack and pc for the frame. */
>
> static struct hppa_frame_cache *
> -hppa_fallback_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +hppa_fallback_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -2377,7 +2377,7 @@ hppa_fallback_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -hppa_fallback_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +hppa_fallback_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct hppa_frame_cache *info =
> @@ -2387,7 +2387,7 @@ hppa_fallback_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -hppa_fallback_frame_prev_register (frame_info_ptr this_frame,
> +hppa_fallback_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct hppa_frame_cache *info
> @@ -2416,7 +2416,7 @@ struct hppa_stub_unwind_cache
> };
>
> static struct hppa_stub_unwind_cache *
> -hppa_stub_frame_unwind_cache (frame_info_ptr this_frame,
> +hppa_stub_frame_unwind_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct hppa_stub_unwind_cache *info;
> @@ -2437,7 +2437,7 @@ hppa_stub_frame_unwind_cache (frame_info_ptr this_frame,
> }
>
> static void
> -hppa_stub_frame_this_id (frame_info_ptr this_frame,
> +hppa_stub_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -2449,7 +2449,7 @@ hppa_stub_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -hppa_stub_frame_prev_register (frame_info_ptr this_frame,
> +hppa_stub_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct hppa_stub_unwind_cache *info
> @@ -2464,7 +2464,7 @@ hppa_stub_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> hppa_stub_unwind_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> CORE_ADDR pc = get_frame_address_in_block (this_frame);
> @@ -2490,7 +2490,7 @@ static const struct frame_unwind hppa_stub_frame_unwind = {
> };
>
> CORE_ADDR
> -hppa_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +hppa_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> ULONGEST ipsw;
> CORE_ADDR pc;
> @@ -2707,7 +2707,7 @@ hppa_find_global_pointer (struct gdbarch *gdbarch, struct value *function)
> }
>
> struct value *
> -hppa_frame_prev_register_helper (frame_info_ptr this_frame,
> +hppa_frame_prev_register_helper (frame_info *this_frame,
> trad_frame_saved_reg saved_regs[],
> int regnum)
> {
> diff --git a/gdb/hppa-tdep.h b/gdb/hppa-tdep.h
> index 516d2ef8a8cd..396dc81217aa 100644
> --- a/gdb/hppa-tdep.h
> +++ b/gdb/hppa-tdep.h
> @@ -109,7 +109,7 @@ struct hppa_gdbarch_tdep : gdbarch_tdep_base
> not interested in them. If we detect that we are returning to a stub,
> adjust the pc to the real caller. This improves the behavior of commands
> that traverse frames such as "up" and "finish". */
> - void (*unwind_adjust_stub) (frame_info_ptr this_frame, CORE_ADDR base,
> + void (*unwind_adjust_stub) (frame_info *this_frame, CORE_ADDR base,
> trad_frame_saved_reg *saved_regs) = nullptr;
>
> /* These are solib-dependent methods. They are really HPUX only, but
> @@ -201,14 +201,14 @@ int hppa_extract_14 (unsigned);
> CORE_ADDR hppa_symbol_address(const char *sym);
>
> extern struct value *
> - hppa_frame_prev_register_helper (frame_info_ptr this_frame,
> + hppa_frame_prev_register_helper (frame_info *this_frame,
> trad_frame_saved_reg *saved_regs,
> int regnum);
>
> extern CORE_ADDR hppa_read_pc (struct regcache *regcache);
> extern void hppa_write_pc (struct regcache *regcache, CORE_ADDR pc);
> extern CORE_ADDR hppa_unwind_pc (struct gdbarch *gdbarch,
> - frame_info_ptr next_frame);
> + frame_info *next_frame);
>
> extern int hppa_in_solib_call_trampoline (struct gdbarch *gdbarch,
> CORE_ADDR pc);
> diff --git a/gdb/i386-bsd-tdep.c b/gdb/i386-bsd-tdep.c
> index dd91e3021289..a01b926bf21f 100644
> --- a/gdb/i386-bsd-tdep.c
> +++ b/gdb/i386-bsd-tdep.c
> @@ -32,7 +32,7 @@
> address of the associated sigcontext structure. */
>
> static CORE_ADDR
> -i386bsd_sigcontext_addr (frame_info_ptr this_frame)
> +i386bsd_sigcontext_addr (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> diff --git a/gdb/i386-darwin-tdep.c b/gdb/i386-darwin-tdep.c
> index db2f47afc250..a23b45ba435c 100644
> --- a/gdb/i386-darwin-tdep.c
> +++ b/gdb/i386-darwin-tdep.c
> @@ -66,7 +66,7 @@ const int i386_darwin_thread_state_num_regs =
> address of the associated sigcontext structure. */
>
> static CORE_ADDR
> -i386_darwin_sigcontext_addr (frame_info_ptr this_frame)
> +i386_darwin_sigcontext_addr (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -99,7 +99,7 @@ i386_darwin_sigcontext_addr (frame_info_ptr this_frame)
>
> int
> darwin_dwarf_signal_frame_p (struct gdbarch *gdbarch,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> return i386_sigtramp_p (this_frame);
> }
> diff --git a/gdb/i386-darwin-tdep.h b/gdb/i386-darwin-tdep.h
> index 284a9b1b07a5..c6329fbd57c1 100644
> --- a/gdb/i386-darwin-tdep.h
> +++ b/gdb/i386-darwin-tdep.h
> @@ -27,6 +27,6 @@
> extern int i386_darwin_thread_state_reg_offset[];
> extern const int i386_darwin_thread_state_num_regs;
>
> -int darwin_dwarf_signal_frame_p (struct gdbarch *, frame_info_ptr);
> +int darwin_dwarf_signal_frame_p (struct gdbarch *, frame_info *);
>
> #endif /* I386_DARWIN_TDEP_H */
> diff --git a/gdb/i386-fbsd-tdep.c b/gdb/i386-fbsd-tdep.c
> index eef124fca0ce..9aa514bd7974 100644
> --- a/gdb/i386-fbsd-tdep.c
> +++ b/gdb/i386-fbsd-tdep.c
> @@ -156,7 +156,7 @@ const struct regset i386_fbsd_segbases_regset =
>
> static void
> i386_fbsd_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/i386-gnu-tdep.c b/gdb/i386-gnu-tdep.c
> index 1ce4a2137e9d..b535892bbc7b 100644
> --- a/gdb/i386-gnu-tdep.c
> +++ b/gdb/i386-gnu-tdep.c
> @@ -56,7 +56,7 @@ static const gdb_byte gnu_sigtramp_code[] =
> start of the routine. Otherwise, return 0. */
>
> static CORE_ADDR
> -i386_gnu_sigtramp_start (frame_info_ptr this_frame)
> +i386_gnu_sigtramp_start (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> gdb_byte buf[GNU_SIGTRAMP_LEN];
> @@ -76,7 +76,7 @@ i386_gnu_sigtramp_start (frame_info_ptr this_frame)
> routine. */
>
> static int
> -i386_gnu_sigtramp_p (frame_info_ptr this_frame)
> +i386_gnu_sigtramp_p (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> const char *name;
> @@ -97,7 +97,7 @@ i386_gnu_sigtramp_p (frame_info_ptr this_frame)
> address of the associated sigcontext structure. */
>
> static CORE_ADDR
> -i386_gnu_sigcontext_addr (frame_info_ptr this_frame)
> +i386_gnu_sigcontext_addr (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
> index 5c2fed39868c..de7c67ca798d 100644
> --- a/gdb/i386-linux-tdep.c
> +++ b/gdb/i386-linux-tdep.c
> @@ -122,7 +122,7 @@ static const gdb_byte linux_sigtramp_code[] =
> start of the routine. Otherwise, return 0. */
>
> static CORE_ADDR
> -i386_linux_sigtramp_start (frame_info_ptr this_frame)
> +i386_linux_sigtramp_start (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> gdb_byte buf[LINUX_SIGTRAMP_LEN];
> @@ -190,7 +190,7 @@ static const gdb_byte linux_rt_sigtramp_code[] =
> start of the routine. Otherwise, return 0. */
>
> static CORE_ADDR
> -i386_linux_rt_sigtramp_start (frame_info_ptr this_frame)
> +i386_linux_rt_sigtramp_start (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> gdb_byte buf[LINUX_RT_SIGTRAMP_LEN];
> @@ -227,7 +227,7 @@ i386_linux_rt_sigtramp_start (frame_info_ptr this_frame)
> routine. */
>
> static int
> -i386_linux_sigtramp_p (frame_info_ptr this_frame)
> +i386_linux_sigtramp_p (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> const char *name;
> @@ -252,7 +252,7 @@ i386_linux_sigtramp_p (frame_info_ptr this_frame)
>
> static int
> i386_linux_dwarf_signal_frame_p (struct gdbarch *gdbarch,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> const char *name;
> @@ -275,7 +275,7 @@ i386_linux_dwarf_signal_frame_p (struct gdbarch *gdbarch,
> address of the associated sigcontext structure. */
>
> static CORE_ADDR
> -i386_linux_sigcontext_addr (frame_info_ptr this_frame)
> +i386_linux_sigcontext_addr (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> diff --git a/gdb/i386-netbsd-tdep.c b/gdb/i386-netbsd-tdep.c
> index daeddb7a8f4e..d9b4d6ebd29c 100644
> --- a/gdb/i386-netbsd-tdep.c
> +++ b/gdb/i386-netbsd-tdep.c
> @@ -97,7 +97,7 @@ static int i386nbsd_mc_reg_offset[] =
> };
>
> static void i386nbsd_sigtramp_cache_init (const struct tramp_frame *,
> - frame_info_ptr,
> + frame_info *,
> struct trad_frame_cache *,
> CORE_ADDR);
>
> @@ -329,7 +329,7 @@ static const struct tramp_frame i386nbsd_sigtramp_si4 =
>
> static void
> i386nbsd_sigtramp_cache_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/i386-nto-tdep.c b/gdb/i386-nto-tdep.c
> index 99e7b648e160..7da345697f06 100644
> --- a/gdb/i386-nto-tdep.c
> +++ b/gdb/i386-nto-tdep.c
> @@ -270,7 +270,7 @@ i386nto_regset_fill (const struct regcache *regcache, int regset, char *data)
> routine. */
>
> static int
> -i386nto_sigtramp_p (frame_info_ptr this_frame)
> +i386nto_sigtramp_p (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> const char *name;
> @@ -283,7 +283,7 @@ i386nto_sigtramp_p (frame_info_ptr this_frame)
> address of the associated sigcontext structure. */
>
> static CORE_ADDR
> -i386nto_sigcontext_addr (frame_info_ptr this_frame)
> +i386nto_sigcontext_addr (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> diff --git a/gdb/i386-obsd-tdep.c b/gdb/i386-obsd-tdep.c
> index b1b0a83ed213..d0f70770e4ba 100644
> --- a/gdb/i386-obsd-tdep.c
> +++ b/gdb/i386-obsd-tdep.c
> @@ -64,7 +64,7 @@ static const int i386obsd_sigreturn_offset[] = {
> routine. */
>
> static int
> -i386obsd_sigtramp_p (frame_info_ptr this_frame)
> +i386obsd_sigtramp_p (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> CORE_ADDR start_pc = (pc & ~(i386obsd_page_size - 1));
> @@ -303,7 +303,7 @@ static int i386obsd_tf_reg_offset[] =
> };
>
> static struct trad_frame_cache *
> -i386obsd_trapframe_cache (frame_info_ptr this_frame, void **this_cache)
> +i386obsd_trapframe_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -350,7 +350,7 @@ i386obsd_trapframe_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -i386obsd_trapframe_this_id (frame_info_ptr this_frame,
> +i386obsd_trapframe_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> struct trad_frame_cache *cache =
> @@ -360,7 +360,7 @@ i386obsd_trapframe_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -i386obsd_trapframe_prev_register (frame_info_ptr this_frame,
> +i386obsd_trapframe_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct trad_frame_cache *cache =
> @@ -371,7 +371,7 @@ i386obsd_trapframe_prev_register (frame_info_ptr this_frame,
>
> static int
> i386obsd_trapframe_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> ULONGEST cs;
> diff --git a/gdb/i386-sol2-tdep.c b/gdb/i386-sol2-tdep.c
> index f9df0f3d5001..5b3c3a921ff9 100644
> --- a/gdb/i386-sol2-tdep.c
> +++ b/gdb/i386-sol2-tdep.c
> @@ -50,7 +50,7 @@ static int i386_sol2_gregset_reg_offset[] =
> `mcontext_t' that contains the saved set of machine registers. */
>
> static CORE_ADDR
> -i386_sol2_mcontext_addr (frame_info_ptr this_frame)
> +i386_sol2_mcontext_addr (frame_info *this_frame)
> {
> CORE_ADDR sp, ucontext_addr;
>
> diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
> index e027df2b9c5f..54c42c2649c3 100644
> --- a/gdb/i386-tdep.c
> +++ b/gdb/i386-tdep.c
> @@ -1965,7 +1965,7 @@ i386_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
> /* This function is 64-bit safe. */
>
> static CORE_ADDR
> -i386_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +i386_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> gdb_byte buf[8];
>
> @@ -1977,7 +1977,7 @@ i386_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> /* Normal frames. */
>
> static void
> -i386_frame_cache_1 (frame_info_ptr this_frame,
> +i386_frame_cache_1 (frame_info *this_frame,
> struct i386_frame_cache *cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2078,7 +2078,7 @@ i386_frame_cache_1 (frame_info_ptr this_frame,
> }
>
> static struct i386_frame_cache *
> -i386_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +i386_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct i386_frame_cache *cache;
>
> @@ -2102,7 +2102,7 @@ i386_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -i386_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +i386_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct i386_frame_cache *cache = i386_frame_cache (this_frame, this_cache);
> @@ -2121,7 +2121,7 @@ i386_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static enum unwind_stop_reason
> -i386_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +i386_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct i386_frame_cache *cache = i386_frame_cache (this_frame, this_cache);
> @@ -2137,7 +2137,7 @@ i386_frame_unwind_stop_reason (frame_info_ptr this_frame,
> }
>
> static struct value *
> -i386_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +i386_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct i386_frame_cache *cache = i386_frame_cache (this_frame, this_cache);
> @@ -2236,7 +2236,7 @@ i386_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
>
> static int
> i386_epilogue_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> if (frame_relative_level (this_frame) == 0)
> @@ -2247,7 +2247,7 @@ i386_epilogue_frame_sniffer (const struct frame_unwind *self,
> }
>
> static struct i386_frame_cache *
> -i386_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +i386_epilogue_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct i386_frame_cache *cache;
> CORE_ADDR sp;
> @@ -2282,7 +2282,7 @@ i386_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static enum unwind_stop_reason
> -i386_epilogue_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +i386_epilogue_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct i386_frame_cache *cache =
> @@ -2295,7 +2295,7 @@ i386_epilogue_frame_unwind_stop_reason (frame_info_ptr this_frame,
> }
>
> static void
> -i386_epilogue_frame_this_id (frame_info_ptr this_frame,
> +i386_epilogue_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -2309,7 +2309,7 @@ i386_epilogue_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -i386_epilogue_frame_prev_register (frame_info_ptr this_frame,
> +i386_epilogue_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> /* Make sure we've initialized the cache. */
> @@ -2391,7 +2391,7 @@ i386_in_stack_tramp_p (CORE_ADDR pc)
>
> static int
> i386_stack_tramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> if (frame_relative_level (this_frame) == 0)
> @@ -2431,7 +2431,7 @@ i386_gen_return_address (struct gdbarch *gdbarch,
> /* Signal trampolines. */
>
> static struct i386_frame_cache *
> -i386_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +i386_sigtramp_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> i386_gdbarch_tdep *tdep = gdbarch_tdep<i386_gdbarch_tdep> (gdbarch);
> @@ -2480,7 +2480,7 @@ i386_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static enum unwind_stop_reason
> -i386_sigtramp_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +i386_sigtramp_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> struct i386_frame_cache *cache =
> @@ -2493,7 +2493,7 @@ i386_sigtramp_frame_unwind_stop_reason (frame_info_ptr this_frame,
> }
>
> static void
> -i386_sigtramp_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +i386_sigtramp_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct i386_frame_cache *cache =
> @@ -2509,7 +2509,7 @@ i386_sigtramp_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -i386_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +i386_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> /* Make sure we've initialized the cache. */
> @@ -2520,7 +2520,7 @@ i386_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> i386_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> gdbarch *arch = get_frame_arch (this_frame);
> @@ -2562,7 +2562,7 @@ static const struct frame_unwind i386_sigtramp_frame_unwind =
> \f
>
> static CORE_ADDR
> -i386_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +i386_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct i386_frame_cache *cache = i386_frame_cache (this_frame, this_cache);
>
> @@ -2578,7 +2578,7 @@ static const struct frame_base i386_frame_base =
> };
>
> static struct frame_id
> -i386_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +i386_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> CORE_ADDR fp;
>
> @@ -3825,7 +3825,7 @@ i386_convert_register_p (struct gdbarch *gdbarch,
> return its contents in TO. */
>
> static int
> -i386_register_to_value (frame_info_ptr frame, int regnum,
> +i386_register_to_value (frame_info *frame, int regnum,
> struct type *type, gdb_byte *to,
> int *optimizedp, int *unavailablep)
> {
> @@ -4048,7 +4048,7 @@ i386_pe_skip_trampoline_code (frame_info_ptr frame,
> routine. */
>
> int
> -i386_sigtramp_p (frame_info_ptr this_frame)
> +i386_sigtramp_p (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> const char *name;
> @@ -4084,7 +4084,7 @@ i386_print_insn (bfd_vma pc, struct disassemble_info *info)
> routine. */
>
> static int
> -i386_svr4_sigtramp_p (frame_info_ptr this_frame)
> +i386_svr4_sigtramp_p (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> const char *name;
> @@ -4099,7 +4099,7 @@ i386_svr4_sigtramp_p (frame_info_ptr this_frame)
> address of the associated sigcontext (ucontext) structure. */
>
> static CORE_ADDR
> -i386_svr4_sigcontext_addr (frame_info_ptr this_frame)
> +i386_svr4_sigcontext_addr (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h
> index 0ae1ef62da7b..07d8bb45a0f4 100644
> --- a/gdb/i386-tdep.h
> +++ b/gdb/i386-tdep.h
> @@ -223,10 +223,10 @@ struct i386_gdbarch_tdep : gdbarch_tdep_base
> CORE_ADDR sigtramp_end = 0;
>
> /* Detect sigtramp. */
> - int (*sigtramp_p) (frame_info_ptr) = nullptr;
> + int (*sigtramp_p) (frame_info *) = nullptr;
>
> /* Get address of sigcontext for sigtramp. */
> - CORE_ADDR (*sigcontext_addr) (frame_info_ptr) = nullptr;
> + CORE_ADDR (*sigcontext_addr) (frame_info *) = nullptr;
>
> /* Offset of registers in `struct sigcontext'. */
> int *sc_reg_offset = 0;
> @@ -414,7 +414,7 @@ extern CORE_ADDR i386_thiscall_push_dummy_call (struct gdbarch *gdbarch,
> bool thiscall);
>
> /* Return whether the THIS_FRAME corresponds to a sigtramp routine. */
> -extern int i386_sigtramp_p (frame_info_ptr this_frame);
> +extern int i386_sigtramp_p (frame_info *this_frame);
>
> /* Return non-zero if REGNUM is a member of the specified group. */
> extern int i386_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
> diff --git a/gdb/i387-tdep.c b/gdb/i387-tdep.c
> index 6b9baf5a10ec..6603792ed62b 100644
> --- a/gdb/i387-tdep.c
> +++ b/gdb/i387-tdep.c
> @@ -345,7 +345,7 @@ i387_convert_register_p (struct gdbarch *gdbarch, int regnum,
> return its contents in TO. */
>
> int
> -i387_register_to_value (frame_info_ptr frame, int regnum,
> +i387_register_to_value (frame_info *frame, int regnum,
> struct type *type, gdb_byte *to,
> int *optimizedp, int *unavailablep)
> {
> diff --git a/gdb/i387-tdep.h b/gdb/i387-tdep.h
> index 3b223067c5db..9a5eaecd8896 100644
> --- a/gdb/i387-tdep.h
> +++ b/gdb/i387-tdep.h
> @@ -100,7 +100,7 @@ extern int i387_convert_register_p (struct gdbarch *gdbarch, int regnum,
> /* Read a value of type TYPE from register REGNUM in frame FRAME, and
> return its contents in TO. */
>
> -extern int i387_register_to_value (frame_info_ptr frame, int regnum,
> +extern int i387_register_to_value (frame_info *frame, int regnum,
> struct type *type, gdb_byte *to,
> int *optimizedp, int *unavailablep);
>
> diff --git a/gdb/ia64-libunwind-tdep.c b/gdb/ia64-libunwind-tdep.c
> index 6fc75629631d..5cdde79211ff 100644
> --- a/gdb/ia64-libunwind-tdep.c
> +++ b/gdb/ia64-libunwind-tdep.c
> @@ -153,7 +153,7 @@ libunwind_frame_set_descr (struct gdbarch *gdbarch,
> }
>
> static struct libunwind_frame_cache *
> -libunwind_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +libunwind_frame_cache (frame_info *this_frame, void **this_cache)
> {
> unw_accessors_t *acc;
> unw_addr_space_t as;
> @@ -228,7 +228,7 @@ libunwind_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> void
> -libunwind_frame_dealloc_cache (frame_info_ptr self, void *this_cache)
> +libunwind_frame_dealloc_cache (frame_info *self, void *this_cache)
> {
> struct libunwind_frame_cache *cache
> = (struct libunwind_frame_cache *) this_cache;
> @@ -247,7 +247,7 @@ libunwind_find_dyn_list (unw_addr_space_t as, unw_dyn_info_t *di, void *arg)
> libunwind frame unwinding. */
> int
> libunwind_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame, void **this_cache)
> + frame_info *this_frame, void **this_cache)
> {
> unw_cursor_t cursor;
> unw_accessors_t *acc;
> @@ -292,7 +292,7 @@ libunwind_frame_sniffer (const struct frame_unwind *self,
> }
>
> void
> -libunwind_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +libunwind_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct libunwind_frame_cache *cache =
> @@ -303,7 +303,7 @@ libunwind_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> struct value *
> -libunwind_frame_prev_register (frame_info_ptr this_frame,
> +libunwind_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct libunwind_frame_cache *cache =
> @@ -387,7 +387,7 @@ libunwind_search_unwind_table (void *as, long ip, void *di,
> /* Verify if we are in a sigtramp frame and we can use libunwind to unwind. */
> int
> libunwind_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> unw_cursor_t cursor;
> diff --git a/gdb/ia64-libunwind-tdep.h b/gdb/ia64-libunwind-tdep.h
> index a4e20f6eb3d8..4f19394e6c88 100644
> --- a/gdb/ia64-libunwind-tdep.h
> +++ b/gdb/ia64-libunwind-tdep.h
> @@ -22,7 +22,6 @@
> #ifndef IA64_LIBUNWIND_TDEP_H
> #define IA64_LIBUNWIND_TDEP_H 1
>
> -class frame_info_ptr;
> struct frame_id;
> struct regcache;
> struct gdbarch;
> @@ -48,21 +47,21 @@ struct libunwind_descr
> };
>
> int libunwind_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache);
>
> int libunwind_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache);
>
> void libunwind_frame_set_descr (struct gdbarch *arch,
> struct libunwind_descr *descr);
>
> -void libunwind_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +void libunwind_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id);
> -struct value *libunwind_frame_prev_register (frame_info_ptr this_frame,
> +struct value *libunwind_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum);
> -void libunwind_frame_dealloc_cache (frame_info_ptr self, void *cache);
> +void libunwind_frame_dealloc_cache (frame_info *self, void *cache);
>
> int libunwind_is_initialized (void);
>
> diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
> index 519c956e1697..902e529f028b 100644
> --- a/gdb/ia64-tdep.c
> +++ b/gdb/ia64-tdep.c
> @@ -1216,7 +1216,7 @@ ia64_convert_register_p (struct gdbarch *gdbarch, int regno, struct type *type)
> }
>
> static int
> -ia64_register_to_value (frame_info_ptr frame, int regnum,
> +ia64_register_to_value (frame_info *frame, int regnum,
> struct type *valtype, gdb_byte *out,
> int *optimizedp, int *unavailablep)
> {
> @@ -1357,7 +1357,7 @@ ia64_alloc_frame_cache (void)
>
> static CORE_ADDR
> examine_prologue (CORE_ADDR pc, CORE_ADDR lim_pc,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct ia64_frame_cache *cache)
> {
> CORE_ADDR next_pc;
> @@ -1838,7 +1838,7 @@ ia64_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
> /* Normal frames. */
>
> static struct ia64_frame_cache *
> -ia64_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +ia64_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -1883,7 +1883,7 @@ ia64_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -ia64_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +ia64_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -1900,11 +1900,11 @@ ia64_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> paddress (gdbarch, this_id->code_addr),
> paddress (gdbarch, this_id->stack_addr),
> paddress (gdbarch, cache->bsp),
> - host_address_to_string (this_frame.get ()));
> + host_address_to_string (this_frame));
> }
>
> static struct value *
> -ia64_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +ia64_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2172,7 +2172,7 @@ static const struct frame_unwind ia64_frame_unwind =
> /* Signal trampolines. */
>
> static void
> -ia64_sigtramp_frame_init_saved_regs (frame_info_ptr this_frame,
> +ia64_sigtramp_frame_init_saved_regs (frame_info *this_frame,
> struct ia64_frame_cache *cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2226,7 +2226,7 @@ ia64_sigtramp_frame_init_saved_regs (frame_info_ptr this_frame,
> }
>
> static struct ia64_frame_cache *
> -ia64_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +ia64_sigtramp_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -2257,7 +2257,7 @@ ia64_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -ia64_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +ia64_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2274,11 +2274,11 @@ ia64_sigtramp_frame_this_id (frame_info_ptr this_frame,
> paddress (gdbarch, this_id->code_addr),
> paddress (gdbarch, this_id->stack_addr),
> paddress (gdbarch, cache->bsp),
> - host_address_to_string (this_frame.get ()));
> + host_address_to_string (this_frame));
> }
>
> static struct value *
> -ia64_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +ia64_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct ia64_frame_cache *cache =
> @@ -2331,7 +2331,7 @@ ia64_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> ia64_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> gdbarch *arch = get_frame_arch (this_frame);
> @@ -2361,7 +2361,7 @@ static const struct frame_unwind ia64_sigtramp_frame_unwind =
> \f
>
> static CORE_ADDR
> -ia64_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +ia64_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct ia64_frame_cache *cache = ia64_frame_cache (this_frame, this_cache);
>
> @@ -2890,7 +2890,7 @@ ia64_get_dyn_info_list (unw_addr_space_t as,
> /* Frame interface functions for libunwind. */
>
> static void
> -ia64_libunwind_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +ia64_libunwind_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2924,7 +2924,7 @@ ia64_libunwind_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -ia64_libunwind_frame_prev_register (frame_info_ptr this_frame,
> +ia64_libunwind_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> int reg = regnum;
> @@ -3020,7 +3020,7 @@ static const struct frame_unwind ia64_libunwind_frame_unwind =
> };
>
> static void
> -ia64_libunwind_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +ia64_libunwind_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -3056,7 +3056,7 @@ ia64_libunwind_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -ia64_libunwind_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +ia64_libunwind_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -3863,7 +3863,7 @@ static const struct ia64_infcall_ops ia64_infcall_ops =
> };
>
> static struct frame_id
> -ia64_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +ia64_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> gdb_byte buf[8];
> @@ -3885,7 +3885,7 @@ ia64_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> }
>
> static CORE_ADDR
> -ia64_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +ia64_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> gdb_byte buf[8];
> diff --git a/gdb/inline-frame.c b/gdb/inline-frame.c
> index 5f4ab66609ac..5f9dd34b9f43 100644
> --- a/gdb/inline-frame.c
> +++ b/gdb/inline-frame.c
> @@ -150,7 +150,7 @@ clear_inline_frame_state (thread_info *thread)
> }
>
> static void
> -inline_frame_this_id (frame_info_ptr this_frame,
> +inline_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -186,7 +186,7 @@ inline_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -inline_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +inline_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> /* Use get_frame_register_value instead of
> @@ -208,13 +208,13 @@ inline_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
>
> static int
> inline_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> CORE_ADDR this_pc;
> const struct block *frame_block, *cur_block;
> int depth;
> - frame_info_ptr next_frame;
> + frame_info *next_frame;
> struct inline_state *state = find_inline_frame_state (inferior_thread ());
>
> this_pc = get_frame_address_in_block (this_frame);
> @@ -441,9 +441,9 @@ inline_skipped_symbol (thread_info *thread)
> skip_inline_frames). */
>
> int
> -frame_inlined_callees (frame_info_ptr this_frame)
> +frame_inlined_callees (frame_info *this_frame)
> {
> - frame_info_ptr next_frame;
> + frame_info *next_frame;
> int inline_count = 0;
>
> /* First count how many inlined functions at this PC have frames
> diff --git a/gdb/inline-frame.h b/gdb/inline-frame.h
> index 211a9eca956f..9506f6f30fcc 100644
> --- a/gdb/inline-frame.h
> +++ b/gdb/inline-frame.h
> @@ -20,7 +20,6 @@
> #if !defined (INLINE_FRAME_H)
> #define INLINE_FRAME_H 1
>
> -class frame_info_ptr;
> struct frame_unwind;
> struct bpstat;
> struct process_stratum_target;
> @@ -68,6 +67,6 @@ struct symbol *inline_skipped_symbol (thread_info *thread);
> the callees may not have associated frames (see
> skip_inline_frames). */
>
> -int frame_inlined_callees (frame_info_ptr this_frame);
> +int frame_inlined_callees (frame_info *this_frame);
>
> #endif /* !defined (INLINE_FRAME_H) */
> diff --git a/gdb/iq2000-tdep.c b/gdb/iq2000-tdep.c
> index 5861160243f7..10d0c3919bb8 100644
> --- a/gdb/iq2000-tdep.c
> +++ b/gdb/iq2000-tdep.c
> @@ -198,7 +198,7 @@ static CORE_ADDR
> iq2000_scan_prologue (struct gdbarch *gdbarch,
> CORE_ADDR scan_start,
> CORE_ADDR scan_end,
> - frame_info_ptr fi,
> + frame_info *fi,
> struct iq2000_frame_cache *cache)
> {
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -358,7 +358,7 @@ iq2000_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
> }
>
> static struct iq2000_frame_cache *
> -iq2000_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +iq2000_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct iq2000_frame_cache *cache;
> @@ -391,7 +391,7 @@ iq2000_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static struct value *
> -iq2000_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +iq2000_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct iq2000_frame_cache *cache = iq2000_frame_cache (this_frame,
> @@ -411,7 +411,7 @@ iq2000_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> }
>
> static void
> -iq2000_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +iq2000_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct iq2000_frame_cache *cache = iq2000_frame_cache (this_frame,
> @@ -435,7 +435,7 @@ static const struct frame_unwind iq2000_frame_unwind = {
> };
>
> static CORE_ADDR
> -iq2000_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +iq2000_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct iq2000_frame_cache *cache = iq2000_frame_cache (this_frame,
> this_cache);
> diff --git a/gdb/jit.c b/gdb/jit.c
> index f383e105b0eb..971232f31a1d 100644
> --- a/gdb/jit.c
> +++ b/gdb/jit.c
> @@ -930,7 +930,7 @@ struct jit_unwind_private
> std::unique_ptr<detached_regcache> regcache;
>
> /* The frame being unwound. */
> - frame_info_ptr this_frame;
> + frame_info *this_frame;
> };
>
> /* Sets the value of a particular register in this frame. */
> @@ -1007,7 +1007,7 @@ jit_dealloc_cache (frame_info *this_frame, void *cache)
>
> static int
> jit_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame, void **cache)
> + frame_info *this_frame, void **cache)
> {
> struct jit_unwind_private *priv_data;
> struct gdb_unwind_callbacks callbacks;
> @@ -1042,7 +1042,7 @@ jit_frame_sniffer (const struct frame_unwind *self,
>
> jit_debug_printf ("Could not unwind frame using JIT reader.");
>
> - jit_dealloc_cache (this_frame.get (), *cache);
> + jit_dealloc_cache (this_frame, *cache);
> *cache = NULL;
>
> return 0;
> @@ -1053,7 +1053,7 @@ jit_frame_sniffer (const struct frame_unwind *self,
> the loaded plugin. */
>
> static void
> -jit_frame_this_id (frame_info_ptr this_frame, void **cache,
> +jit_frame_this_id (frame_info *this_frame, void **cache,
> struct frame_id *this_id)
> {
> struct jit_unwind_private priv;
> @@ -1082,7 +1082,7 @@ jit_frame_this_id (frame_info_ptr this_frame, void **cache,
> the register from the cache. */
>
> static struct value *
> -jit_frame_prev_register (frame_info_ptr this_frame, void **cache, int reg)
> +jit_frame_prev_register (frame_info *this_frame, void **cache, int reg)
> {
> struct jit_unwind_private *priv = (struct jit_unwind_private *) *cache;
> struct gdbarch *gdbarch;
> diff --git a/gdb/lm32-tdep.c b/gdb/lm32-tdep.c
> index dd601320c3a3..101466a0edb3 100644
> --- a/gdb/lm32-tdep.c
> +++ b/gdb/lm32-tdep.c
> @@ -375,7 +375,7 @@ lm32_return_value (struct gdbarch *gdbarch, struct value *function,
> for it IS the sp for the next frame. */
>
> static struct lm32_frame_cache *
> -lm32_frame_cache (frame_info_ptr this_frame, void **this_prologue_cache)
> +lm32_frame_cache (frame_info *this_frame, void **this_prologue_cache)
> {
> CORE_ADDR current_pc;
> ULONGEST prev_sp;
> @@ -421,7 +421,7 @@ lm32_frame_cache (frame_info_ptr this_frame, void **this_prologue_cache)
> }
>
> static void
> -lm32_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +lm32_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct lm32_frame_cache *cache = lm32_frame_cache (this_frame, this_cache);
> @@ -434,7 +434,7 @@ lm32_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -lm32_frame_prev_register (frame_info_ptr this_frame,
> +lm32_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct lm32_frame_cache *info;
> @@ -454,7 +454,7 @@ static const struct frame_unwind lm32_frame_unwind = {
> };
>
> static CORE_ADDR
> -lm32_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +lm32_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct lm32_frame_cache *info = lm32_frame_cache (this_frame, this_cache);
>
> diff --git a/gdb/loongarch-linux-tdep.c b/gdb/loongarch-linux-tdep.c
> index f4559b65b33e..e424708c3d13 100644
> --- a/gdb/loongarch-linux-tdep.c
> +++ b/gdb/loongarch-linux-tdep.c
> @@ -222,7 +222,7 @@ const struct regset loongarch_fpregset =
>
> static void
> loongarch_linux_rt_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/loongarch-tdep.c b/gdb/loongarch-tdep.c
> index d727bc85062d..aa6ce80018eb 100644
> --- a/gdb/loongarch-tdep.c
> +++ b/gdb/loongarch-tdep.c
> @@ -397,7 +397,7 @@ loongarch_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
> /* Generate, or return the cached frame cache for frame unwinder. */
>
> static struct trad_frame_cache *
> -loongarch_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +loongarch_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct trad_frame_cache *cache;
> CORE_ADDR pc;
> @@ -419,7 +419,7 @@ loongarch_frame_cache (frame_info_ptr this_frame, void **this_cache)
> /* Implement the this_id callback for frame unwinder. */
>
> static void
> -loongarch_frame_this_id (frame_info_ptr this_frame, void **prologue_cache,
> +loongarch_frame_this_id (frame_info *this_frame, void **prologue_cache,
> struct frame_id *this_id)
> {
> struct trad_frame_cache *info;
> @@ -431,7 +431,7 @@ loongarch_frame_this_id (frame_info_ptr this_frame, void **prologue_cache,
> /* Implement the prev_register callback for frame unwinder. */
>
> static struct value *
> -loongarch_frame_prev_register (frame_info_ptr this_frame,
> +loongarch_frame_prev_register (frame_info *this_frame,
> void **prologue_cache, int regnum)
> {
> struct trad_frame_cache *info;
> diff --git a/gdb/m32c-tdep.c b/gdb/m32c-tdep.c
> index f5101635aedd..5708e12c4a22 100644
> --- a/gdb/m32c-tdep.c
> +++ b/gdb/m32c-tdep.c
> @@ -1851,7 +1851,7 @@ m32c_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
> /* Stack unwinding. */
>
> static struct m32c_prologue *
> -m32c_analyze_frame_prologue (frame_info_ptr this_frame,
> +m32c_analyze_frame_prologue (frame_info *this_frame,
> void **this_prologue_cache)
> {
> if (! *this_prologue_cache)
> @@ -1875,7 +1875,7 @@ m32c_analyze_frame_prologue (frame_info_ptr this_frame,
>
>
> static CORE_ADDR
> -m32c_frame_base (frame_info_ptr this_frame,
> +m32c_frame_base (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct m32c_prologue *p
> @@ -1915,7 +1915,7 @@ m32c_frame_base (frame_info_ptr this_frame,
>
>
> static void
> -m32c_this_id (frame_info_ptr this_frame,
> +m32c_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -1928,7 +1928,7 @@ m32c_this_id (frame_info_ptr this_frame,
>
>
> static struct value *
> -m32c_prev_register (frame_info_ptr this_frame,
> +m32c_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> gdbarch *arch = get_frame_arch (this_frame);
> diff --git a/gdb/m32r-linux-tdep.c b/gdb/m32r-linux-tdep.c
> index 7174a10b021c..e4290f3ce5dd 100644
> --- a/gdb/m32r-linux-tdep.c
> +++ b/gdb/m32r-linux-tdep.c
> @@ -85,7 +85,7 @@ static const gdb_byte linux_sigtramp_code[] = {
> the routine. Otherwise, return 0. */
>
> static CORE_ADDR
> -m32r_linux_sigtramp_start (CORE_ADDR pc, frame_info_ptr this_frame)
> +m32r_linux_sigtramp_start (CORE_ADDR pc, frame_info *this_frame)
> {
> gdb_byte buf[4];
>
> @@ -133,7 +133,7 @@ static const gdb_byte linux_rt_sigtramp_code[] = {
> of the routine. Otherwise, return 0. */
>
> static CORE_ADDR
> -m32r_linux_rt_sigtramp_start (CORE_ADDR pc, frame_info_ptr this_frame)
> +m32r_linux_rt_sigtramp_start (CORE_ADDR pc, frame_info *this_frame)
> {
> gdb_byte buf[4];
>
> @@ -173,7 +173,7 @@ m32r_linux_rt_sigtramp_start (CORE_ADDR pc, frame_info_ptr this_frame)
>
> static int
> m32r_linux_pc_in_sigtramp (CORE_ADDR pc, const char *name,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> /* If we have NAME, we can optimize the search. The trampolines are
> named __restore and __restore_rt. However, they aren't dynamically
> @@ -223,7 +223,7 @@ struct m32r_frame_cache
> };
>
> static struct m32r_frame_cache *
> -m32r_linux_sigtramp_frame_cache (frame_info_ptr this_frame,
> +m32r_linux_sigtramp_frame_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct m32r_frame_cache *cache;
> @@ -266,7 +266,7 @@ m32r_linux_sigtramp_frame_cache (frame_info_ptr this_frame,
> }
>
> static void
> -m32r_linux_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +m32r_linux_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -277,7 +277,7 @@ m32r_linux_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -m32r_linux_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +m32r_linux_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct m32r_frame_cache *cache =
> @@ -288,7 +288,7 @@ m32r_linux_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> m32r_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c
> index fc304757a606..e290c05df5cf 100644
> --- a/gdb/m32r-tdep.c
> +++ b/gdb/m32r-tdep.c
> @@ -516,7 +516,7 @@ struct m32r_unwind_cache
> for it IS the sp for the next frame. */
>
> static struct m32r_unwind_cache *
> -m32r_frame_unwind_cache (frame_info_ptr this_frame,
> +m32r_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> CORE_ADDR pc, scan_limit;
> @@ -793,7 +793,7 @@ m32r_return_value (struct gdbarch *gdbarch, struct value *function,
> frame. This will be used to create a new GDB frame struct. */
>
> static void
> -m32r_frame_this_id (frame_info_ptr this_frame,
> +m32r_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache, struct frame_id *this_id)
> {
> struct m32r_unwind_cache *info
> @@ -823,7 +823,7 @@ m32r_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -m32r_frame_prev_register (frame_info_ptr this_frame,
> +m32r_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct m32r_unwind_cache *info
> @@ -842,7 +842,7 @@ static const struct frame_unwind m32r_frame_unwind = {
> };
>
> static CORE_ADDR
> -m32r_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +m32r_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct m32r_unwind_cache *info
> = m32r_frame_unwind_cache (this_frame, this_cache);
> diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c
> index c48fe4424b64..4ae9a97f7e57 100644
> --- a/gdb/m68hc11-tdep.c
> +++ b/gdb/m68hc11-tdep.c
> @@ -777,7 +777,7 @@ m68hc11_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
> for it IS the sp for the next frame. */
>
> static struct m68hc11_unwind_cache *
> -m68hc11_frame_unwind_cache (frame_info_ptr this_frame,
> +m68hc11_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -874,7 +874,7 @@ m68hc11_frame_unwind_cache (frame_info_ptr this_frame,
> frame. This will be used to create a new GDB frame struct. */
>
> static void
> -m68hc11_frame_this_id (frame_info_ptr this_frame,
> +m68hc11_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -899,7 +899,7 @@ m68hc11_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -m68hc11_frame_prev_register (frame_info_ptr this_frame,
> +m68hc11_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct value *value;
> @@ -947,7 +947,7 @@ static const struct frame_unwind m68hc11_frame_unwind = {
> };
>
> static CORE_ADDR
> -m68hc11_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +m68hc11_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct m68hc11_unwind_cache *info
> = m68hc11_frame_unwind_cache (this_frame, this_cache);
> @@ -956,7 +956,7 @@ m68hc11_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> }
>
> static CORE_ADDR
> -m68hc11_frame_args_address (frame_info_ptr this_frame, void **this_cache)
> +m68hc11_frame_args_address (frame_info *this_frame, void **this_cache)
> {
> CORE_ADDR addr;
> struct m68hc11_unwind_cache *info
> @@ -983,7 +983,7 @@ static const struct frame_base m68hc11_frame_base = {
> save_dummy_frame_tos(), and the PC match the dummy frame's breakpoint. */
>
> static struct frame_id
> -m68hc11_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +m68hc11_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> ULONGEST tos;
> CORE_ADDR pc = get_frame_pc (this_frame);
> diff --git a/gdb/m68k-linux-tdep.c b/gdb/m68k-linux-tdep.c
> index 9c6a41609edb..2b2950b75fb3 100644
> --- a/gdb/m68k-linux-tdep.c
> +++ b/gdb/m68k-linux-tdep.c
> @@ -61,7 +61,7 @@
> non-RT and RT signal trampolines. */
>
> static int
> -m68k_linux_pc_in_sigtramp (frame_info_ptr this_frame)
> +m68k_linux_pc_in_sigtramp (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -219,7 +219,7 @@ m68k_linux_inferior_created (inferior *inf)
> }
>
> static struct m68k_linux_sigtramp_info
> -m68k_linux_get_sigtramp_info (frame_info_ptr this_frame)
> +m68k_linux_get_sigtramp_info (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -248,7 +248,7 @@ m68k_linux_get_sigtramp_info (frame_info_ptr this_frame)
> /* Signal trampolines. */
>
> static struct trad_frame_cache *
> -m68k_linux_sigtramp_frame_cache (frame_info_ptr this_frame,
> +m68k_linux_sigtramp_frame_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct frame_id this_id;
> @@ -286,7 +286,7 @@ m68k_linux_sigtramp_frame_cache (frame_info_ptr this_frame,
> }
>
> static void
> -m68k_linux_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +m68k_linux_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -296,7 +296,7 @@ m68k_linux_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -m68k_linux_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +m68k_linux_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache,
> int regnum)
> {
> @@ -308,7 +308,7 @@ m68k_linux_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> m68k_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> return m68k_linux_pc_in_sigtramp (this_frame);
> diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c
> index c0a331188147..6901fd2ca1b5 100644
> --- a/gdb/m68k-tdep.c
> +++ b/gdb/m68k-tdep.c
> @@ -202,7 +202,7 @@ m68k_convert_register_p (struct gdbarch *gdbarch,
> return its contents in TO. */
>
> static int
> -m68k_register_to_value (frame_info_ptr frame, int regnum,
> +m68k_register_to_value (frame_info *frame, int regnum,
> struct type *type, gdb_byte *to,
> int *optimizedp, int *unavailablep)
> {
> @@ -896,7 +896,7 @@ m68k_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
> }
>
> static CORE_ADDR
> -m68k_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +m68k_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> gdb_byte buf[8];
>
> @@ -907,7 +907,7 @@ m68k_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> /* Normal frames. */
>
> static struct m68k_frame_cache *
> -m68k_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +m68k_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -972,7 +972,7 @@ m68k_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -m68k_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +m68k_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct m68k_frame_cache *cache = m68k_frame_cache (this_frame, this_cache);
> @@ -986,7 +986,7 @@ m68k_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -m68k_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +m68k_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct m68k_frame_cache *cache = m68k_frame_cache (this_frame, this_cache);
> @@ -1015,7 +1015,7 @@ static const struct frame_unwind m68k_frame_unwind =
> };
> \f
> static CORE_ADDR
> -m68k_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +m68k_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct m68k_frame_cache *cache = m68k_frame_cache (this_frame, this_cache);
>
> @@ -1031,7 +1031,7 @@ static const struct frame_base m68k_frame_base =
> };
>
> static struct frame_id
> -m68k_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +m68k_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> CORE_ADDR fp;
>
> diff --git a/gdb/m68k-tdep.h b/gdb/m68k-tdep.h
> index e22d624adaa8..bbe925c4577b 100644
> --- a/gdb/m68k-tdep.h
> +++ b/gdb/m68k-tdep.h
> @@ -22,8 +22,6 @@
>
> #include "gdbarch.h"
>
> -class frame_info_ptr;
> -
> /* Register numbers of various important registers. */
>
> enum m68k_regnum
> diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c
> index a6416085fe4f..86f98803ba98 100644
> --- a/gdb/mep-tdep.c
> +++ b/gdb/mep-tdep.c
> @@ -1910,7 +1910,7 @@ typedef BP_MANIPULATION (mep_break_insn) mep_breakpoint;
>
>
> static struct mep_prologue *
> -mep_analyze_frame_prologue (frame_info_ptr this_frame,
> +mep_analyze_frame_prologue (frame_info *this_frame,
> void **this_prologue_cache)
> {
> if (! *this_prologue_cache)
> @@ -1940,7 +1940,7 @@ mep_analyze_frame_prologue (frame_info_ptr this_frame,
> /* Given the next frame and a prologue cache, return this frame's
> base. */
> static CORE_ADDR
> -mep_frame_base (frame_info_ptr this_frame,
> +mep_frame_base (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct mep_prologue *p
> @@ -1968,7 +1968,7 @@ mep_frame_base (frame_info_ptr this_frame,
>
>
> static void
> -mep_frame_this_id (frame_info_ptr this_frame,
> +mep_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -1978,7 +1978,7 @@ mep_frame_this_id (frame_info_ptr this_frame,
>
>
> static struct value *
> -mep_frame_prev_register (frame_info_ptr this_frame,
> +mep_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct mep_prologue *p
> diff --git a/gdb/microblaze-linux-tdep.c b/gdb/microblaze-linux-tdep.c
> index 768889a74805..7ed79f13db86 100644
> --- a/gdb/microblaze-linux-tdep.c
> +++ b/gdb/microblaze-linux-tdep.c
> @@ -62,7 +62,7 @@ microblaze_linux_memory_remove_breakpoint (struct gdbarch *gdbarch,
> }
>
> static void
> -microblaze_linux_sigtramp_cache (frame_info_ptr next_frame,
> +microblaze_linux_sigtramp_cache (frame_info *next_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func, LONGEST offset,
> int bias)
> @@ -90,7 +90,7 @@ microblaze_linux_sigtramp_cache (frame_info_ptr next_frame,
>
> static void
> microblaze_linux_sighandler_cache_init (const struct tramp_frame *self,
> - frame_info_ptr next_frame,
> + frame_info *next_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c
> index efa1daaa7fcd..8de2ae9ef069 100644
> --- a/gdb/microblaze-tdep.c
> +++ b/gdb/microblaze-tdep.c
> @@ -368,7 +368,7 @@ microblaze_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc,
> }
>
> static CORE_ADDR
> -microblaze_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +microblaze_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> gdb_byte buf[4];
> CORE_ADDR pc;
> @@ -417,7 +417,7 @@ microblaze_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
> /* Normal frames. */
>
> static struct microblaze_frame_cache *
> -microblaze_frame_cache (frame_info_ptr next_frame, void **this_cache)
> +microblaze_frame_cache (frame_info *next_frame, void **this_cache)
> {
> struct microblaze_frame_cache *cache;
> struct gdbarch *gdbarch = get_frame_arch (next_frame);
> @@ -443,7 +443,7 @@ microblaze_frame_cache (frame_info_ptr next_frame, void **this_cache)
> }
>
> static void
> -microblaze_frame_this_id (frame_info_ptr next_frame, void **this_cache,
> +microblaze_frame_this_id (frame_info *next_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct microblaze_frame_cache *cache =
> @@ -457,7 +457,7 @@ microblaze_frame_this_id (frame_info_ptr next_frame, void **this_cache,
> }
>
> static struct value *
> -microblaze_frame_prev_register (frame_info_ptr this_frame,
> +microblaze_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct microblaze_frame_cache *cache =
> @@ -490,7 +490,7 @@ static const struct frame_unwind microblaze_frame_unwind =
> };
> \f
> static CORE_ADDR
> -microblaze_frame_base_address (frame_info_ptr next_frame,
> +microblaze_frame_base_address (frame_info *next_frame,
> void **this_cache)
> {
> struct microblaze_frame_cache *cache =
> diff --git a/gdb/mips-fbsd-tdep.c b/gdb/mips-fbsd-tdep.c
> index 0de1007d74fc..2ad39eb7380a 100644
> --- a/gdb/mips-fbsd-tdep.c
> +++ b/gdb/mips-fbsd-tdep.c
> @@ -275,7 +275,7 @@ mips_fbsd_iterate_over_regset_sections (struct gdbarch *gdbarch,
>
> static void
> mips_fbsd_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *cache,
> CORE_ADDR func)
> {
> @@ -367,7 +367,7 @@ static const struct tramp_frame mips_fbsd_sigframe =
>
> static void
> mips64_fbsd_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c
> index 1b3b5f88edbc..926966dc6e7f 100644
> --- a/gdb/mips-linux-tdep.c
> +++ b/gdb/mips-linux-tdep.c
> @@ -713,21 +713,21 @@ mips_linux_skip_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
> efficient way, but simplest. First, declare all the unwinders. */
>
> static void mips_linux_o32_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func);
>
> static void mips_linux_n32n64_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func);
>
> static int mips_linux_sigframe_validate (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> CORE_ADDR *pc);
>
> static int micromips_linux_sigframe_validate (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> CORE_ADDR *pc);
>
> #define MIPS_NR_LINUX 4000
> @@ -958,7 +958,7 @@ static const struct tramp_frame micromips_linux_n64_rt_sigframe = {
>
> static void
> mips_linux_o32_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> @@ -1153,7 +1153,7 @@ mips_linux_o32_sigframe_init (const struct tramp_frame *self,
>
> static void
> mips_linux_n32n64_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> @@ -1238,7 +1238,7 @@ mips_linux_n32n64_sigframe_init (const struct tramp_frame *self,
>
> static int
> mips_linux_sigframe_validate (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> CORE_ADDR *pc)
> {
> return mips_pc_is_mips (*pc);
> @@ -1248,7 +1248,7 @@ mips_linux_sigframe_validate (const struct tramp_frame *self,
>
> static int
> micromips_linux_sigframe_validate (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> CORE_ADDR *pc)
> {
> if (mips_pc_is_micromips (get_frame_arch (this_frame), *pc))
> diff --git a/gdb/mips-sde-tdep.c b/gdb/mips-sde-tdep.c
> index 7d69effd704c..b0ca429c543c 100644
> --- a/gdb/mips-sde-tdep.c
> +++ b/gdb/mips-sde-tdep.c
> @@ -34,7 +34,7 @@
> in the SDE frame unwinder. */
>
> static struct trad_frame_cache *
> -mips_sde_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +mips_sde_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> const struct mips_regnum *regs = mips_regnum (gdbarch);
> @@ -122,7 +122,7 @@ mips_sde_frame_cache (frame_info_ptr this_frame, void **this_cache)
> /* Implement the this_id function for the SDE frame unwinder. */
>
> static void
> -mips_sde_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +mips_sde_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct trad_frame_cache *this_trad_cache
> @@ -134,7 +134,7 @@ mips_sde_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> /* Implement the prev_register function for the SDE frame unwinder. */
>
> static struct value *
> -mips_sde_frame_prev_register (frame_info_ptr this_frame,
> +mips_sde_frame_prev_register (frame_info *this_frame,
> void **this_cache,
> int prev_regnum)
> {
> @@ -148,7 +148,7 @@ mips_sde_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> mips_sde_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> @@ -177,7 +177,7 @@ static const struct frame_unwind mips_sde_frame_unwind =
> for the normal unwinder. */
>
> static CORE_ADDR
> -mips_sde_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +mips_sde_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct trad_frame_cache *this_trad_cache
> = mips_sde_frame_cache (this_frame, this_cache);
> @@ -194,7 +194,7 @@ static const struct frame_base mips_sde_frame_base =
> };
>
> static const struct frame_base *
> -mips_sde_frame_base_sniffer (frame_info_ptr this_frame)
> +mips_sde_frame_base_sniffer (frame_info *this_frame)
> {
> if (mips_sde_frame_sniffer (&mips_sde_frame_unwind, this_frame, NULL))
> return &mips_sde_frame_base;
> diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
> index 8c1643585f4c..bb7362efaa00 100644
> --- a/gdb/mips-tdep.c
> +++ b/gdb/mips-tdep.c
> @@ -940,7 +940,7 @@ mips_convert_register_p (struct gdbarch *gdbarch,
> }
>
> static int
> -mips_register_to_value (frame_info_ptr frame, int regnum,
> +mips_register_to_value (frame_info *frame, int regnum,
> struct type *type, gdb_byte *to,
> int *optimizedp, int *unavailablep)
> {
> @@ -1402,7 +1402,7 @@ mips_read_pc (readable_regcache *regcache)
> }
>
> static CORE_ADDR
> -mips_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +mips_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> CORE_ADDR pc;
>
> @@ -1424,7 +1424,7 @@ mips_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> }
>
> static CORE_ADDR
> -mips_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +mips_unwind_sp (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> return frame_unwind_register_signed
> (next_frame, gdbarch_num_regs (gdbarch) + MIPS_SP_REGNUM);
> @@ -1436,7 +1436,7 @@ mips_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> breakpoint. */
>
> static struct frame_id
> -mips_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +mips_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> return frame_id_build
> (get_frame_register_signed (this_frame,
> @@ -2519,7 +2519,7 @@ mips16_get_imm (unsigned short prev_inst, /* previous instruction */
> static CORE_ADDR
> mips16_scan_prologue (struct gdbarch *gdbarch,
> CORE_ADDR start_pc, CORE_ADDR limit_pc,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct mips_frame_cache *this_cache)
> {
> int prev_non_prologue_insn = 0;
> @@ -2855,7 +2855,7 @@ mips16_scan_prologue (struct gdbarch *gdbarch,
> mips_insn32 unwinder. */
>
> static struct mips_frame_cache *
> -mips_insn16_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +mips_insn16_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct mips_frame_cache *cache;
> @@ -2891,7 +2891,7 @@ mips_insn16_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -mips_insn16_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +mips_insn16_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct mips_frame_cache *info = mips_insn16_frame_cache (this_frame,
> @@ -2903,7 +2903,7 @@ mips_insn16_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -mips_insn16_frame_prev_register (frame_info_ptr this_frame,
> +mips_insn16_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct mips_frame_cache *info = mips_insn16_frame_cache (this_frame,
> @@ -2913,7 +2913,7 @@ mips_insn16_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> mips_insn16_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame, void **this_cache)
> + frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> CORE_ADDR pc = get_frame_pc (this_frame);
> @@ -2934,7 +2934,7 @@ static const struct frame_unwind mips_insn16_frame_unwind =
> };
>
> static CORE_ADDR
> -mips_insn16_frame_base_address (frame_info_ptr this_frame,
> +mips_insn16_frame_base_address (frame_info *this_frame,
> void **this_cache)
> {
> struct mips_frame_cache *info = mips_insn16_frame_cache (this_frame,
> @@ -2951,7 +2951,7 @@ static const struct frame_base mips_insn16_frame_base =
> };
>
> static const struct frame_base *
> -mips_insn16_frame_base_sniffer (frame_info_ptr this_frame)
> +mips_insn16_frame_base_sniffer (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> CORE_ADDR pc = get_frame_pc (this_frame);
> @@ -2980,7 +2980,7 @@ micromips_decode_imm9 (int imm)
> static CORE_ADDR
> micromips_scan_prologue (struct gdbarch *gdbarch,
> CORE_ADDR start_pc, CORE_ADDR limit_pc,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct mips_frame_cache *this_cache)
> {
> CORE_ADDR end_prologue_addr;
> @@ -3289,7 +3289,7 @@ micromips_scan_prologue (struct gdbarch *gdbarch,
> mips_insn32 unwinder. Likewise MIPS16 and the mips_insn16 unwinder. */
>
> static struct mips_frame_cache *
> -mips_micro_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +mips_micro_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct mips_frame_cache *cache;
> @@ -3326,7 +3326,7 @@ mips_micro_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -mips_micro_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +mips_micro_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct mips_frame_cache *info = mips_micro_frame_cache (this_frame,
> @@ -3338,7 +3338,7 @@ mips_micro_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -mips_micro_frame_prev_register (frame_info_ptr this_frame,
> +mips_micro_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct mips_frame_cache *info = mips_micro_frame_cache (this_frame,
> @@ -3348,7 +3348,7 @@ mips_micro_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> mips_micro_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame, void **this_cache)
> + frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> CORE_ADDR pc = get_frame_pc (this_frame);
> @@ -3370,7 +3370,7 @@ static const struct frame_unwind mips_micro_frame_unwind =
> };
>
> static CORE_ADDR
> -mips_micro_frame_base_address (frame_info_ptr this_frame,
> +mips_micro_frame_base_address (frame_info *this_frame,
> void **this_cache)
> {
> struct mips_frame_cache *info = mips_micro_frame_cache (this_frame,
> @@ -3387,7 +3387,7 @@ static const struct frame_base mips_micro_frame_base =
> };
>
> static const struct frame_base *
> -mips_micro_frame_base_sniffer (frame_info_ptr this_frame)
> +mips_micro_frame_base_sniffer (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> CORE_ADDR pc = get_frame_pc (this_frame);
> @@ -3425,7 +3425,7 @@ reset_saved_regs (struct gdbarch *gdbarch, struct mips_frame_cache *this_cache)
> static CORE_ADDR
> mips32_scan_prologue (struct gdbarch *gdbarch,
> CORE_ADDR start_pc, CORE_ADDR limit_pc,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct mips_frame_cache *this_cache)
> {
> int prev_non_prologue_insn;
> @@ -3670,7 +3670,7 @@ mips32_scan_prologue (struct gdbarch *gdbarch,
> unwinder. Likewise microMIPS and the mips_micro unwinder. */
>
> static struct mips_frame_cache *
> -mips_insn32_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +mips_insn32_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct mips_frame_cache *cache;
> @@ -3707,7 +3707,7 @@ mips_insn32_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -mips_insn32_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +mips_insn32_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct mips_frame_cache *info = mips_insn32_frame_cache (this_frame,
> @@ -3719,7 +3719,7 @@ mips_insn32_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -mips_insn32_frame_prev_register (frame_info_ptr this_frame,
> +mips_insn32_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct mips_frame_cache *info = mips_insn32_frame_cache (this_frame,
> @@ -3729,7 +3729,7 @@ mips_insn32_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> mips_insn32_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame, void **this_cache)
> + frame_info *this_frame, void **this_cache)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> if (mips_pc_is_mips (pc))
> @@ -3749,7 +3749,7 @@ static const struct frame_unwind mips_insn32_frame_unwind =
> };
>
> static CORE_ADDR
> -mips_insn32_frame_base_address (frame_info_ptr this_frame,
> +mips_insn32_frame_base_address (frame_info *this_frame,
> void **this_cache)
> {
> struct mips_frame_cache *info = mips_insn32_frame_cache (this_frame,
> @@ -3766,7 +3766,7 @@ static const struct frame_base mips_insn32_frame_base =
> };
>
> static const struct frame_base *
> -mips_insn32_frame_base_sniffer (frame_info_ptr this_frame)
> +mips_insn32_frame_base_sniffer (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> if (mips_pc_is_mips (pc))
> @@ -3776,7 +3776,7 @@ mips_insn32_frame_base_sniffer (frame_info_ptr this_frame)
> }
>
> static struct trad_frame_cache *
> -mips_stub_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +mips_stub_frame_cache (frame_info *this_frame, void **this_cache)
> {
> CORE_ADDR pc;
> CORE_ADDR start_addr;
> @@ -3811,7 +3811,7 @@ mips_stub_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -mips_stub_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +mips_stub_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct trad_frame_cache *this_trad_cache
> @@ -3820,7 +3820,7 @@ mips_stub_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -mips_stub_frame_prev_register (frame_info_ptr this_frame,
> +mips_stub_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct trad_frame_cache *this_trad_cache
> @@ -3830,7 +3830,7 @@ mips_stub_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> mips_stub_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame, void **this_cache)
> + frame_info *this_frame, void **this_cache)
> {
> gdb_byte dummy[4];
> CORE_ADDR pc = get_frame_address_in_block (this_frame);
> @@ -3866,7 +3866,7 @@ static const struct frame_unwind mips_stub_frame_unwind =
> };
>
> static CORE_ADDR
> -mips_stub_frame_base_address (frame_info_ptr this_frame,
> +mips_stub_frame_base_address (frame_info *this_frame,
> void **this_cache)
> {
> struct trad_frame_cache *this_trad_cache
> @@ -3883,7 +3883,7 @@ static const struct frame_base mips_stub_frame_base =
> };
>
> static const struct frame_base *
> -mips_stub_frame_base_sniffer (frame_info_ptr this_frame)
> +mips_stub_frame_base_sniffer (frame_info *this_frame)
> {
> if (mips_stub_frame_sniffer (&mips_stub_frame_unwind, this_frame, NULL))
> return &mips_stub_frame_base;
> @@ -6256,7 +6256,7 @@ mips_read_fp_register_single (frame_info_ptr frame, int regno,
> int raw_size = register_size (gdbarch, regno);
> gdb_byte *raw_buffer = (gdb_byte *) alloca (raw_size);
>
> - if (!deprecated_frame_register_read (frame, regno, raw_buffer))
> + if (!deprecated_frame_register_read (frame.get (), regno, raw_buffer))
> error (_("can't read register %d (%s)"),
> regno, gdbarch_register_name (gdbarch, regno));
> if (raw_size == 8)
> @@ -6293,7 +6293,7 @@ mips_read_fp_register_double (frame_info_ptr frame, int regno,
> {
> /* We have a 64-bit value for this register, and we should use
> all 64 bits. */
> - if (!deprecated_frame_register_read (frame, regno, rare_buffer))
> + if (!deprecated_frame_register_read (frame.get (), regno, rare_buffer))
> error (_("can't read register %d (%s)"),
> regno, gdbarch_register_name (gdbarch, regno));
> }
> @@ -8066,7 +8066,7 @@ mips_register_g_packet_guesses (struct gdbarch *gdbarch)
> }
>
> static struct value *
> -value_of_mips_user_reg (frame_info_ptr frame, const void *baton)
> +value_of_mips_user_reg (frame_info *frame, const void *baton)
> {
> const int *reg_p = (const int *) baton;
> return value_of_register (*reg_p, frame);
> diff --git a/gdb/mips64-obsd-tdep.c b/gdb/mips64-obsd-tdep.c
> index 450e302f0043..3dec72c4f2d7 100644
> --- a/gdb/mips64-obsd-tdep.c
> +++ b/gdb/mips64-obsd-tdep.c
> @@ -77,7 +77,7 @@ mips64obsd_iterate_over_regset_sections (struct gdbarch *gdbarch,
>
> static void
> mips64obsd_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/mn10300-linux-tdep.c b/gdb/mn10300-linux-tdep.c
> index b6111d431b7c..0fadcb489f40 100644
> --- a/gdb/mn10300-linux-tdep.c
> +++ b/gdb/mn10300-linux-tdep.c
> @@ -464,7 +464,7 @@ am33_iterate_over_regset_sections (struct gdbarch *gdbarch,
> \f
> static void
> am33_linux_sigframe_cache_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func);
>
> @@ -607,7 +607,7 @@ struct sigcontext {
>
> static void
> am33_linux_sigframe_cache_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c
> index 815949c67ae4..d8a412f7b5dc 100644
> --- a/gdb/mn10300-tdep.c
> +++ b/gdb/mn10300-tdep.c
> @@ -1042,7 +1042,7 @@ mn10300_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
> use the current frame PC as the limit, then
> invoke mn10300_analyze_prologue and return its result. */
> static struct mn10300_prologue *
> -mn10300_analyze_frame_prologue (frame_info_ptr this_frame,
> +mn10300_analyze_frame_prologue (frame_info *this_frame,
> void **this_prologue_cache)
> {
> if (!*this_prologue_cache)
> @@ -1071,7 +1071,7 @@ mn10300_analyze_frame_prologue (frame_info_ptr this_frame,
> /* Given the next frame and a prologue cache, return this frame's
> base. */
> static CORE_ADDR
> -mn10300_frame_base (frame_info_ptr this_frame, void **this_prologue_cache)
> +mn10300_frame_base (frame_info *this_frame, void **this_prologue_cache)
> {
> struct mn10300_prologue *p
> = mn10300_analyze_frame_prologue (this_frame, this_prologue_cache);
> @@ -1095,7 +1095,7 @@ mn10300_frame_base (frame_info_ptr this_frame, void **this_prologue_cache)
> }
>
> static void
> -mn10300_frame_this_id (frame_info_ptr this_frame,
> +mn10300_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -1106,7 +1106,7 @@ mn10300_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -mn10300_frame_prev_register (frame_info_ptr this_frame,
> +mn10300_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct mn10300_prologue *p
> @@ -1275,7 +1275,7 @@ mn10300_push_dummy_call (struct gdbarch *gdbarch,
> {
> CORE_ADDR func_addr = find_function_addr (target_func, NULL);
> CORE_ADDR unwound_sp
> - = gdbarch_unwind_sp (gdbarch, create_new_frame (sp, func_addr));
> + = gdbarch_unwind_sp (gdbarch, create_new_frame (sp, func_addr).get ());
> if (sp != unwound_sp)
> regcache_cooked_write_unsigned (regcache, E_SP_REGNUM,
> sp - (unwound_sp - sp));
> diff --git a/gdb/moxie-tdep.c b/gdb/moxie-tdep.c
> index f1841e4e57e3..befa796fe2e2 100644
> --- a/gdb/moxie-tdep.c
> +++ b/gdb/moxie-tdep.c
> @@ -513,7 +513,7 @@ moxie_alloc_frame_cache (void)
> /* Populate a moxie_frame_cache object for this_frame. */
>
> static struct moxie_frame_cache *
> -moxie_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +moxie_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct moxie_frame_cache *cache;
> CORE_ADDR current_pc;
> @@ -550,7 +550,7 @@ moxie_frame_cache (frame_info_ptr this_frame, void **this_cache)
> frame. This will be used to create a new GDB frame struct. */
>
> static void
> -moxie_frame_this_id (frame_info_ptr this_frame,
> +moxie_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache, struct frame_id *this_id)
> {
> struct moxie_frame_cache *cache = moxie_frame_cache (this_frame,
> @@ -566,7 +566,7 @@ moxie_frame_this_id (frame_info_ptr this_frame,
> /* Get the value of register regnum in the previous stack frame. */
>
> static struct value *
> -moxie_frame_prev_register (frame_info_ptr this_frame,
> +moxie_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct moxie_frame_cache *cache = moxie_frame_cache (this_frame,
> @@ -597,7 +597,7 @@ static const struct frame_unwind moxie_frame_unwind = {
> /* Return the base address of this_frame. */
>
> static CORE_ADDR
> -moxie_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +moxie_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct moxie_frame_cache *cache = moxie_frame_cache (this_frame,
> this_cache);
> diff --git a/gdb/msp430-tdep.c b/gdb/msp430-tdep.c
> index 545542472305..d470fb095d7f 100644
> --- a/gdb/msp430-tdep.c
> +++ b/gdb/msp430-tdep.c
> @@ -457,7 +457,7 @@ msp430_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
> return that struct as the value of this function. */
>
> static struct msp430_prologue *
> -msp430_analyze_frame_prologue (frame_info_ptr this_frame,
> +msp430_analyze_frame_prologue (frame_info *this_frame,
> void **this_prologue_cache)
> {
> if (!*this_prologue_cache)
> @@ -485,7 +485,7 @@ msp430_analyze_frame_prologue (frame_info_ptr this_frame,
> /* Given a frame and a prologue cache, return this frame's base. */
>
> static CORE_ADDR
> -msp430_frame_base (frame_info_ptr this_frame, void **this_prologue_cache)
> +msp430_frame_base (frame_info *this_frame, void **this_prologue_cache)
> {
> struct msp430_prologue *p
> = msp430_analyze_frame_prologue (this_frame, this_prologue_cache);
> @@ -497,7 +497,7 @@ msp430_frame_base (frame_info_ptr this_frame, void **this_prologue_cache)
> /* Implement the "frame_this_id" method for unwinding frames. */
>
> static void
> -msp430_this_id (frame_info_ptr this_frame,
> +msp430_this_id (frame_info *this_frame,
> void **this_prologue_cache, struct frame_id *this_id)
> {
> *this_id = frame_id_build (msp430_frame_base (this_frame,
> @@ -508,7 +508,7 @@ msp430_this_id (frame_info_ptr this_frame,
> /* Implement the "frame_prev_register" method for unwinding frames. */
>
> static struct value *
> -msp430_prev_register (frame_info_ptr this_frame,
> +msp430_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct msp430_prologue *p
> diff --git a/gdb/nds32-tdep.c b/gdb/nds32-tdep.c
> index 4ab91e67f064..ac703e3b5728 100644
> --- a/gdb/nds32-tdep.c
> +++ b/gdb/nds32-tdep.c
> @@ -265,7 +265,7 @@ static const struct
> register. */
>
> static struct value *
> -value_of_nds32_reg (frame_info_ptr frame, const void *baton)
> +value_of_nds32_reg (frame_info *frame, const void *baton)
> {
> return value_of_register ((int) (intptr_t) baton, frame);
> }
> @@ -898,7 +898,7 @@ nds32_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
> a pointer to the current nds32_frame_cache in *THIS_CACHE. */
>
> static struct nds32_frame_cache *
> -nds32_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +nds32_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct nds32_frame_cache *cache;
> @@ -949,7 +949,7 @@ nds32_frame_cache (frame_info_ptr this_frame, void **this_cache)
> PC and the caller's SP when we were called. */
>
> static void
> -nds32_frame_this_id (frame_info_ptr this_frame,
> +nds32_frame_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> struct nds32_frame_cache *cache = nds32_frame_cache (this_frame, this_cache);
> @@ -964,7 +964,7 @@ nds32_frame_this_id (frame_info_ptr this_frame,
> /* Implement the "prev_register" frame_unwind method. */
>
> static struct value *
> -nds32_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +nds32_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct nds32_frame_cache *cache = nds32_frame_cache (this_frame, this_cache);
> @@ -998,7 +998,7 @@ static const struct frame_unwind nds32_frame_unwind =
> /* Return the frame base address of *THIS_FRAME. */
>
> static CORE_ADDR
> -nds32_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +nds32_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct nds32_frame_cache *cache = nds32_frame_cache (this_frame, this_cache);
>
> @@ -1284,7 +1284,7 @@ nds32_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR addr)
>
> static int
> nds32_epilogue_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame, void **this_cache)
> + frame_info *this_frame, void **this_cache)
> {
> if (frame_relative_level (this_frame) == 0)
> return nds32_stack_frame_destroyed_p (get_frame_arch (this_frame),
> @@ -1299,7 +1299,7 @@ nds32_epilogue_frame_sniffer (const struct frame_unwind *self,
> *THIS_CACHE. */
>
> static struct nds32_frame_cache *
> -nds32_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +nds32_epilogue_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct nds32_frame_cache *cache;
> @@ -1331,7 +1331,7 @@ nds32_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
> /* Implement the "this_id" frame_unwind method. */
>
> static void
> -nds32_epilogue_frame_this_id (frame_info_ptr this_frame,
> +nds32_epilogue_frame_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> struct nds32_frame_cache *cache
> @@ -1347,7 +1347,7 @@ nds32_epilogue_frame_this_id (frame_info_ptr this_frame,
> /* Implement the "prev_register" frame_unwind method. */
>
> static struct value *
> -nds32_epilogue_frame_prev_register (frame_info_ptr this_frame,
> +nds32_epilogue_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct nds32_frame_cache *cache
> diff --git a/gdb/nios2-linux-tdep.c b/gdb/nios2-linux-tdep.c
> index 5a03cbc17737..d8e0e61396d2 100644
> --- a/gdb/nios2-linux-tdep.c
> +++ b/gdb/nios2-linux-tdep.c
> @@ -134,7 +134,7 @@ nios2_iterate_over_regset_sections (struct gdbarch *gdbarch,
>
> static void
> nios2_linux_rt_sigreturn_init (const struct tramp_frame *self,
> - frame_info_ptr next_frame,
> + frame_info *next_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/nios2-tdep.c b/gdb/nios2-tdep.c
> index effa10bf97e4..bf6f52c47a23 100644
> --- a/gdb/nios2-tdep.c
> +++ b/gdb/nios2-tdep.c
> @@ -1189,7 +1189,7 @@ static CORE_ADDR
> nios2_analyze_prologue (struct gdbarch *gdbarch, const CORE_ADDR start_pc,
> const CORE_ADDR current_pc,
> struct nios2_unwind_cache *cache,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> /* Maximum number of possibly-prologue instructions to check.
> Note that this number should not be too large, else we can
> @@ -1880,7 +1880,7 @@ nios2_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
> /* Implement the unwind_pc gdbarch method. */
>
> static CORE_ADDR
> -nios2_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +nios2_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> gdb_byte buf[4];
>
> @@ -1893,7 +1893,7 @@ nios2_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> *THIS_PROLOGUE_CACHE first. */
>
> static struct nios2_unwind_cache *
> -nios2_frame_unwind_cache (frame_info_ptr this_frame,
> +nios2_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -1920,7 +1920,7 @@ nios2_frame_unwind_cache (frame_info_ptr this_frame,
> /* Implement the this_id function for the normal unwinder. */
>
> static void
> -nios2_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +nios2_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct nios2_unwind_cache *cache =
> @@ -1936,7 +1936,7 @@ nios2_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> /* Implement the prev_register function for the normal unwinder. */
>
> static struct value *
> -nios2_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +nios2_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct nios2_unwind_cache *cache =
> @@ -1966,7 +1966,7 @@ nios2_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> for the normal unwinder. */
>
> static CORE_ADDR
> -nios2_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +nios2_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct nios2_unwind_cache *info
> = nios2_frame_unwind_cache (this_frame, this_cache);
> @@ -2000,7 +2000,7 @@ static const struct frame_base nios2_frame_base =
> in the stub unwinder. */
>
> static struct trad_frame_cache *
> -nios2_stub_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +nios2_stub_frame_cache (frame_info *this_frame, void **this_cache)
> {
> CORE_ADDR pc;
> CORE_ADDR start_addr;
> @@ -2033,7 +2033,7 @@ nios2_stub_frame_cache (frame_info_ptr this_frame, void **this_cache)
> /* Implement the this_id function for the stub unwinder. */
>
> static void
> -nios2_stub_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +nios2_stub_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct trad_frame_cache *this_trad_cache
> @@ -2045,7 +2045,7 @@ nios2_stub_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> /* Implement the prev_register function for the stub unwinder. */
>
> static struct value *
> -nios2_stub_frame_prev_register (frame_info_ptr this_frame,
> +nios2_stub_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct trad_frame_cache *this_trad_cache
> @@ -2061,7 +2061,7 @@ nios2_stub_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> nios2_stub_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame, void **cache)
> + frame_info *this_frame, void **cache)
> {
> gdb_byte dummy[4];
> CORE_ADDR pc = get_frame_address_in_block (this_frame);
> @@ -2188,7 +2188,7 @@ nios2_get_next_pc (struct regcache *regcache, CORE_ADDR pc)
> /* If ra is in the reglist, we have to use the value saved in the
> stack frame rather than the current value. */
> if (uimm & (1 << NIOS2_RA_REGNUM))
> - pc = nios2_unwind_pc (gdbarch, get_current_frame ());
> + pc = nios2_unwind_pc (gdbarch, get_current_frame ().get ());
> else
> pc = regcache_raw_get_unsigned (regcache, NIOS2_RA_REGNUM);
> }
> diff --git a/gdb/observable.h b/gdb/observable.h
> index 1103c5c98a6b..e6258eb587e8 100644
> --- a/gdb/observable.h
> +++ b/gdb/observable.h
> @@ -30,6 +30,7 @@ struct inferior;
> struct process_stratum_target;
> struct target_ops;
> struct trace_state_variable;
> +class frame_info_ptr;
>
> namespace gdb
> {
> diff --git a/gdb/or1k-linux-tdep.c b/gdb/or1k-linux-tdep.c
> index 750b3d842889..6e655710c135 100644
> --- a/gdb/or1k-linux-tdep.c
> +++ b/gdb/or1k-linux-tdep.c
> @@ -62,9 +62,9 @@ or1k_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
> /* Signal trampoline support. */
>
> static void or1k_linux_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> - struct trad_frame_cache *this_cache,
> - CORE_ADDR func);
> + frame_info *this_frame,
> + struct trad_frame_cache *this_cache,
> + CORE_ADDR func);
>
> #define OR1K_RT_SIGRETURN 139
>
> @@ -116,7 +116,7 @@ static const struct tramp_frame or1k_linux_sigframe = {
>
> static void
> or1k_linux_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/or1k-tdep.c b/gdb/or1k-tdep.c
> index efaf8745482a..ad949157592f 100644
> --- a/gdb/or1k-tdep.c
> +++ b/gdb/or1k-tdep.c
> @@ -559,7 +559,7 @@ or1k_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
> /* Implement the unwind_pc gdbarch method. */
>
> static CORE_ADDR
> -or1k_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +or1k_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> CORE_ADDR pc;
>
> @@ -579,7 +579,7 @@ or1k_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> /* Implement the unwind_sp gdbarch method. */
>
> static CORE_ADDR
> -or1k_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +or1k_unwind_sp (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> CORE_ADDR sp;
>
> @@ -890,7 +890,7 @@ or1k_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
> Reportedly, this is only valid for frames less than 0x7fff in size. */
>
> static struct trad_frame_cache *
> -or1k_frame_cache (frame_info_ptr this_frame, void **prologue_cache)
> +or1k_frame_cache (frame_info *this_frame, void **prologue_cache)
> {
> struct gdbarch *gdbarch;
> struct trad_frame_cache *info;
> @@ -1103,7 +1103,7 @@ or1k_frame_cache (frame_info_ptr this_frame, void **prologue_cache)
> /* Implement the this_id function for the stub unwinder. */
>
> static void
> -or1k_frame_this_id (frame_info_ptr this_frame,
> +or1k_frame_this_id (frame_info *this_frame,
> void **prologue_cache, struct frame_id *this_id)
> {
> struct trad_frame_cache *info = or1k_frame_cache (this_frame,
> @@ -1115,7 +1115,7 @@ or1k_frame_this_id (frame_info_ptr this_frame,
> /* Implement the prev_register function for the stub unwinder. */
>
> static struct value *
> -or1k_frame_prev_register (frame_info_ptr this_frame,
> +or1k_frame_prev_register (frame_info *this_frame,
> void **prologue_cache, int regnum)
> {
> struct trad_frame_cache *info = or1k_frame_cache (this_frame,
> diff --git a/gdb/ppc-fbsd-tdep.c b/gdb/ppc-fbsd-tdep.c
> index 497d82810a70..bf21db637212 100644
> --- a/gdb/ppc-fbsd-tdep.c
> +++ b/gdb/ppc-fbsd-tdep.c
> @@ -150,7 +150,7 @@ static const int ppcfbsd_sigreturn_offset[] = {
>
> static int
> ppcfbsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -197,7 +197,7 @@ ppcfbsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
> }
>
> static struct trad_frame_cache *
> -ppcfbsd_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +ppcfbsd_sigtramp_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
> @@ -243,7 +243,7 @@ ppcfbsd_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -ppcfbsd_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +ppcfbsd_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> struct trad_frame_cache *cache =
> @@ -253,7 +253,7 @@ ppcfbsd_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -ppcfbsd_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +ppcfbsd_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct trad_frame_cache *cache =
> diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
> index 39d692b2764c..e87a52c3431c 100644
> --- a/gdb/ppc-linux-tdep.c
> +++ b/gdb/ppc-linux-tdep.c
> @@ -1159,7 +1159,7 @@ ppc_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
> }
>
> static void
> -ppc_linux_sigtramp_cache (frame_info_ptr this_frame,
> +ppc_linux_sigtramp_cache (frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func, LONGEST offset,
> int bias)
> @@ -1231,7 +1231,7 @@ ppc_linux_sigtramp_cache (frame_info_ptr this_frame,
>
> static void
> ppc32_linux_sigaction_cache_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> @@ -1243,7 +1243,7 @@ ppc32_linux_sigaction_cache_init (const struct tramp_frame *self,
>
> static void
> ppc64_linux_sigaction_cache_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> @@ -1255,7 +1255,7 @@ ppc64_linux_sigaction_cache_init (const struct tramp_frame *self,
>
> static void
> ppc32_linux_sighandler_cache_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> @@ -1267,7 +1267,7 @@ ppc32_linux_sighandler_cache_init (const struct tramp_frame *self,
>
> static void
> ppc64_linux_sighandler_cache_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/ppc-netbsd-tdep.c b/gdb/ppc-netbsd-tdep.c
> index 03ffa5c5292f..4616921fd9cd 100644
> --- a/gdb/ppc-netbsd-tdep.c
> +++ b/gdb/ppc-netbsd-tdep.c
> @@ -97,7 +97,7 @@ extern const struct tramp_frame ppcnbsd2_sigtramp;
>
> static void
> ppcnbsd_sigtramp_cache_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/ppc-obsd-tdep.c b/gdb/ppc-obsd-tdep.c
> index 7436532d846d..7eaaa3958c31 100644
> --- a/gdb/ppc-obsd-tdep.c
> +++ b/gdb/ppc-obsd-tdep.c
> @@ -117,7 +117,7 @@ static const int ppcobsd_sigreturn_offset[] = {
>
> static int
> ppcobsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -158,7 +158,7 @@ ppcobsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
> }
>
> static struct trad_frame_cache *
> -ppcobsd_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +ppcobsd_sigtramp_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
> @@ -212,7 +212,7 @@ ppcobsd_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -ppcobsd_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +ppcobsd_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> struct trad_frame_cache *cache =
> @@ -222,7 +222,7 @@ ppcobsd_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -ppcobsd_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +ppcobsd_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct trad_frame_cache *cache =
> diff --git a/gdb/python/py-unwind.c b/gdb/python/py-unwind.c
> index 20b0ab460ccb..53b4c49e143d 100644
> --- a/gdb/python/py-unwind.c
> +++ b/gdb/python/py-unwind.c
> @@ -57,7 +57,7 @@ struct pending_frame_object
> PyObject_HEAD
>
> /* Frame we are unwinding. */
> - frame_info_ptr frame_info;
> + struct frame_info *frame_info;
>
> /* Its architecture, passed by the sniffer caller. */
> struct gdbarch *gdbarch;
> @@ -339,7 +339,7 @@ unwind_infopy_dealloc (PyObject *self)
> static PyObject *
> pending_framepy_str (PyObject *self)
> {
> - frame_info_ptr frame = ((pending_frame_object *) self)->frame_info;
> + frame_info *frame = ((pending_frame_object *) self)->frame_info;
> const char *sp_str = NULL;
> const char *pc_str = NULL;
>
> @@ -475,7 +475,7 @@ pending_framepy_level (PyObject *self, PyObject *args)
> /* frame_unwind.this_id method. */
>
> static void
> -pyuw_this_id (frame_info_ptr this_frame, void **cache_ptr,
> +pyuw_this_id (frame_info *this_frame, void **cache_ptr,
> struct frame_id *this_id)
> {
> *this_id = ((cached_frame_info *) *cache_ptr)->frame_id;
> @@ -485,7 +485,7 @@ pyuw_this_id (frame_info_ptr this_frame, void **cache_ptr,
> /* frame_unwind.prev_register. */
>
> static struct value *
> -pyuw_prev_register (frame_info_ptr this_frame, void **cache_ptr,
> +pyuw_prev_register (frame_info *this_frame, void **cache_ptr,
> int regnum)
> {
> PYUW_SCOPED_DEBUG_ENTER_EXIT;
> @@ -508,7 +508,7 @@ pyuw_prev_register (frame_info_ptr this_frame, void **cache_ptr,
> /* Frame sniffer dispatch. */
>
> static int
> -pyuw_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame,
> +pyuw_sniffer (const struct frame_unwind *self, frame_info *this_frame,
> void **cache_ptr)
> {
> PYUW_SCOPED_DEBUG_ENTER_EXIT;
> diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
> index 5cf978b932ca..afa0f7963173 100644
> --- a/gdb/record-btrace.c
> +++ b/gdb/record-btrace.c
> @@ -1642,13 +1642,13 @@ bfcache_eq (const void *arg1, const void *arg2)
> /* Create a new btrace frame cache. */
>
> static struct btrace_frame_cache *
> -bfcache_new (frame_info_ptr frame)
> +bfcache_new (frame_info *frame)
> {
> struct btrace_frame_cache *cache;
> void **slot;
>
> cache = FRAME_OBSTACK_ZALLOC (struct btrace_frame_cache);
> - cache->frame = frame.get ();
> + cache->frame = frame;
>
> slot = htab_find_slot (bfcache, cache, INSERT);
> gdb_assert (*slot == NULL);
> @@ -1660,13 +1660,13 @@ bfcache_new (frame_info_ptr frame)
> /* Extract the branch trace function from a branch trace frame. */
>
> static const struct btrace_function *
> -btrace_get_frame_function (frame_info_ptr frame)
> +btrace_get_frame_function (frame_info *frame)
> {
> const struct btrace_frame_cache *cache;
> struct btrace_frame_cache pattern;
> void **slot;
>
> - pattern.frame = frame.get ();
> + pattern.frame = frame;
>
> slot = htab_find_slot (bfcache, &pattern, NO_INSERT);
> if (slot == NULL)
> @@ -1679,7 +1679,7 @@ btrace_get_frame_function (frame_info_ptr frame)
> /* Implement stop_reason method for record_btrace_frame_unwind. */
>
> static enum unwind_stop_reason
> -record_btrace_frame_unwind_stop_reason (frame_info_ptr this_frame,
> +record_btrace_frame_unwind_stop_reason (frame_info *this_frame,
> void **this_cache)
> {
> const struct btrace_frame_cache *cache;
> @@ -1698,7 +1698,7 @@ record_btrace_frame_unwind_stop_reason (frame_info_ptr this_frame,
> /* Implement this_id method for record_btrace_frame_unwind. */
>
> static void
> -record_btrace_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +record_btrace_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> const struct btrace_frame_cache *cache;
> @@ -1728,7 +1728,7 @@ record_btrace_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> /* Implement prev_register method for record_btrace_frame_unwind. */
>
> static struct value *
> -record_btrace_frame_prev_register (frame_info_ptr this_frame,
> +record_btrace_frame_prev_register (frame_info *this_frame,
> void **this_cache,
> int regnum)
> {
> @@ -1774,19 +1774,18 @@ record_btrace_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> record_btrace_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> const struct btrace_function *bfun;
> struct btrace_frame_cache *cache;
> struct thread_info *tp;
> - frame_info_ptr next;
>
> /* THIS_FRAME does not contain a reference to its thread. */
> tp = inferior_thread ();
>
> bfun = NULL;
> - next = get_next_frame (this_frame);
> + frame_info *next = get_next_frame (this_frame);
> if (next == NULL)
> {
> const struct btrace_insn_iterator *replay;
> @@ -1829,16 +1828,15 @@ record_btrace_frame_sniffer (const struct frame_unwind *self,
>
> static int
> record_btrace_tailcall_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> const struct btrace_function *bfun, *callee;
> struct btrace_frame_cache *cache;
> struct btrace_call_iterator it;
> - frame_info_ptr next;
> struct thread_info *tinfo;
>
> - next = get_next_frame (this_frame);
> + frame_info *next = get_next_frame (this_frame);
> if (next == NULL)
> return 0;
>
> diff --git a/gdb/riscv-fbsd-tdep.c b/gdb/riscv-fbsd-tdep.c
> index 5b66a9c582ec..f36535e8219f 100644
> --- a/gdb/riscv-fbsd-tdep.c
> +++ b/gdb/riscv-fbsd-tdep.c
> @@ -108,7 +108,7 @@ riscv_fbsd_iterate_over_regset_sections (struct gdbarch *gdbarch,
>
> static void
> riscv_fbsd_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/riscv-linux-tdep.c b/gdb/riscv-linux-tdep.c
> index e736e3b9b267..71b122a79b61 100644
> --- a/gdb/riscv-linux-tdep.c
> +++ b/gdb/riscv-linux-tdep.c
> @@ -86,7 +86,7 @@ riscv_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
> /* Signal trampoline support. */
>
> static void riscv_linux_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func);
>
> @@ -125,7 +125,7 @@ static const struct tramp_frame riscv_linux_sigframe = {
>
> static void
> riscv_linux_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c
> index 0a050b272fff..47d4933737cf 100644
> --- a/gdb/riscv-tdep.c
> +++ b/gdb/riscv-tdep.c
> @@ -134,7 +134,7 @@ static const reggroup *csr_reggroup = nullptr;
> /* Callback function for user_reg_add. */
>
> static struct value *
> -value_of_riscv_user_reg (frame_info_ptr frame, const void *baton)
> +value_of_riscv_user_reg (frame_info *frame, const void *baton)
> {
> const int *reg_p = (const int *) baton;
> return value_of_register (*reg_p, frame);
> @@ -3434,7 +3434,7 @@ riscv_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
> unwinder. */
>
> static struct riscv_unwind_cache *
> -riscv_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +riscv_frame_cache (frame_info *this_frame, void **this_cache)
> {
> CORE_ADDR pc, start_addr;
> struct riscv_unwind_cache *cache;
> @@ -3495,7 +3495,7 @@ riscv_frame_cache (frame_info_ptr this_frame, void **this_cache)
> /* Implement the this_id callback for RiscV frame unwinder. */
>
> static void
> -riscv_frame_this_id (frame_info_ptr this_frame,
> +riscv_frame_this_id (frame_info *this_frame,
> void **prologue_cache,
> struct frame_id *this_id)
> {
> @@ -3516,7 +3516,7 @@ riscv_frame_this_id (frame_info_ptr this_frame,
> /* Implement the prev_register callback for RiscV frame unwinder. */
>
> static struct value *
> -riscv_frame_prev_register (frame_info_ptr this_frame,
> +riscv_frame_prev_register (frame_info *this_frame,
> void **prologue_cache,
> int regnum)
> {
> diff --git a/gdb/rl78-tdep.c b/gdb/rl78-tdep.c
> index 206b9e2794f8..c110524c1948 100644
> --- a/gdb/rl78-tdep.c
> +++ b/gdb/rl78-tdep.c
> @@ -1077,7 +1077,7 @@ rl78_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
> /* Implement the "unwind_pc" gdbarch method. */
>
> static CORE_ADDR
> -rl78_unwind_pc (struct gdbarch *arch, frame_info_ptr next_frame)
> +rl78_unwind_pc (struct gdbarch *arch, frame_info *next_frame)
> {
> return rl78_addr_bits_remove
> (arch, frame_unwind_register_unsigned (next_frame,
> @@ -1090,7 +1090,7 @@ rl78_unwind_pc (struct gdbarch *arch, frame_info_ptr next_frame)
> return that struct as the value of this function. */
>
> static struct rl78_prologue *
> -rl78_analyze_frame_prologue (frame_info_ptr this_frame,
> +rl78_analyze_frame_prologue (frame_info *this_frame,
> void **this_prologue_cache)
> {
> if (!*this_prologue_cache)
> @@ -1117,7 +1117,7 @@ rl78_analyze_frame_prologue (frame_info_ptr this_frame,
> /* Given a frame and a prologue cache, return this frame's base. */
>
> static CORE_ADDR
> -rl78_frame_base (frame_info_ptr this_frame, void **this_prologue_cache)
> +rl78_frame_base (frame_info *this_frame, void **this_prologue_cache)
> {
> struct rl78_prologue *p
> = rl78_analyze_frame_prologue (this_frame, this_prologue_cache);
> @@ -1129,7 +1129,7 @@ rl78_frame_base (frame_info_ptr this_frame, void **this_prologue_cache)
> /* Implement the "frame_this_id" method for unwinding frames. */
>
> static void
> -rl78_this_id (frame_info_ptr this_frame,
> +rl78_this_id (frame_info *this_frame,
> void **this_prologue_cache, struct frame_id *this_id)
> {
> *this_id = frame_id_build (rl78_frame_base (this_frame,
> @@ -1140,7 +1140,7 @@ rl78_this_id (frame_info_ptr this_frame,
> /* Implement the "frame_prev_register" method for unwinding frames. */
>
> static struct value *
> -rl78_prev_register (frame_info_ptr this_frame,
> +rl78_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct rl78_prologue *p
> @@ -1314,7 +1314,7 @@ rl78_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
> /* Implement the "dummy_id" gdbarch method. */
>
> static struct frame_id
> -rl78_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +rl78_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> return
> frame_id_build (rl78_make_data_address
> diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c
> index 3efafbd10abf..42eb46262e8a 100644
> --- a/gdb/rs6000-aix-tdep.c
> +++ b/gdb/rs6000-aix-tdep.c
> @@ -69,7 +69,7 @@
> #define AIX_TEXT_SEGMENT_BASE 0x10000000
>
> static struct trad_frame_cache *
> -aix_sighandle_frame_cache (frame_info_ptr this_frame,
> +aix_sighandle_frame_cache (frame_info *this_frame,
> void **this_cache)
> {
> LONGEST backchain;
> @@ -125,7 +125,7 @@ aix_sighandle_frame_cache (frame_info_ptr this_frame,
> }
>
> static void
> -aix_sighandle_frame_this_id (frame_info_ptr this_frame,
> +aix_sighandle_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -135,7 +135,7 @@ aix_sighandle_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -aix_sighandle_frame_prev_register (frame_info_ptr this_frame,
> +aix_sighandle_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct trad_frame_cache *this_trad_cache
> @@ -145,7 +145,7 @@ aix_sighandle_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> aix_sighandle_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
> index cbd845147957..731ddfccb8bc 100644
> --- a/gdb/rs6000-tdep.c
> +++ b/gdb/rs6000-tdep.c
> @@ -743,7 +743,7 @@ insn_changes_sp_or_jumps (unsigned long insn)
> limit for the size of an epilogue. */
>
> static int
> -rs6000_in_function_epilogue_frame_p (frame_info_ptr curfrm,
> +rs6000_in_function_epilogue_frame_p (frame_info *curfrm,
> struct gdbarch *gdbarch, CORE_ADDR pc)
> {
> ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
> @@ -810,7 +810,7 @@ rs6000_in_function_epilogue_frame_p (frame_info_ptr curfrm,
> static int
> rs6000_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
> {
> - return rs6000_in_function_epilogue_frame_p (get_current_frame (),
> + return rs6000_in_function_epilogue_frame_p (get_current_frame ().get (),
> gdbarch, pc);
> }
>
> @@ -2669,7 +2669,7 @@ rs6000_convert_register_p (struct gdbarch *gdbarch, int regnum,
> }
>
> static int
> -rs6000_register_to_value (frame_info_ptr frame,
> +rs6000_register_to_value (frame_info *frame,
> int regnum,
> struct type *type,
> gdb_byte *to,
> @@ -3553,7 +3553,7 @@ struct rs6000_frame_cache
> };
>
> static struct rs6000_frame_cache *
> -rs6000_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +rs6000_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct rs6000_frame_cache *cache;
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -3746,7 +3746,7 @@ rs6000_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -rs6000_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +rs6000_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct rs6000_frame_cache *info = rs6000_frame_cache (this_frame,
> @@ -3766,7 +3766,7 @@ rs6000_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -rs6000_frame_prev_register (frame_info_ptr this_frame,
> +rs6000_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct rs6000_frame_cache *info = rs6000_frame_cache (this_frame,
> @@ -3789,7 +3789,7 @@ static const struct frame_unwind rs6000_frame_unwind =
> SP is restored and prev-PC is stored in LR. */
>
> static struct rs6000_frame_cache *
> -rs6000_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +rs6000_epilogue_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct rs6000_frame_cache *cache;
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -3829,7 +3829,7 @@ rs6000_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
> Return the frame ID of an epilogue frame. */
>
> static void
> -rs6000_epilogue_frame_this_id (frame_info_ptr this_frame,
> +rs6000_epilogue_frame_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> CORE_ADDR pc;
> @@ -3847,7 +3847,7 @@ rs6000_epilogue_frame_this_id (frame_info_ptr this_frame,
> Return the register value of REGNUM in previous frame. */
>
> static struct value *
> -rs6000_epilogue_frame_prev_register (frame_info_ptr this_frame,
> +rs6000_epilogue_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct rs6000_frame_cache *info =
> @@ -3860,7 +3860,7 @@ rs6000_epilogue_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> rs6000_epilogue_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> if (frame_relative_level (this_frame) == 0)
> @@ -3886,7 +3886,7 @@ static const struct frame_unwind rs6000_epilogue_frame_unwind =
> \f
>
> static CORE_ADDR
> -rs6000_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +rs6000_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct rs6000_frame_cache *info = rs6000_frame_cache (this_frame,
> this_cache);
> @@ -3901,7 +3901,7 @@ static const struct frame_base rs6000_frame_base = {
> };
>
> static const struct frame_base *
> -rs6000_frame_base_sniffer (frame_info_ptr this_frame)
> +rs6000_frame_base_sniffer (frame_info *this_frame)
> {
> return &rs6000_frame_base;
> }
> @@ -3912,7 +3912,7 @@ rs6000_frame_base_sniffer (frame_info_ptr this_frame)
> static void
> ppc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
>
> diff --git a/gdb/rx-tdep.c b/gdb/rx-tdep.c
> index d1c294b9ef0a..69664993d1ad 100644
> --- a/gdb/rx-tdep.c
> +++ b/gdb/rx-tdep.c
> @@ -382,7 +382,7 @@ rx_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
> return that struct as the value of this function. */
>
> static struct rx_prologue *
> -rx_analyze_frame_prologue (frame_info_ptr this_frame,
> +rx_analyze_frame_prologue (frame_info *this_frame,
> enum rx_frame_type frame_type,
> void **this_prologue_cache)
> {
> @@ -411,7 +411,7 @@ rx_analyze_frame_prologue (frame_info_ptr this_frame,
> instruction. */
>
> static enum rx_frame_type
> -rx_frame_type (frame_info_ptr this_frame, void **this_cache)
> +rx_frame_type (frame_info *this_frame, void **this_cache)
> {
> const char *name;
> CORE_ADDR pc, start_pc, lim_pc;
> @@ -465,7 +465,7 @@ rx_frame_type (frame_info_ptr this_frame, void **this_cache)
> base. */
>
> static CORE_ADDR
> -rx_frame_base (frame_info_ptr this_frame, void **this_cache)
> +rx_frame_base (frame_info *this_frame, void **this_cache)
> {
> enum rx_frame_type frame_type = rx_frame_type (this_frame, this_cache);
> struct rx_prologue *p
> @@ -492,7 +492,7 @@ rx_frame_base (frame_info_ptr this_frame, void **this_cache)
> /* Implement the "frame_this_id" method for unwinding frames. */
>
> static void
> -rx_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +rx_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> *this_id = frame_id_build (rx_frame_base (this_frame, this_cache),
> @@ -502,7 +502,7 @@ rx_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> /* Implement the "frame_prev_register" method for unwinding frames. */
>
> static struct value *
> -rx_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +rx_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> enum rx_frame_type frame_type = rx_frame_type (this_frame, this_cache);
> @@ -576,7 +576,7 @@ exception_frame_p (enum rx_frame_type frame_type)
>
> static int
> rx_frame_sniffer_common (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache,
> int (*sniff_p)(enum rx_frame_type) )
> {
> @@ -609,7 +609,7 @@ rx_frame_sniffer_common (const struct frame_unwind *self,
>
> static int
> rx_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> return rx_frame_sniffer_common (self, this_frame, this_cache,
> @@ -620,7 +620,7 @@ rx_frame_sniffer (const struct frame_unwind *self,
>
> static int
> rx_exception_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> return rx_frame_sniffer_common (self, this_frame, this_cache,
> diff --git a/gdb/s12z-tdep.c b/gdb/s12z-tdep.c
> index ccc47c998041..66da0c063ead 100644
> --- a/gdb/s12z-tdep.c
> +++ b/gdb/s12z-tdep.c
> @@ -241,7 +241,7 @@ push_pull_get_stack_adjustment (int n_operands,
> /* Initialize a prologue cache. */
>
> static struct trad_frame_cache *
> -s12z_frame_cache (frame_info_ptr this_frame, void **prologue_cache)
> +s12z_frame_cache (frame_info *this_frame, void **prologue_cache)
> {
> struct trad_frame_cache *info;
>
> @@ -420,7 +420,7 @@ s12z_frame_cache (frame_info_ptr this_frame, void **prologue_cache)
>
> /* Implement the this_id function for the stub unwinder. */
> static void
> -s12z_frame_this_id (frame_info_ptr this_frame,
> +s12z_frame_this_id (frame_info *this_frame,
> void **prologue_cache, struct frame_id *this_id)
> {
> struct trad_frame_cache *info = s12z_frame_cache (this_frame,
> @@ -432,7 +432,7 @@ s12z_frame_this_id (frame_info_ptr this_frame,
>
> /* Implement the prev_register function for the stub unwinder. */
> static struct value *
> -s12z_frame_prev_register (frame_info_ptr this_frame,
> +s12z_frame_prev_register (frame_info *this_frame,
> void **prologue_cache, int regnum)
> {
> struct trad_frame_cache *info = s12z_frame_cache (this_frame,
> diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c
> index 14d71134e0cd..6ae946c5b394 100644
> --- a/gdb/s390-linux-tdep.c
> +++ b/gdb/s390-linux-tdep.c
> @@ -387,7 +387,7 @@ struct s390_sigtramp_unwind_cache {
> s390_sigtramp_frame_unwind. */
>
> static struct s390_sigtramp_unwind_cache *
> -s390_sigtramp_frame_unwind_cache (frame_info_ptr this_frame,
> +s390_sigtramp_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -497,7 +497,7 @@ s390_sigtramp_frame_unwind_cache (frame_info_ptr this_frame,
> /* Implement this_id frame_unwind method for s390_sigtramp_frame_unwind. */
>
> static void
> -s390_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +s390_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -509,7 +509,7 @@ s390_sigtramp_frame_this_id (frame_info_ptr this_frame,
> /* Implement prev_register frame_unwind method for sigtramp frames. */
>
> static struct value *
> -s390_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +s390_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct s390_sigtramp_unwind_cache *info
> @@ -521,7 +521,7 @@ s390_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> s390_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
> index d0dba7654bb6..f137eca52960 100644
> --- a/gdb/s390-tdep.c
> +++ b/gdb/s390-tdep.c
> @@ -1982,7 +1982,7 @@ s390_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
> breakpoint. */
>
> static struct frame_id
> -s390_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +s390_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> int word_size = gdbarch_ptr_bit (gdbarch) / 8;
> CORE_ADDR sp = get_frame_register_unsigned (this_frame, S390_SP_REGNUM);
> @@ -2166,7 +2166,7 @@ s390_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
> /* Implement unwind_pc gdbarch method. */
>
> static CORE_ADDR
> -s390_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +s390_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> s390_gdbarch_tdep *tdep = gdbarch_tdep<s390_gdbarch_tdep> (gdbarch);
> ULONGEST pc;
> @@ -2177,7 +2177,7 @@ s390_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> /* Implement unwind_sp gdbarch method. */
>
> static CORE_ADDR
> -s390_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +s390_unwind_sp (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> ULONGEST sp;
> sp = frame_unwind_register_unsigned (next_frame, S390_SP_REGNUM);
> @@ -2187,7 +2187,7 @@ s390_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> /* Helper routine to unwind pseudo registers. */
>
> static struct value *
> -s390_unwind_pseudo_register (frame_info_ptr this_frame, int regnum)
> +s390_unwind_pseudo_register (frame_info *this_frame, int regnum)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> s390_gdbarch_tdep *tdep = gdbarch_tdep<s390_gdbarch_tdep> (gdbarch);
> @@ -2258,7 +2258,7 @@ s390_adjust_frame_regnum (struct gdbarch *gdbarch, int num, int eh_frame_p)
> s390_dwarf2_frame_init_reg. */
>
> static struct value *
> -s390_dwarf2_prev_register (frame_info_ptr this_frame, void **this_cache,
> +s390_dwarf2_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> return s390_unwind_pseudo_register (this_frame, regnum);
> @@ -2269,7 +2269,7 @@ s390_dwarf2_prev_register (frame_info_ptr this_frame, void **this_cache,
> static void
> s390_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> /* The condition code (and thus PSW mask) is call-clobbered. */
> if (regnum == S390_PSWM_REGNUM)
> @@ -2303,7 +2303,7 @@ s390_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> register translation. */
>
> struct value *
> -s390_trad_frame_prev_register (frame_info_ptr this_frame,
> +s390_trad_frame_prev_register (frame_info *this_frame,
> trad_frame_saved_reg saved_regs[],
> int regnum)
> {
> @@ -2328,7 +2328,7 @@ struct s390_unwind_cache {
> prologue analysis. Helper for s390_frame_unwind_cache. */
>
> static int
> -s390_prologue_frame_unwind_cache (frame_info_ptr this_frame,
> +s390_prologue_frame_unwind_cache (frame_info *this_frame,
> struct s390_unwind_cache *info)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2344,7 +2344,6 @@ s390_prologue_frame_unwind_cache (frame_info_ptr this_frame,
> CORE_ADDR prev_sp;
> int frame_pointer;
> int size;
> - frame_info_ptr next_frame;
>
> /* Try to find the function start address. If we can't find it, we don't
> bother searching for it -- with modern compilers this would be mostly
> @@ -2381,7 +2380,7 @@ s390_prologue_frame_unwind_cache (frame_info_ptr this_frame,
> /* FIXME: cagney/2004-05-01: This sanity check shouldn't be
> needed, instead the code should simpliy rely on its
> analysis. */
> - next_frame = get_next_frame (this_frame);
> + frame_info *next_frame = get_next_frame (this_frame);
> while (next_frame && get_frame_type (next_frame) == INLINE_FRAME)
> next_frame = get_next_frame (next_frame);
> if (next_frame
> @@ -2429,7 +2428,7 @@ s390_prologue_frame_unwind_cache (frame_info_ptr this_frame,
> This can only happen in an innermost frame. */
> /* FIXME: cagney/2004-05-01: This sanity check shouldn't be needed,
> instead the code should simpliy rely on its analysis. */
> - next_frame = get_next_frame (this_frame);
> + frame_info *next_frame = get_next_frame (this_frame);
> while (next_frame && get_frame_type (next_frame) == INLINE_FRAME)
> next_frame = get_next_frame (next_frame);
> if (size > 0
> @@ -2515,7 +2514,7 @@ s390_prologue_frame_unwind_cache (frame_info_ptr this_frame,
> back chain unwinding. Helper for s390_frame_unwind_cache. */
>
> static void
> -s390_backchain_frame_unwind_cache (frame_info_ptr this_frame,
> +s390_backchain_frame_unwind_cache (frame_info *this_frame,
> struct s390_unwind_cache *info)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2572,7 +2571,7 @@ s390_backchain_frame_unwind_cache (frame_info_ptr this_frame,
> s390_frame_unwind and s390_frame_base. */
>
> static struct s390_unwind_cache *
> -s390_frame_unwind_cache (frame_info_ptr this_frame,
> +s390_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct s390_unwind_cache *info;
> @@ -2606,7 +2605,7 @@ s390_frame_unwind_cache (frame_info_ptr this_frame,
> /* Implement this_id frame_unwind method for s390_frame_unwind. */
>
> static void
> -s390_frame_this_id (frame_info_ptr this_frame,
> +s390_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -2626,7 +2625,7 @@ s390_frame_this_id (frame_info_ptr this_frame,
> /* Implement prev_register frame_unwind method for s390_frame_unwind. */
>
> static struct value *
> -s390_frame_prev_register (frame_info_ptr this_frame,
> +s390_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct s390_unwind_cache *info
> @@ -2661,7 +2660,7 @@ struct s390_stub_unwind_cache
> s390_stub_frame_unwind. */
>
> static struct s390_stub_unwind_cache *
> -s390_stub_frame_unwind_cache (frame_info_ptr this_frame,
> +s390_stub_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2689,7 +2688,7 @@ s390_stub_frame_unwind_cache (frame_info_ptr this_frame,
> /* Implement this_id frame_unwind method for s390_stub_frame_unwind. */
>
> static void
> -s390_stub_frame_this_id (frame_info_ptr this_frame,
> +s390_stub_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -2701,7 +2700,7 @@ s390_stub_frame_this_id (frame_info_ptr this_frame,
> /* Implement prev_register frame_unwind method for s390_stub_frame_unwind. */
>
> static struct value *
> -s390_stub_frame_prev_register (frame_info_ptr this_frame,
> +s390_stub_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct s390_stub_unwind_cache *info
> @@ -2713,7 +2712,7 @@ s390_stub_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> s390_stub_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> CORE_ADDR addr_in_block;
> @@ -2744,7 +2743,7 @@ static const struct frame_unwind s390_stub_frame_unwind = {
> /* Frame base handling. */
>
> static CORE_ADDR
> -s390_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +s390_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct s390_unwind_cache *info
> = s390_frame_unwind_cache (this_frame, this_cache);
> @@ -2752,7 +2751,7 @@ s390_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> }
>
> static CORE_ADDR
> -s390_local_base_address (frame_info_ptr this_frame, void **this_cache)
> +s390_local_base_address (frame_info *this_frame, void **this_cache)
> {
> struct s390_unwind_cache *info
> = s390_frame_unwind_cache (this_frame, this_cache);
> diff --git a/gdb/s390-tdep.h b/gdb/s390-tdep.h
> index f0f7019ac6af..d262bd4a9aa5 100644
> --- a/gdb/s390-tdep.h
> +++ b/gdb/s390-tdep.h
> @@ -314,7 +314,7 @@ enum
> /* Frame unwinding. */
>
> extern struct value *s390_trad_frame_prev_register
> - (frame_info_ptr this_frame, struct trad_frame_saved_reg saved_regs[],
> + (frame_info *this_frame, struct trad_frame_saved_reg saved_regs[],
> int regnum);
>
> extern const struct target_desc *tdesc_s390_linux32;
> diff --git a/gdb/sentinel-frame.c b/gdb/sentinel-frame.c
> index e1014fc0d7fb..cdf639107994 100644
> --- a/gdb/sentinel-frame.c
> +++ b/gdb/sentinel-frame.c
> @@ -42,7 +42,7 @@ sentinel_frame_cache (struct regcache *regcache)
> /* Here the register value is taken direct from the register cache. */
>
> static struct value *
> -sentinel_frame_prev_register (frame_info_ptr this_frame,
> +sentinel_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache,
> int regnum)
> {
> @@ -57,7 +57,7 @@ sentinel_frame_prev_register (frame_info_ptr this_frame,
> }
>
> static void
> -sentinel_frame_this_id (frame_info_ptr this_frame,
> +sentinel_frame_this_id (frame_info *this_frame,
> void **this_prologue_cache,
> struct frame_id *this_id)
> {
> @@ -68,7 +68,7 @@ sentinel_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct gdbarch *
> -sentinel_frame_prev_arch (frame_info_ptr this_frame,
> +sentinel_frame_prev_arch (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct frame_unwind_cache *cache
> diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c
> index 9802fd44a203..939c138fc719 100644
> --- a/gdb/sh-linux-tdep.c
> +++ b/gdb/sh-linux-tdep.c
> @@ -77,7 +77,7 @@ static const struct sh_corefile_regmap fpregs_table[] =
> /* SH signal handler frame support. */
>
> static void
> -sh_linux_sigtramp_cache (frame_info_ptr this_frame,
> +sh_linux_sigtramp_cache (frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func, int regs_offset)
> {
> @@ -114,7 +114,7 @@ sh_linux_sigtramp_cache (frame_info_ptr this_frame,
>
> static void
> sh_linux_sigreturn_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> @@ -125,7 +125,7 @@ sh_linux_sigreturn_init (const struct tramp_frame *self,
>
> static void
> sh_linux_rt_sigreturn_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
> index a2e91483229e..10b5e7a67512 100644
> --- a/gdb/sh-tdep.c
> +++ b/gdb/sh-tdep.c
> @@ -1752,7 +1752,7 @@ sh_sh2a_register_sim_regno (struct gdbarch *gdbarch, int nr)
> static void
> sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> /* Mark the PC as the destination for the return address. */
> if (regnum == gdbarch_pc_regnum (gdbarch))
> @@ -1822,7 +1822,7 @@ sh_alloc_frame_cache (void)
> }
>
> static struct sh_frame_cache *
> -sh_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +sh_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct sh_frame_cache *cache;
> @@ -1889,7 +1889,7 @@ sh_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static struct value *
> -sh_frame_prev_register (frame_info_ptr this_frame,
> +sh_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -1914,7 +1914,7 @@ sh_frame_prev_register (frame_info_ptr this_frame,
> }
>
> static void
> -sh_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +sh_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache);
> @@ -1937,7 +1937,7 @@ static const struct frame_unwind sh_frame_unwind = {
> };
>
> static CORE_ADDR
> -sh_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +sh_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache);
>
> @@ -1952,7 +1952,7 @@ static const struct frame_base sh_frame_base = {
> };
>
> static struct sh_frame_cache *
> -sh_make_stub_cache (frame_info_ptr this_frame)
> +sh_make_stub_cache (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct sh_frame_cache *cache;
> @@ -1966,7 +1966,7 @@ sh_make_stub_cache (frame_info_ptr this_frame)
> }
>
> static void
> -sh_stub_this_id (frame_info_ptr this_frame, void **this_cache,
> +sh_stub_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct sh_frame_cache *cache;
> @@ -1980,7 +1980,7 @@ sh_stub_this_id (frame_info_ptr this_frame, void **this_cache,
>
> static int
> sh_stub_unwind_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> CORE_ADDR addr_in_block;
> diff --git a/gdb/sol2-tdep.c b/gdb/sol2-tdep.c
> index 2cc2407656d8..31da9f3988d2 100644
> --- a/gdb/sol2-tdep.c
> +++ b/gdb/sol2-tdep.c
> @@ -52,7 +52,7 @@ sol2_pc_in_sigtramp (CORE_ADDR pc, const char *name)
> /* Return whether THIS_FRAME corresponds to a Solaris sigtramp routine. */
>
> int
> -sol2_sigtramp_p (frame_info_ptr this_frame)
> +sol2_sigtramp_p (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> const char *name;
> diff --git a/gdb/sol2-tdep.h b/gdb/sol2-tdep.h
> index cd3bdc1f343e..7965ccf7e8e0 100644
> --- a/gdb/sol2-tdep.h
> +++ b/gdb/sol2-tdep.h
> @@ -22,7 +22,7 @@
>
> struct gdbarch;
>
> -int sol2_sigtramp_p (frame_info_ptr this_frame);
> +int sol2_sigtramp_p (frame_info *this_frame);
>
> void sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch);
>
> diff --git a/gdb/sparc-linux-tdep.c b/gdb/sparc-linux-tdep.c
> index cd8c35ed5daa..7081325dc879 100644
> --- a/gdb/sparc-linux-tdep.c
> +++ b/gdb/sparc-linux-tdep.c
> @@ -42,7 +42,7 @@
> /* Signal trampoline support. */
>
> static void sparc32_linux_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func);
>
> @@ -117,7 +117,7 @@ enum
>
> static void
> sparc32_linux_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/sparc-netbsd-tdep.c b/gdb/sparc-netbsd-tdep.c
> index 479ec13aedaf..6ba3c6851f01 100644
> --- a/gdb/sparc-netbsd-tdep.c
> +++ b/gdb/sparc-netbsd-tdep.c
> @@ -95,7 +95,7 @@ sparc32nbsd_pc_in_sigtramp (CORE_ADDR pc, const char *name)
> }
>
> trad_frame_saved_reg *
> -sparc32nbsd_sigcontext_saved_regs (frame_info_ptr this_frame)
> +sparc32nbsd_sigcontext_saved_regs (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> trad_frame_saved_reg *saved_regs;
> @@ -180,7 +180,7 @@ sparc32nbsd_sigcontext_saved_regs (frame_info_ptr this_frame)
> }
>
> static struct sparc_frame_cache *
> -sparc32nbsd_sigcontext_frame_cache (frame_info_ptr this_frame,
> +sparc32nbsd_sigcontext_frame_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct sparc_frame_cache *cache;
> @@ -211,7 +211,7 @@ sparc32nbsd_sigcontext_frame_cache (frame_info_ptr this_frame,
> }
>
> static void
> -sparc32nbsd_sigcontext_frame_this_id (frame_info_ptr this_frame,
> +sparc32nbsd_sigcontext_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -222,7 +222,7 @@ sparc32nbsd_sigcontext_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -sparc32nbsd_sigcontext_frame_prev_register (frame_info_ptr this_frame,
> +sparc32nbsd_sigcontext_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct sparc_frame_cache *cache =
> @@ -233,7 +233,7 @@ sparc32nbsd_sigcontext_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> sparc32nbsd_sigcontext_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> diff --git a/gdb/sparc-obsd-tdep.c b/gdb/sparc-obsd-tdep.c
> index 57457dfa1153..44b36c0aa7ae 100644
> --- a/gdb/sparc-obsd-tdep.c
> +++ b/gdb/sparc-obsd-tdep.c
> @@ -68,7 +68,7 @@ sparc32obsd_pc_in_sigtramp (CORE_ADDR pc, const char *name)
> }
>
> static struct sparc_frame_cache *
> -sparc32obsd_sigtramp_frame_cache (frame_info_ptr this_frame,
> +sparc32obsd_sigtramp_frame_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct sparc_frame_cache *cache;
> @@ -100,7 +100,7 @@ sparc32obsd_sigtramp_frame_cache (frame_info_ptr this_frame,
> }
>
> static void
> -sparc32obsd_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +sparc32obsd_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -111,7 +111,7 @@ sparc32obsd_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -sparc32obsd_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +sparc32obsd_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct sparc_frame_cache *cache =
> @@ -122,7 +122,7 @@ sparc32obsd_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> sparc32obsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> diff --git a/gdb/sparc-sol2-tdep.c b/gdb/sparc-sol2-tdep.c
> index 8b862c4dea4c..344d790dbd4a 100644
> --- a/gdb/sparc-sol2-tdep.c
> +++ b/gdb/sparc-sol2-tdep.c
> @@ -100,7 +100,7 @@ static const struct regset sparc32_sol2_fpregset =
> \f
>
> static struct sparc_frame_cache *
> -sparc32_sol2_sigtramp_frame_cache (frame_info_ptr this_frame,
> +sparc32_sol2_sigtramp_frame_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct sparc_frame_cache *cache;
> @@ -151,7 +151,7 @@ sparc32_sol2_sigtramp_frame_cache (frame_info_ptr this_frame,
> }
>
> static void
> -sparc32_sol2_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +sparc32_sol2_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -162,7 +162,7 @@ sparc32_sol2_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -sparc32_sol2_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +sparc32_sol2_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache,
> int regnum)
> {
> @@ -174,7 +174,7 @@ sparc32_sol2_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> sparc32_sol2_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> return sol2_sigtramp_p (this_frame);
> diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c
> index 49c055e43cb5..af3157ec1f78 100644
> --- a/gdb/sparc-tdep.c
> +++ b/gdb/sparc-tdep.c
> @@ -1182,7 +1182,7 @@ sparc32_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
> /* Normal frames. */
>
> struct sparc_frame_cache *
> -sparc_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +sparc_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct sparc_frame_cache *cache;
>
> @@ -1239,7 +1239,7 @@ sparc32_struct_return_from_sym (struct symbol *sym)
> }
>
> struct sparc_frame_cache *
> -sparc32_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +sparc32_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct sparc_frame_cache *cache;
> struct symbol *sym;
> @@ -1275,7 +1275,7 @@ sparc32_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -sparc32_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +sparc32_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct sparc_frame_cache *cache =
> @@ -1289,7 +1289,7 @@ sparc32_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -sparc32_frame_prev_register (frame_info_ptr this_frame,
> +sparc32_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -1359,7 +1359,7 @@ static const struct frame_unwind sparc32_frame_unwind =
> \f
>
> static CORE_ADDR
> -sparc32_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +sparc32_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct sparc_frame_cache *cache =
> sparc32_frame_cache (this_frame, this_cache);
> @@ -1376,7 +1376,7 @@ static const struct frame_base sparc32_frame_base =
> };
>
> static struct frame_id
> -sparc_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +sparc_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> CORE_ADDR sp;
>
> @@ -1545,7 +1545,7 @@ sparc32_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
> }
>
> static int
> -sparc32_dwarf2_struct_return_p (frame_info_ptr this_frame)
> +sparc32_dwarf2_struct_return_p (frame_info *this_frame)
> {
> CORE_ADDR pc = get_frame_address_in_block (this_frame);
> struct symbol *sym = find_pc_function (pc);
> @@ -1558,7 +1558,7 @@ sparc32_dwarf2_struct_return_p (frame_info_ptr this_frame)
> static void
> sparc32_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> int off;
>
> diff --git a/gdb/sparc-tdep.h b/gdb/sparc-tdep.h
> index ffdf0a46e17e..d2b66acad535 100644
> --- a/gdb/sparc-tdep.h
> +++ b/gdb/sparc-tdep.h
> @@ -207,10 +207,10 @@ extern CORE_ADDR sparc_analyze_prologue (struct gdbarch *gdbarch,
> struct sparc_frame_cache *cache);
>
> extern struct sparc_frame_cache *
> - sparc_frame_cache (frame_info_ptr this_frame, void **this_cache);
> + sparc_frame_cache (frame_info *this_frame, void **this_cache);
>
> extern struct sparc_frame_cache *
> - sparc32_frame_cache (frame_info_ptr this_frame, void **this_cache);
> + sparc32_frame_cache (frame_info *this_frame, void **this_cache);
>
> extern int
> sparc_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc);
> @@ -262,6 +262,6 @@ extern void sparc32nbsd_init_abi (struct gdbarch_info info,
> struct gdbarch *gdbarch);
>
> extern struct trad_frame_saved_reg *
> - sparc32nbsd_sigcontext_saved_regs (frame_info_ptr next_frame);
> + sparc32nbsd_sigcontext_saved_regs (frame_info *next_frame);
>
> #endif /* sparc-tdep.h */
> diff --git a/gdb/sparc64-fbsd-tdep.c b/gdb/sparc64-fbsd-tdep.c
> index a13407a5e3b6..6c10646b040b 100644
> --- a/gdb/sparc64-fbsd-tdep.c
> +++ b/gdb/sparc64-fbsd-tdep.c
> @@ -89,7 +89,7 @@ sparc64fbsd_pc_in_sigtramp (CORE_ADDR pc, const char *name)
> }
>
> static struct sparc_frame_cache *
> -sparc64fbsd_sigtramp_frame_cache (frame_info_ptr this_frame,
> +sparc64fbsd_sigtramp_frame_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct sparc_frame_cache *cache;
> @@ -162,7 +162,7 @@ sparc64fbsd_sigtramp_frame_cache (frame_info_ptr this_frame,
> }
>
> static void
> -sparc64fbsd_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +sparc64fbsd_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -173,7 +173,7 @@ sparc64fbsd_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -sparc64fbsd_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +sparc64fbsd_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct sparc_frame_cache *cache =
> @@ -184,7 +184,7 @@ sparc64fbsd_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> sparc64fbsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> diff --git a/gdb/sparc64-linux-tdep.c b/gdb/sparc64-linux-tdep.c
> index fc8bd065c4cd..4afb40c7fac1 100644
> --- a/gdb/sparc64-linux-tdep.c
> +++ b/gdb/sparc64-linux-tdep.c
> @@ -52,7 +52,7 @@
> /* Signal trampoline support. */
>
> static void sparc64_linux_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func);
>
> @@ -73,7 +73,7 @@ static const struct tramp_frame sparc64_linux_rt_sigframe =
>
> static void
> sparc64_linux_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/sparc64-netbsd-tdep.c b/gdb/sparc64-netbsd-tdep.c
> index fb15877ccf52..fdf4a48df814 100644
> --- a/gdb/sparc64-netbsd-tdep.c
> +++ b/gdb/sparc64-netbsd-tdep.c
> @@ -86,7 +86,7 @@ sparc64nbsd_pc_in_sigtramp (CORE_ADDR pc, const char *name)
>
> trad_frame_saved_reg *
> sparc64nbsd_sigcontext_saved_regs (CORE_ADDR sigcontext_addr,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> trad_frame_saved_reg *saved_regs;
> @@ -149,7 +149,7 @@ sparc64nbsd_sigcontext_saved_regs (CORE_ADDR sigcontext_addr,
> }
>
> static struct sparc_frame_cache *
> -sparc64nbsd_sigcontext_frame_cache (frame_info_ptr this_frame,
> +sparc64nbsd_sigcontext_frame_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct sparc_frame_cache *cache;
> @@ -185,7 +185,7 @@ sparc64nbsd_sigcontext_frame_cache (frame_info_ptr this_frame,
> }
>
> static void
> -sparc64nbsd_sigcontext_frame_this_id (frame_info_ptr this_frame,
> +sparc64nbsd_sigcontext_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -196,7 +196,7 @@ sparc64nbsd_sigcontext_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -sparc64nbsd_sigcontext_frame_prev_register (frame_info_ptr this_frame,
> +sparc64nbsd_sigcontext_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct sparc_frame_cache *cache =
> @@ -207,7 +207,7 @@ sparc64nbsd_sigcontext_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> sparc64nbsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> diff --git a/gdb/sparc64-obsd-tdep.c b/gdb/sparc64-obsd-tdep.c
> index 1b887df89b2a..16dfdba41786 100644
> --- a/gdb/sparc64-obsd-tdep.c
> +++ b/gdb/sparc64-obsd-tdep.c
> @@ -150,7 +150,7 @@ sparc64obsd_pc_in_sigtramp (CORE_ADDR pc, const char *name)
> }
>
> static struct sparc_frame_cache *
> -sparc64obsd_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +sparc64obsd_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct sparc_frame_cache *cache;
> CORE_ADDR addr;
> @@ -186,7 +186,7 @@ sparc64obsd_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -sparc64obsd_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +sparc64obsd_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct sparc_frame_cache *cache =
> @@ -196,7 +196,7 @@ sparc64obsd_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -sparc64obsd_frame_prev_register (frame_info_ptr this_frame,
> +sparc64obsd_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct sparc_frame_cache *cache =
> @@ -207,7 +207,7 @@ sparc64obsd_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> sparc64obsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> CORE_ADDR pc = get_frame_pc (this_frame);
> @@ -234,7 +234,7 @@ static const struct frame_unwind sparc64obsd_frame_unwind =
> /* Kernel debugging support. */
>
> static struct sparc_frame_cache *
> -sparc64obsd_trapframe_cache (frame_info_ptr this_frame, void **this_cache)
> +sparc64obsd_trapframe_cache (frame_info *this_frame, void **this_cache)
> {
> struct sparc_frame_cache *cache;
> CORE_ADDR sp, trapframe_addr;
> @@ -263,7 +263,7 @@ sparc64obsd_trapframe_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -sparc64obsd_trapframe_this_id (frame_info_ptr this_frame,
> +sparc64obsd_trapframe_this_id (frame_info *this_frame,
> void **this_cache, struct frame_id *this_id)
> {
> struct sparc_frame_cache *cache =
> @@ -273,7 +273,7 @@ sparc64obsd_trapframe_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -sparc64obsd_trapframe_prev_register (frame_info_ptr this_frame,
> +sparc64obsd_trapframe_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct sparc_frame_cache *cache =
> @@ -284,7 +284,7 @@ sparc64obsd_trapframe_prev_register (frame_info_ptr this_frame,
>
> static int
> sparc64obsd_trapframe_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> CORE_ADDR pc;
> diff --git a/gdb/sparc64-sol2-tdep.c b/gdb/sparc64-sol2-tdep.c
> index 3d52d8caa350..11d777631740 100644
> --- a/gdb/sparc64-sol2-tdep.c
> +++ b/gdb/sparc64-sol2-tdep.c
> @@ -99,7 +99,7 @@ static const struct regset sparc64_sol2_fpregset =
> \f
>
> static struct sparc_frame_cache *
> -sparc64_sol2_sigtramp_frame_cache (frame_info_ptr this_frame,
> +sparc64_sol2_sigtramp_frame_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct sparc_frame_cache *cache;
> @@ -154,7 +154,7 @@ sparc64_sol2_sigtramp_frame_cache (frame_info_ptr this_frame,
> }
>
> static void
> -sparc64_sol2_sigtramp_frame_this_id (frame_info_ptr this_frame,
> +sparc64_sol2_sigtramp_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -165,7 +165,7 @@ sparc64_sol2_sigtramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -sparc64_sol2_sigtramp_frame_prev_register (frame_info_ptr this_frame,
> +sparc64_sol2_sigtramp_frame_prev_register (frame_info *this_frame,
> void **this_cache,
> int regnum)
> {
> @@ -177,7 +177,7 @@ sparc64_sol2_sigtramp_frame_prev_register (frame_info_ptr this_frame,
>
> static int
> sparc64_sol2_sigtramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> return sol2_sigtramp_p (this_frame);
> diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c
> index b1368c7fc548..7bbfa32daa30 100644
> --- a/gdb/sparc64-tdep.c
> +++ b/gdb/sparc64-tdep.c
> @@ -1061,13 +1061,13 @@ sparc64_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
> /* Normal frames. */
>
> static struct sparc_frame_cache *
> -sparc64_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +sparc64_frame_cache (frame_info *this_frame, void **this_cache)
> {
> return sparc_frame_cache (this_frame, this_cache);
> }
>
> static void
> -sparc64_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +sparc64_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct sparc_frame_cache *cache =
> @@ -1081,7 +1081,7 @@ sparc64_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -sparc64_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +sparc64_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -1145,7 +1145,7 @@ static const struct frame_unwind sparc64_frame_unwind =
> \f
>
> static CORE_ADDR
> -sparc64_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +sparc64_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct sparc_frame_cache *cache =
> sparc64_frame_cache (this_frame, this_cache);
> @@ -1764,7 +1764,7 @@ sparc64_return_value (struct gdbarch *gdbarch, struct value *function,
> static void
> sparc64_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> switch (regnum)
> {
> diff --git a/gdb/sparc64-tdep.h b/gdb/sparc64-tdep.h
> index 3fcfc394edc5..e23094b40e02 100644
> --- a/gdb/sparc64-tdep.h
> +++ b/gdb/sparc64-tdep.h
> @@ -20,7 +20,6 @@
> #ifndef SPARC64_TDEP_H
> #define SPARC64_TDEP_H 1
>
> -class frame_info_ptr;
> struct gdbarch;
> struct regcache;
> struct sparc_gregmap;
> @@ -131,7 +130,7 @@ extern const struct sparc_gregmap sparc64nbsd_gregmap;
>
> extern struct trad_frame_saved_reg *
> sparc64nbsd_sigcontext_saved_regs (CORE_ADDR sigcontext_addr,
> - frame_info_ptr next_frame);
> + frame_info *next_frame);
>
> extern const struct sparc_fpregmap sparc64_bsd_fpregmap;
>
> diff --git a/gdb/std-regs.c b/gdb/std-regs.c
> index 5b880a49b169..110732e098a8 100644
> --- a/gdb/std-regs.c
> +++ b/gdb/std-regs.c
> @@ -27,7 +27,7 @@
> #include "gdbarch.h"
>
> static struct value *
> -value_of_builtin_frame_fp_reg (frame_info_ptr frame, const void *baton)
> +value_of_builtin_frame_fp_reg (frame_info *frame, const void *baton)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
>
> @@ -53,7 +53,7 @@ value_of_builtin_frame_fp_reg (frame_info_ptr frame, const void *baton)
> }
>
> static struct value *
> -value_of_builtin_frame_pc_reg (frame_info_ptr frame, const void *baton)
> +value_of_builtin_frame_pc_reg (frame_info *frame, const void *baton)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
>
> @@ -72,7 +72,7 @@ value_of_builtin_frame_pc_reg (frame_info_ptr frame, const void *baton)
> }
>
> static struct value *
> -value_of_builtin_frame_sp_reg (frame_info_ptr frame, const void *baton)
> +value_of_builtin_frame_sp_reg (frame_info *frame, const void *baton)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
>
> @@ -82,7 +82,7 @@ value_of_builtin_frame_sp_reg (frame_info_ptr frame, const void *baton)
> }
>
> static struct value *
> -value_of_builtin_frame_ps_reg (frame_info_ptr frame, const void *baton)
> +value_of_builtin_frame_ps_reg (frame_info *frame, const void *baton)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
>
> diff --git a/gdb/symfile.h b/gdb/symfile.h
> index ffd1acddfdb2..36f69468367e 100644
> --- a/gdb/symfile.h
> +++ b/gdb/symfile.h
> @@ -37,7 +37,6 @@ struct obj_section;
> struct obstack;
> struct block;
> struct value;
> -class frame_info_ptr;
> struct agent_expr;
> struct axs_value;
> class probe;
> diff --git a/gdb/tic6x-linux-tdep.c b/gdb/tic6x-linux-tdep.c
> index d8309f74e7c4..905c31757769 100644
> --- a/gdb/tic6x-linux-tdep.c
> +++ b/gdb/tic6x-linux-tdep.c
> @@ -79,7 +79,7 @@ tic6x_register_sigcontext_offset (unsigned int regnum, struct gdbarch *gdbarch)
>
> static void
> tic6x_linux_rt_sigreturn_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c
> index 054f0e6f3b2b..775ff322863a 100644
> --- a/gdb/tic6x-tdep.c
> +++ b/gdb/tic6x-tdep.c
> @@ -142,7 +142,7 @@ static CORE_ADDR
> tic6x_analyze_prologue (struct gdbarch *gdbarch, const CORE_ADDR start_pc,
> const CORE_ADDR current_pc,
> struct tic6x_unwind_cache *cache,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> unsigned int src_reg, base_reg, dst_reg;
> int i;
> @@ -340,7 +340,7 @@ tic6x_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
> static void
> tic6x_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> struct dwarf2_frame_state_reg *reg,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> /* Mark the PC as the destination for the return address. */
> if (regnum == gdbarch_pc_regnum (gdbarch))
> @@ -365,7 +365,7 @@ tic6x_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> /* This is the implementation of gdbarch method unwind_pc. */
>
> static CORE_ADDR
> -tic6x_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +tic6x_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> gdb_byte buf[8];
>
> @@ -376,7 +376,7 @@ tic6x_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> /* Frame base handling. */
>
> static struct tic6x_unwind_cache*
> -tic6x_frame_unwind_cache (frame_info_ptr this_frame,
> +tic6x_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -404,7 +404,7 @@ tic6x_frame_unwind_cache (frame_info_ptr this_frame,
> }
>
> static void
> -tic6x_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +tic6x_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct tic6x_unwind_cache *cache =
> @@ -418,7 +418,7 @@ tic6x_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -tic6x_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> +tic6x_frame_prev_register (frame_info *this_frame, void **this_cache,
> int regnum)
> {
> struct tic6x_unwind_cache *cache =
> @@ -445,7 +445,7 @@ tic6x_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
> }
>
> static CORE_ADDR
> -tic6x_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +tic6x_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct tic6x_unwind_cache *info
> = tic6x_frame_unwind_cache (this_frame, this_cache);
> @@ -473,7 +473,7 @@ static const struct frame_base tic6x_frame_base =
>
>
> static struct tic6x_unwind_cache *
> -tic6x_make_stub_cache (frame_info_ptr this_frame)
> +tic6x_make_stub_cache (frame_info *this_frame)
> {
> struct tic6x_unwind_cache *cache;
>
> @@ -489,7 +489,7 @@ tic6x_make_stub_cache (frame_info_ptr this_frame)
> }
>
> static void
> -tic6x_stub_this_id (frame_info_ptr this_frame, void **this_cache,
> +tic6x_stub_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct tic6x_unwind_cache *cache;
> @@ -503,7 +503,7 @@ tic6x_stub_this_id (frame_info_ptr this_frame, void **this_cache,
>
> static int
> tic6x_stub_unwind_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_prologue_cache)
> {
> CORE_ADDR addr_in_block;
> diff --git a/gdb/tilegx-linux-tdep.c b/gdb/tilegx-linux-tdep.c
> index ef38436801fb..7006fead5918 100644
> --- a/gdb/tilegx-linux-tdep.c
> +++ b/gdb/tilegx-linux-tdep.c
> @@ -34,7 +34,7 @@
>
> static void
> tilegx_linux_sigframe_init (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func)
> {
> diff --git a/gdb/tilegx-tdep.c b/gdb/tilegx-tdep.c
> index ecd27b8b33d8..22bab2affe43 100644
> --- a/gdb/tilegx-tdep.c
> +++ b/gdb/tilegx-tdep.c
> @@ -362,7 +362,7 @@ static CORE_ADDR
> tilegx_analyze_prologue (struct gdbarch* gdbarch,
> CORE_ADDR start_addr, CORE_ADDR end_addr,
> struct tilegx_frame_cache *cache,
> - frame_info_ptr next_frame)
> + frame_info *next_frame)
> {
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> CORE_ADDR next_addr;
> @@ -833,7 +833,7 @@ typedef BP_MANIPULATION (tilegx_break_insn) tilegx_breakpoint;
> /* Normal frames. */
>
> static struct tilegx_frame_cache *
> -tilegx_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +tilegx_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct tilegx_frame_cache *cache;
> @@ -864,7 +864,7 @@ tilegx_frame_cache (frame_info_ptr this_frame, void **this_cache)
> /* Retrieve the value of REGNUM in FRAME. */
>
> static struct value*
> -tilegx_frame_prev_register (frame_info_ptr this_frame,
> +tilegx_frame_prev_register (frame_info *this_frame,
> void **this_cache,
> int regnum)
> {
> @@ -878,7 +878,7 @@ tilegx_frame_prev_register (frame_info_ptr this_frame,
> /* Build frame id. */
>
> static void
> -tilegx_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +tilegx_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct tilegx_frame_cache *info =
> @@ -892,7 +892,7 @@ tilegx_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static CORE_ADDR
> -tilegx_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +tilegx_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct tilegx_frame_cache *cache =
> tilegx_frame_cache (this_frame, this_cache);
> diff --git a/gdb/trad-frame.c b/gdb/trad-frame.c
> index 82d910942e6c..9019304b4823 100644
> --- a/gdb/trad-frame.c
> +++ b/gdb/trad-frame.c
> @@ -29,14 +29,14 @@
>
> struct trad_frame_cache
> {
> - frame_info_ptr this_frame;
> + frame_info *this_frame;
> CORE_ADDR this_base;
> trad_frame_saved_reg *prev_regs;
> struct frame_id this_id;
> };
>
> struct trad_frame_cache *
> -trad_frame_cache_zalloc (frame_info_ptr this_frame)
> +trad_frame_cache_zalloc (frame_info *this_frame)
> {
> struct trad_frame_cache *this_trad_cache;
>
> @@ -83,7 +83,7 @@ trad_frame_alloc_saved_regs (struct gdbarch *gdbarch)
> for all potential instruction sequences). */
>
> trad_frame_saved_reg *
> -trad_frame_alloc_saved_regs (frame_info_ptr this_frame)
> +trad_frame_alloc_saved_regs (frame_info *this_frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
>
> @@ -184,7 +184,7 @@ trad_frame_set_reg_value_bytes (struct trad_frame_cache *this_trad_cache,
>
>
> struct value *
> -trad_frame_get_prev_register (frame_info_ptr this_frame,
> +trad_frame_get_prev_register (frame_info *this_frame,
> trad_frame_saved_reg this_saved_regs[],
> int regnum)
> {
> @@ -209,7 +209,7 @@ trad_frame_get_prev_register (frame_info_ptr this_frame,
>
> struct value *
> trad_frame_get_register (struct trad_frame_cache *this_trad_cache,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> int regnum)
> {
> return trad_frame_get_prev_register (this_frame, this_trad_cache->prev_regs,
> diff --git a/gdb/trad-frame.h b/gdb/trad-frame.h
> index e193eb594e2d..c4f87a01c955 100644
> --- a/gdb/trad-frame.h
> +++ b/gdb/trad-frame.h
> @@ -22,7 +22,6 @@
>
> #include "frame.h" /* For "struct frame_id". */
>
> -class frame_info_ptr;
> struct regcache_map_entry;
> struct trad_frame_cache;
>
> @@ -31,7 +30,7 @@ struct trad_frame_cache;
> The entire cache is populated in a single pass and then generic
> routines are used to extract the various cache values. */
>
> -struct trad_frame_cache *trad_frame_cache_zalloc (frame_info_ptr);
> +struct trad_frame_cache *trad_frame_cache_zalloc (frame_info *this_frame);
>
> /* This frame's ID. */
> void trad_frame_set_id (struct trad_frame_cache *this_trad_cache,
> @@ -59,7 +58,7 @@ void trad_frame_set_reg_value_bytes (struct trad_frame_cache *this_trad_cache,
> gdb::array_view<const gdb_byte> bytes);
>
> struct value *trad_frame_get_register (struct trad_frame_cache *this_trad_cache,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> int regnum);
>
> /* Describes the kind of encoding a stored register has. */
> @@ -194,12 +193,12 @@ void trad_frame_reset_saved_regs (struct gdbarch *gdbarch,
> trad_frame_saved_reg *regs);
>
> /* Return a freshly allocated (and initialized) trad_frame array. */
> -trad_frame_saved_reg *trad_frame_alloc_saved_regs (frame_info_ptr);
> +trad_frame_saved_reg *trad_frame_alloc_saved_regs (frame_info *);
> trad_frame_saved_reg *trad_frame_alloc_saved_regs (struct gdbarch *);
>
> /* Given the trad_frame info, return the location of the specified
> register. */
> -struct value *trad_frame_get_prev_register (frame_info_ptr this_frame,
> +struct value *trad_frame_get_prev_register (frame_info *this_frame,
> trad_frame_saved_reg this_saved_regs[],
> int regnum);
>
> diff --git a/gdb/tramp-frame.c b/gdb/tramp-frame.c
> index f5926dc1ee73..32d2153b8601 100644
> --- a/gdb/tramp-frame.c
> +++ b/gdb/tramp-frame.c
> @@ -40,7 +40,7 @@ struct tramp_frame_cache
> };
>
> static struct trad_frame_cache *
> -tramp_frame_cache (frame_info_ptr this_frame,
> +tramp_frame_cache (frame_info *this_frame,
> void **this_cache)
> {
> struct tramp_frame_cache *tramp_cache
> @@ -58,7 +58,7 @@ tramp_frame_cache (frame_info_ptr this_frame,
> }
>
> static void
> -tramp_frame_this_id (frame_info_ptr this_frame,
> +tramp_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -69,7 +69,7 @@ tramp_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -tramp_frame_prev_register (frame_info_ptr this_frame,
> +tramp_frame_prev_register (frame_info *this_frame,
> void **this_cache,
> int prev_regnum)
> {
> @@ -81,7 +81,7 @@ tramp_frame_prev_register (frame_info_ptr this_frame,
>
> static CORE_ADDR
> tramp_frame_start (const struct tramp_frame *tramp,
> - frame_info_ptr this_frame, CORE_ADDR pc)
> + frame_info *this_frame, CORE_ADDR pc)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> @@ -121,7 +121,7 @@ tramp_frame_start (const struct tramp_frame *tramp,
>
> static int
> tramp_frame_sniffer (const struct frame_unwind *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> void **this_cache)
> {
> const struct tramp_frame *tramp = self->unwind_data->tramp_frame;
> diff --git a/gdb/tramp-frame.h b/gdb/tramp-frame.h
> index 4e7dcb68eaab..e9dea2a3f3c3 100644
> --- a/gdb/tramp-frame.h
> +++ b/gdb/tramp-frame.h
> @@ -23,7 +23,6 @@
> #include "frame.h" /* For "enum frame_type". */
>
> struct trad_frame;
> -class frame_info_ptr;
> struct trad_frame_cache;
>
> /* A trampoline consists of a small sequence of instructions placed at
> @@ -66,7 +65,7 @@ struct tramp_frame
> /* Initialize a trad-frame cache corresponding to the tramp-frame.
> FUNC is the address of the instruction TRAMP[0] in memory. */
> void (*init) (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> struct trad_frame_cache *this_cache,
> CORE_ADDR func);
> /* Return non-zero if the tramp-frame is valid for the PC requested.
> @@ -74,7 +73,7 @@ struct tramp_frame
> sequence against if required. If this is NULL, then the tramp-frame
> is valid for any PC. */
> int (*validate) (const struct tramp_frame *self,
> - frame_info_ptr this_frame,
> + frame_info *this_frame,
> CORE_ADDR *pc);
> };
>
> diff --git a/gdb/user-regs.c b/gdb/user-regs.c
> index e699045e1a0d..af246c2db977 100644
> --- a/gdb/user-regs.c
> +++ b/gdb/user-regs.c
> @@ -44,7 +44,7 @@ struct user_reg
> /* Avoid the "read" symbol name as it conflicts with a preprocessor symbol
> in the NetBSD header for Stack Smashing Protection, that wraps the read(2)
> syscall. */
> - struct value *(*xread) (frame_info_ptr frame, const void *baton);
> + struct value *(*xread) (frame_info *frame, const void *baton);
> const void *baton;
> struct user_reg *next;
> };
> @@ -203,7 +203,7 @@ user_reg_map_regnum_to_name (struct gdbarch *gdbarch, int regnum)
> }
>
> struct value *
> -value_of_user_reg (int regnum, frame_info_ptr frame)
> +value_of_user_reg (int regnum, frame_info *frame)
> {
> struct gdbarch *gdbarch = get_frame_arch (frame);
> int maxregs = gdbarch_num_cooked_regs (gdbarch);
> diff --git a/gdb/user-regs.h b/gdb/user-regs.h
> index 10eaf59e1971..7f68dd2631f2 100644
> --- a/gdb/user-regs.h
> +++ b/gdb/user-regs.h
> @@ -38,7 +38,9 @@
> of assumed to be read-only. Should it, for instance, return a
> register descriptor that contains all the relevant access methods. */
>
> -class frame_info_ptr;
> +#include "frame-info.h"
> +
> +struct frame_info;
> struct gdbarch;
>
> /* Given an architecture, map a user visible register name onto its
> @@ -56,9 +58,17 @@ extern const char *user_reg_map_regnum_to_name (struct gdbarch *gdbarch,
> bytes as, at the time the register is being added, the type needed
> to describe the register has not bee initialized. */
>
> -typedef struct value *(user_reg_read_ftype) (frame_info_ptr frame,
> +typedef struct value *(user_reg_read_ftype) (frame_info *frame,
> const void *baton);
> -extern struct value *value_of_user_reg (int regnum, frame_info_ptr frame);
> +extern struct value *value_of_user_reg (int regnum, frame_info *frame);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline value *
> +value_of_user_reg (int regnum, frame_info_ptr frame)
> +{
> + return value_of_user_reg (regnum, frame.get ());
> +}
>
> /* Add a builtin register (present in all architectures). */
> extern void user_reg_add_builtin (const char *name,
> diff --git a/gdb/v850-tdep.c b/gdb/v850-tdep.c
> index a40e9abf077d..d790202306e5 100644
> --- a/gdb/v850-tdep.c
> +++ b/gdb/v850-tdep.c
> @@ -1212,7 +1212,7 @@ v850_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
> }
>
> static struct v850_frame_cache *
> -v850_alloc_frame_cache (frame_info_ptr this_frame)
> +v850_alloc_frame_cache (frame_info *this_frame)
> {
> struct v850_frame_cache *cache;
>
> @@ -1231,7 +1231,7 @@ v850_alloc_frame_cache (frame_info_ptr this_frame)
> }
>
> static struct v850_frame_cache *
> -v850_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +v850_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct v850_frame_cache *cache;
> @@ -1297,7 +1297,7 @@ v850_frame_cache (frame_info_ptr this_frame, void **this_cache)
>
>
> static struct value *
> -v850_frame_prev_register (frame_info_ptr this_frame,
> +v850_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct v850_frame_cache *cache = v850_frame_cache (this_frame, this_cache);
> @@ -1308,7 +1308,7 @@ v850_frame_prev_register (frame_info_ptr this_frame,
> }
>
> static void
> -v850_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +v850_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct v850_frame_cache *cache = v850_frame_cache (this_frame, this_cache);
> @@ -1331,7 +1331,7 @@ static const struct frame_unwind v850_frame_unwind = {
> };
>
> static CORE_ADDR
> -v850_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +v850_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct v850_frame_cache *cache = v850_frame_cache (this_frame, this_cache);
>
> diff --git a/gdb/value.c b/gdb/value.c
> index 74af654c4510..99ff4dde6031 100644
> --- a/gdb/value.c
> +++ b/gdb/value.c
> @@ -4102,9 +4102,8 @@ value_fetch_lazy_register (struct value *val)
> if (frame_debug)
> {
> struct gdbarch *gdbarch;
> - frame_info_ptr frame;
> - frame = frame_find_by_id (VALUE_NEXT_FRAME_ID (val));
> - frame = get_prev_frame_always (frame);
> + frame_info *frame = frame_find_by_id (VALUE_NEXT_FRAME_ID (val)).get ();
> + frame = get_prev_frame_always_raw (frame);
> regnum = VALUE_REGNUM (val);
> gdbarch = get_frame_arch (frame);
>
> diff --git a/gdb/value.h b/gdb/value.h
> index 2d148ce13d3d..ec6e85b3a0ca 100644
> --- a/gdb/value.h
> +++ b/gdb/value.h
> @@ -723,14 +723,20 @@ extern struct value *default_value_from_register (struct gdbarch *gdbarch,
> int regnum,
> struct frame_id frame_id);
>
> -extern void read_frame_register_value (struct value *value,
> - frame_info_ptr frame);
> +extern void read_frame_register_value (struct value *value, frame_info *frame);
>
> extern struct value *value_from_register (struct type *type, int regnum,
> - frame_info_ptr frame);
> + frame_info *frame);
>
> -extern CORE_ADDR address_from_register (int regnum,
> - frame_info_ptr frame);
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline value *
> +value_from_register (type *type, int regnum, frame_info_ptr frame)
> +{
> + return value_from_register (type, regnum, frame.get ());
> +}
> +
> +extern CORE_ADDR address_from_register (int regnum, frame_info *frame);
>
> extern struct value *value_of_variable (struct symbol *var,
> const struct block *b);
> @@ -738,9 +744,17 @@ extern struct value *value_of_variable (struct symbol *var,
> extern struct value *address_of_variable (struct symbol *var,
> const struct block *b);
>
> -extern struct value *value_of_register (int regnum, frame_info_ptr frame);
> +extern struct value *value_of_register (int regnum, frame_info *frame);
> +
> +/* Same as the above, but accept a frame_info_ptr. */
> +
> +static inline value *
> +value_of_register (int regnum, frame_info_ptr frame)
> +{
> + return value_of_register (regnum, frame.get ());
> +}
>
> -struct value *value_of_register_lazy (frame_info_ptr frame, int regnum);
> +struct value *value_of_register_lazy (frame_info *frame, int regnum);
>
> /* Return the symbol's reading requirement. */
>
> diff --git a/gdb/vax-tdep.c b/gdb/vax-tdep.c
> index 9dc6ecd5f354..d311da284222 100644
> --- a/gdb/vax-tdep.c
> +++ b/gdb/vax-tdep.c
> @@ -187,7 +187,7 @@ vax_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
> }
>
> static struct frame_id
> -vax_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +vax_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> CORE_ADDR fp;
>
> @@ -303,7 +303,7 @@ struct vax_frame_cache
> };
>
> static struct vax_frame_cache *
> -vax_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +vax_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct vax_frame_cache *cache;
> CORE_ADDR addr;
> @@ -365,7 +365,7 @@ vax_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static void
> -vax_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +vax_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct vax_frame_cache *cache = vax_frame_cache (this_frame, this_cache);
> @@ -378,7 +378,7 @@ vax_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -vax_frame_prev_register (frame_info_ptr this_frame,
> +vax_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct vax_frame_cache *cache = vax_frame_cache (this_frame, this_cache);
> @@ -399,7 +399,7 @@ static const struct frame_unwind vax_frame_unwind =
> \f
>
> static CORE_ADDR
> -vax_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +vax_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct vax_frame_cache *cache = vax_frame_cache (this_frame, this_cache);
>
> @@ -407,7 +407,7 @@ vax_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> }
>
> static CORE_ADDR
> -vax_frame_args_address (frame_info_ptr this_frame, void **this_cache)
> +vax_frame_args_address (frame_info *this_frame, void **this_cache)
> {
> return get_frame_register_unsigned (this_frame, VAX_AP_REGNUM);
> }
> diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c
> index 3256c83ec129..9ec4acfb2319 100644
> --- a/gdb/xstormy16-tdep.c
> +++ b/gdb/xstormy16-tdep.c
> @@ -306,7 +306,7 @@ static CORE_ADDR
> xstormy16_analyze_prologue (struct gdbarch *gdbarch,
> CORE_ADDR start_addr, CORE_ADDR end_addr,
> struct xstormy16_frame_cache *cache,
> - frame_info_ptr this_frame)
> + frame_info *this_frame)
> {
> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> CORE_ADDR next_addr;
> @@ -655,7 +655,7 @@ xstormy16_alloc_frame_cache (void)
> }
>
> static struct xstormy16_frame_cache *
> -xstormy16_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +xstormy16_frame_cache (frame_info *this_frame, void **this_cache)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> struct xstormy16_frame_cache *cache;
> @@ -691,7 +691,7 @@ xstormy16_frame_cache (frame_info_ptr this_frame, void **this_cache)
> }
>
> static struct value *
> -xstormy16_frame_prev_register (frame_info_ptr this_frame,
> +xstormy16_frame_prev_register (frame_info *this_frame,
> void **this_cache, int regnum)
> {
> struct xstormy16_frame_cache *cache = xstormy16_frame_cache (this_frame,
> @@ -709,7 +709,7 @@ xstormy16_frame_prev_register (frame_info_ptr this_frame,
> }
>
> static void
> -xstormy16_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +xstormy16_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct xstormy16_frame_cache *cache = xstormy16_frame_cache (this_frame,
> @@ -723,7 +723,7 @@ xstormy16_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static CORE_ADDR
> -xstormy16_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +xstormy16_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct xstormy16_frame_cache *cache = xstormy16_frame_cache (this_frame,
> this_cache);
> diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
> index 27634f5f4ced..634c6310b8e1 100644
> --- a/gdb/xtensa-tdep.c
> +++ b/gdb/xtensa-tdep.c
> @@ -1023,13 +1023,13 @@ xtensa_frame_align (struct gdbarch *gdbarch, CORE_ADDR address)
>
>
> static CORE_ADDR
> -xtensa_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
> +xtensa_unwind_pc (struct gdbarch *gdbarch, frame_info *next_frame)
> {
> gdb_byte buf[8];
> CORE_ADDR pc;
>
> DEBUGTRACE ("xtensa_unwind_pc (next_frame = %s)\n",
> - host_address_to_string (next_frame.get ()));
> + host_address_to_string (next_frame));
>
> frame_unwind_register (next_frame, gdbarch_pc_regnum (gdbarch), buf);
> pc = extract_typed_address (buf, builtin_type (gdbarch)->builtin_func_ptr);
> @@ -1041,7 +1041,7 @@ xtensa_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
>
>
> static struct frame_id
> -xtensa_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
> +xtensa_dummy_id (struct gdbarch *gdbarch, frame_info *this_frame)
> {
> CORE_ADDR pc, fp;
> xtensa_gdbarch_tdep *tdep = gdbarch_tdep<xtensa_gdbarch_tdep> (gdbarch);
> @@ -1214,16 +1214,16 @@ xtensa_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR current_pc)
> cache->prev_sp = SP of the previous frame. */
>
> static void
> -call0_frame_cache (frame_info_ptr this_frame,
> +call0_frame_cache (frame_info *this_frame,
> xtensa_frame_cache_t *cache, CORE_ADDR pc);
>
> static void
> -xtensa_window_interrupt_frame_cache (frame_info_ptr this_frame,
> +xtensa_window_interrupt_frame_cache (frame_info *this_frame,
> xtensa_frame_cache_t *cache,
> CORE_ADDR pc);
>
> static struct xtensa_frame_cache *
> -xtensa_frame_cache (frame_info_ptr this_frame, void **this_cache)
> +xtensa_frame_cache (frame_info *this_frame, void **this_cache)
> {
> xtensa_frame_cache_t *cache;
> CORE_ADDR ra, wb, ws, pc, sp, ps;
> @@ -1389,7 +1389,7 @@ This message will not be repeated in this session.\n"));
>
>
> static void
> -xtensa_frame_this_id (frame_info_ptr this_frame,
> +xtensa_frame_this_id (frame_info *this_frame,
> void **this_cache,
> struct frame_id *this_id)
> {
> @@ -1403,7 +1403,7 @@ xtensa_frame_this_id (frame_info_ptr this_frame,
> }
>
> static struct value *
> -xtensa_frame_prev_register (frame_info_ptr this_frame,
> +xtensa_frame_prev_register (frame_info *this_frame,
> void **this_cache,
> int regnum)
> {
> @@ -1506,7 +1506,7 @@ xtensa_unwind =
> };
>
> static CORE_ADDR
> -xtensa_frame_base_address (frame_info_ptr this_frame, void **this_cache)
> +xtensa_frame_base_address (frame_info *this_frame, void **this_cache)
> {
> struct xtensa_frame_cache *cache =
> xtensa_frame_cache (this_frame, this_cache);
> @@ -2540,7 +2540,7 @@ call0_analyze_prologue (struct gdbarch *gdbarch,
> /* Initialize frame cache for the current frame in CALL0 ABI. */
>
> static void
> -call0_frame_cache (frame_info_ptr this_frame,
> +call0_frame_cache (frame_info *this_frame,
> xtensa_frame_cache_t *cache, CORE_ADDR pc)
> {
> struct gdbarch *gdbarch = get_frame_arch (this_frame);
> @@ -2889,7 +2889,7 @@ execute_code (struct gdbarch *gdbarch, CORE_ADDR current_pc, CORE_ADDR wb)
> /* Handle Window Overflow / Underflow exception frames. */
>
> static void
> -xtensa_window_interrupt_frame_cache (frame_info_ptr this_frame,
> +xtensa_window_interrupt_frame_cache (frame_info *this_frame,
> xtensa_frame_cache_t *cache,
> CORE_ADDR pc)
> {
> diff --git a/gdb/z80-tdep.c b/gdb/z80-tdep.c
> index 3141feb4d801..0272e0d6e5a0 100644
> --- a/gdb/z80-tdep.c
> +++ b/gdb/z80-tdep.c
> @@ -555,7 +555,7 @@ z80_return_value (struct gdbarch *gdbarch, struct value *function,
>
> /* function unwinds current stack frame and returns next one */
> static struct z80_unwind_cache *
> -z80_frame_unwind_cache (frame_info_ptr this_frame,
> +z80_frame_unwind_cache (frame_info *this_frame,
> void **this_prologue_cache)
> {
> CORE_ADDR start_pc, current_pc;
> @@ -658,7 +658,7 @@ z80_frame_unwind_cache (frame_info_ptr this_frame,
> /* Given a GDB frame, determine the address of the calling function's
> frame. This will be used to create a new GDB frame struct. */
> static void
> -z80_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> +z80_frame_this_id (frame_info *this_frame, void **this_cache,
> struct frame_id *this_id)
> {
> struct frame_id id;
> @@ -682,7 +682,7 @@ z80_frame_this_id (frame_info_ptr this_frame, void **this_cache,
> }
>
> static struct value *
> -z80_frame_prev_register (frame_info_ptr this_frame,
> +z80_frame_prev_register (frame_info *this_frame,
> void **this_prologue_cache, int regnum)
> {
> struct z80_unwind_cache *info
next prev parent reply other threads:[~2022-12-12 13:17 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-02 18:00 [PATCH 0/6] Make frame_info_ptr automatic Simon Marchi
2022-12-02 18:00 ` [PATCH 1/6] gdb: add invalidate_selected_frame function Simon Marchi
2022-12-07 14:09 ` Bruno Larsen
2022-12-07 16:54 ` Simon Marchi
2022-12-02 18:00 ` [PATCH 2/6] gdb: make it possible to restore selected user-created frames Simon Marchi
2022-12-08 9:25 ` Bruno Larsen
2022-12-08 20:53 ` Simon Marchi
2022-12-12 11:14 ` Bruno Larsen
2022-12-02 18:00 ` [PATCH 3/6] gdb: make user-created frames reinflatable Simon Marchi
2022-12-12 11:32 ` Bruno Larsen
2022-12-12 13:17 ` Simon Marchi
2022-12-12 13:33 ` Bruno Larsen
2022-12-12 13:45 ` Simon Marchi
2022-12-02 18:00 ` [PATCH 4/6] gdb: revert frame_unwind::this_id and callees to use `frame_info *` Simon Marchi
2022-12-05 21:41 ` Tom Tromey
2022-12-07 16:52 ` Simon Marchi
2022-12-12 13:17 ` Bruno Larsen [this message]
2022-12-12 13:26 ` Simon Marchi
2022-12-02 18:00 ` [PATCH 5/6] gdb: make frame_info_ptr grab frame level and id on construction Simon Marchi
2022-12-08 8:51 ` Bruno Larsen
2022-12-08 20:57 ` Simon Marchi
2022-12-02 18:00 ` [PATCH 6/6] gdb: make frame_info_ptr auto-reinflatable Simon Marchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3a0c4952-e44e-bed8-518a-52156a16747b@redhat.com \
--to=blarsen@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=simon.marchi@polymtl.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).