+void dwarf_expr_require_composition (const gdb_byte *, const gdb_byte *,
+ const char *);
+
+/* Stub dwarf_expr_context_funcs implementations. */
+
+void ctx_no_get_frame_base (void *baton, const gdb_byte **start,
+ size_t *length);
+CORE_ADDR ctx_no_get_frame_cfa (void *baton);
+CORE_ADDR ctx_no_get_frame_pc (void *baton);
+CORE_ADDR ctx_no_get_tls_address (void *baton, CORE_ADDR offset);
+void ctx_no_dwarf_call (struct dwarf_expr_context *ctx, cu_offset die_offset);
+struct type *ctx_no_get_base_type (struct dwarf_expr_context *ctx,
+ cu_offset die);
+void ctx_no_push_dwarf_reg_entry_value (struct dwarf_expr_context *ctx,
+ enum call_site_parameter_kind kind,
+ union call_site_parameter_u kind_u,
+ int deref_size);
+CORE_ADDR ctx_no_get_addr_index (void *baton, unsigned int index);
+
+int dwarf_block_to_dwarf_reg (const gdb_byte *buf, const gdb_byte *buf_end);
+
+int dwarf_block_to_dwarf_reg_deref (const gdb_byte *buf,
+ const gdb_byte *buf_end,
+ CORE_ADDR *deref_size_return);
+
+int dwarf_block_to_fb_offset (const gdb_byte *buf, const gdb_byte *buf_end,
+ CORE_ADDR *fb_offset_return);
+
+int dwarf_block_to_sp_offset (struct gdbarch *gdbarch, const gdb_byte *buf,
+ const gdb_byte *buf_end,
+ CORE_ADDR *sp_offset_return);
+
+/* Wrappers around the leb128 reader routines to simplify them for our
+ purposes. */
+
+static inline const gdb_byte *
+gdb_read_uleb128 (const gdb_byte *buf, const gdb_byte *buf_end,
+ uint64_t *r)
+{
+ size_t bytes_read = read_uleb128_to_uint64 (buf, buf_end, r);
+
+ if (bytes_read == 0)
+ return NULL;
+ return buf + bytes_read;
+}
+
+static inline const gdb_byte *
+gdb_read_sleb128 (const gdb_byte *buf, const gdb_byte *buf_end,
+ int64_t *r)
+{
+ size_t bytes_read = read_sleb128_to_int64 (buf, buf_end, r);
+
+ if (bytes_read == 0)
+ return NULL;
+ return buf + bytes_read;
+}
+
+static inline const gdb_byte *
+gdb_skip_leb128 (const gdb_byte *buf, const gdb_byte *buf_end)
+{
+ size_t bytes_read = skip_leb128 (buf, buf_end);
+
+ if (bytes_read == 0)
+ return NULL;
+ return buf + bytes_read;
+}
+
+extern const gdb_byte *safe_read_uleb128 (const gdb_byte *buf,
+ const gdb_byte *buf_end,
+ uint64_t *r);
+
+extern const gdb_byte *safe_read_sleb128 (const gdb_byte *buf,
+ const gdb_byte *buf_end,
+ int64_t *r);