LANG=C ; export LANG
LC_ALL=C ; export LC_ALL
-
-compare_new ()
-{
- file=$1
- if test ! -r ${file}
- then
- echo "${file} missing? cp new-${file} ${file}" 1>&2
- elif diff -u ${file} new-${file}
- then
- echo "${file} unchanged" 1>&2
- else
- echo "${file} has changed? cp new-${file} ${file}" 1>&2
- fi
-}
-
-
# Format of the input table
read="class returntype function formal actual staticdefault predefault postdefault invalid_p print garbage_at_eol"
# On some SH's, 'read' trims leading and trailing whitespace by
# default (e.g., bash), while on others (e.g., dash), it doesn't.
# Set IFS to empty to disable the trimming everywhere.
+ # shellcheck disable=SC2162
while IFS='' read line
do
if test "${line}" = ""
# The semantics of IFS varies between different SH's. Some
# treat ``;;' as three fields while some treat it as just two.
# Work around this by eliminating ``;;'' ....
- line="`echo "${line}" | sed -e 's/;;/; ;/g' -e 's/;;/; ;/g'`"
+ line="$(echo "${line}" | sed -e 's/;;/; ;/g' -e 's/;;/; ;/g')"
OFS="${IFS}" ; IFS="[;]"
- eval read ${read} <<EOF
+ eval read "${read}" <<EOF
${line}
EOF
IFS="${OFS}"
- if test -n "${garbage_at_eol}"
+ if test -n "${garbage_at_eol:-}"
then
echo "Garbage at end-of-line in ${line}" 1>&2
kill $$
# that ended up with just that space character.
for r in ${read}
do
- if eval test \"\${${r}}\" = \"\ \"
+ if eval test "\"\${${r}}\" = ' '"
then
- eval ${r}=""
+ eval "${r}="
fi
done
case "${class}" in
- m ) staticdefault="${predefault}" ;;
+ m ) staticdefault="${predefault:-}" ;;
M ) staticdefault="0" ;;
* ) test "${staticdefault}" || staticdefault=0 ;;
esac
case "${class}" in
F | V | M )
- case "${invalid_p}" in
+ case "${invalid_p:-}" in
"" )
if test -n "${predefault}"
then
#invalid_p="gdbarch->${function} == ${predefault}"
- predicate="gdbarch->${function} != ${predefault}"
+ predicate="gdbarch->${function:-} != ${predefault}"
elif class_is_variable_p
then
predicate="gdbarch->${function} != 0"
esac
esac
- # PREDEFAULT is a valid fallback definition of MEMBER when
- # multi-arch is not enabled. This ensures that the
- # default value, when multi-arch is the same as the
- # default value when not multi-arch. POSTDEFAULT is
- # always a valid definition of MEMBER as this again
- # ensures consistency.
-
- if [ -n "${postdefault}" ]
- then
- fallbackdefault="${postdefault}"
- elif [ -n "${predefault}" ]
- then
- fallbackdefault="${predefault}"
- else
- fallbackdefault="0"
- fi
-
#NOT YET: See gdbarch.log for basic verification of
# database
fallback_default_p ()
{
- [ -n "${postdefault}" -a "x${invalid_p}" != "x0" ] \
- || [ -n "${predefault}" -a "x${invalid_p}" = "x0" ]
+ { [ -n "${postdefault:-}" ] && [ "x${invalid_p}" != "x0" ]; } \
+ || { [ -n "${predefault}" ] && [ "x${invalid_p}" = "x0" ]; }
}
class_is_variable_p ()
# machine.
v;int;long_long_bit;;;8 * sizeof (LONGEST);2*gdbarch->long_bit;;0
-# The ABI default bit-size and format for "half", "float", "double", and
+# The ABI default bit-size and format for "bfloat16", "half", "float", "double", and
# "long double". These bit/format pairs should eventually be combined
# into a single object. For the moment, just initialize them as a pair.
# Each format describes both the big and little endian layouts (if
# useful).
+v;int;bfloat16_bit;;;16;2*TARGET_CHAR_BIT;;0
+v;const struct floatformat **;bfloat16_format;;;;;floatformats_bfloat16;;pformat (gdbarch->bfloat16_format)
v;int;half_bit;;;16;2*TARGET_CHAR_BIT;;0
v;const struct floatformat **;half_format;;;;;floatformats_ieee_half;;pformat (gdbarch->half_format)
v;int;float_bit;;;8 * sizeof (float);4*TARGET_CHAR_BIT;;0
# Return -1 if something goes wrong, 0 otherwise.
M;int;ax_pseudo_register_push_stack;struct agent_expr *ax, int reg;ax, reg
-# Some targets/architectures can do extra processing/display of
-# segmentation faults. E.g., Intel MPX boundary faults.
-# Call the architecture dependent function to handle the fault.
+# Some architectures can display additional information for specific
+# signals.
# UIOUT is the output stream where the handler will place information.
-M;void;handle_segmentation_fault;struct ui_out *uiout;uiout
+M;void;report_signal_info;struct ui_out *uiout, enum gdb_signal siggnal;uiout, siggnal
# GDB's standard (or well known) register numbers. These can map onto
# a real register or a pseudo (computed) register or not be defined at
# See comment in target.h about continuable, steppable and
# non-steppable watchpoints.
v;int;have_nonsteppable_watchpoint;;;0;0;;0
-F;int;address_class_type_flags;int byte_size, int dwarf2_addr_class;byte_size, dwarf2_addr_class
-M;const char *;address_class_type_flags_to_name;int type_flags;type_flags
+F;type_instance_flags;address_class_type_flags;int byte_size, int dwarf2_addr_class;byte_size, dwarf2_addr_class
+M;const char *;address_class_type_flags_to_name;type_instance_flags type_flags;type_flags
# Execute vendor-specific DWARF Call Frame Instruction. OP is the instruction.
# FS are passed from the generic execute_cfa_program function.
m;bool;execute_dwarf_cfa_vendor_op;gdb_byte op, struct dwarf2_frame_state *fs;op, fs;;default_execute_dwarf_cfa_vendor_op;;0
# Return the appropriate type_flags for the supplied address class.
-# This function should return 1 if the address class was recognized and
-# type_flags was set, zero otherwise.
-M;int;address_class_name_to_type_flags;const char *name, int *type_flags_ptr;name, type_flags_ptr
+# This function should return true if the address class was recognized and
+# type_flags was set, false otherwise.
+M;bool;address_class_name_to_type_flags;const char *name, type_instance_flags *type_flags_ptr;name, type_flags_ptr
# Is a register in a group
m;int;register_reggroup_p;int regnum, struct reggroup *reggroup;regnum, reggroup;;default_register_reggroup_p;;0
# Fetch the pointer to the ith function argument.
# not the copy at TO. The caller should update it to point at TO later.
#
# Return a pointer to data of the architecture's choice to be passed
-# to gdbarch_displaced_step_fixup. Or, return NULL to indicate that
-# the instruction's effects have been completely simulated, with the
-# resulting state written back to REGS.
+# to gdbarch_displaced_step_fixup.
#
# For a general explanation of displaced stepping and how GDB uses it,
# see the comments in infrun.c.
# If the instruction cannot execute out of line, return NULL. The
# core falls back to stepping past the instruction in-line instead in
# that case.
-M;struct displaced_step_closure *;displaced_step_copy_insn;CORE_ADDR from, CORE_ADDR to, struct regcache *regs;from, to, regs
+M;displaced_step_closure_up;displaced_step_copy_insn;CORE_ADDR from, CORE_ADDR to, struct regcache *regs;from, to, regs
# Return true if GDB should use hardware single-stepping to execute
# the displaced instruction identified by CLOSURE. If false,
M;const struct target_desc *;core_read_description;struct target_ops *target, bfd *abfd;target, abfd
-# Handle special encoding of static variables in stabs debug info.
-F;const char *;static_transform_name;const char *name;name
# Set if the address in N_SO or N_FUN stabs may be zero.
v;int;sofun_address_maybe_missing;;;0;0;;0
# Return non-zero if the instruction at ADDR is a jump; zero otherwise.
m;int;insn_is_jump;CORE_ADDR addr;addr;;default_insn_is_jump;;0
+# Return true if there's a program/permanent breakpoint planted in
+# memory at ADDRESS, return false otherwise.
+m;bool;program_breakpoint_here_p;CORE_ADDR address;address;;default_program_breakpoint_here_p;;0
+
# Read one auxv entry from *READPTR, not reading locations >= ENDPTR.
# Return 0 if *READPTR is already at the end of the buffer.
# Return -1 if there is insufficient buffer for a whole entry.
# Return a string containing any flags for the given PC in the given FRAME.
f;std::string;get_pc_address_flags;frame_info *frame, CORE_ADDR pc;frame, pc;;default_get_pc_address_flags;;0
+# Read core file mappings
+m;void;read_core_file_mappings;struct bfd *cbfd,gdb::function_view<void (ULONGEST count)> pre_loop_cb,gdb::function_view<void (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs, const char *filename, const void *other)> loop_cb;cbfd, pre_loop_cb, loop_cb;;default_read_core_file_mappings;;0
+
EOF
}
#
# The .log file
#
-exec > new-gdbarch.log
+exec > gdbarch.log
function_list | while do_read
do
cat <<EOF
-${class} ${returntype} ${function} ($formal)
+${class} ${returntype:-} ${function} (${formal:-})
EOF
for r in ${read}
do
- eval echo \"\ \ \ \ ${r}=\${${r}}\"
+ eval echo "\" ${r}=\${${r}}\""
done
if class_is_predicate_p && fallback_default_p
then
kill $$
exit 1
fi
- if [ "x${invalid_p}" = "x0" -a -n "${postdefault}" ]
+ if [ "x${invalid_p}" = "x0" ] && [ -n "${postdefault}" ]
then
echo "Error: postdefault is useless when invalid_p=0" 1>&2
kill $$
done
exec 1>&2
-compare_new gdbarch.log
copyright ()
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-/* This file was created with the aid of \`\`gdbarch.sh''.
-
- The Bourne shell script \`\`gdbarch.sh'' creates the files
- \`\`new-gdbarch.c'' and \`\`new-gdbarch.h and then compares them
- against the existing \`\`gdbarch.[hc]''. Any differences found
- being reported.
-
- If editing this file, please also run gdbarch.sh and merge any
- changes into that script. Conversely, when making sweeping changes
- to this file, modifying gdbarch.sh and using its output may prove
- easier. */
+/* This file was created with the aid of \`\`gdbarch.sh''. */
EOF
}
#include "frame.h"
#include "dis-asm.h"
#include "gdb_obstack.h"
+#include "infrun.h"
+#include "osabi.h"
struct floatformat;
struct ui_file;
struct bp_target_info;
struct target_desc;
struct symbol;
-struct displaced_step_closure;
struct syscall;
struct agent_expr;
struct axs_value;
if class_is_info_p
then
printf "\n"
- printf "extern ${returntype} gdbarch_${function} (struct gdbarch *gdbarch);\n"
- printf "/* set_gdbarch_${function}() - not applicable - pre-initialized. */\n"
+ printf "extern %s gdbarch_%s (struct gdbarch *gdbarch);\n" "$returntype" "$function"
+ printf "/* set_gdbarch_%s() - not applicable - pre-initialized. */\n" "$function"
fi
done
if class_is_predicate_p
then
printf "\n"
- printf "extern int gdbarch_${function}_p (struct gdbarch *gdbarch);\n"
+ printf "extern int gdbarch_%s_p (struct gdbarch *gdbarch);\n" "$function"
fi
if class_is_variable_p
then
printf "\n"
- printf "extern ${returntype} gdbarch_${function} (struct gdbarch *gdbarch);\n"
- printf "extern void set_gdbarch_${function} (struct gdbarch *gdbarch, ${returntype} ${function});\n"
+ printf "extern %s gdbarch_%s (struct gdbarch *gdbarch);\n" "$returntype" "$function"
+ printf "extern void set_gdbarch_%s (struct gdbarch *gdbarch, %s %s);\n" "$function" "$returntype" "$function"
fi
if class_is_function_p
then
printf "\n"
if [ "x${formal}" = "xvoid" ] && class_is_multiarch_p
then
- printf "typedef ${returntype} (gdbarch_${function}_ftype) (struct gdbarch *gdbarch);\n"
+ printf "typedef %s (gdbarch_%s_ftype) (struct gdbarch *gdbarch);\n" "$returntype" "$function"
elif class_is_multiarch_p
then
- printf "typedef ${returntype} (gdbarch_${function}_ftype) (struct gdbarch *gdbarch, ${formal});\n"
+ printf "typedef %s (gdbarch_%s_ftype) (struct gdbarch *gdbarch, %s);\n" "$returntype" "$function" "$formal"
else
- printf "typedef ${returntype} (gdbarch_${function}_ftype) (${formal});\n"
+ printf "typedef %s (gdbarch_%s_ftype) (%s);\n" "$returntype" "$function" "$formal"
fi
if [ "x${formal}" = "xvoid" ]
then
- printf "extern ${returntype} gdbarch_${function} (struct gdbarch *gdbarch);\n"
+ printf "extern %s gdbarch_%s (struct gdbarch *gdbarch);\n" "$returntype" "$function"
else
- printf "extern ${returntype} gdbarch_${function} (struct gdbarch *gdbarch, ${formal});\n"
+ printf "extern %s gdbarch_%s (struct gdbarch *gdbarch, %s);\n" "$returntype" "$function" "$formal"
fi
- printf "extern void set_gdbarch_${function} (struct gdbarch *gdbarch, gdbarch_${function}_ftype *${function});\n"
+ printf "extern void set_gdbarch_%s (struct gdbarch *gdbarch, gdbarch_%s_ftype *%s);\n" "$function" "$function" "$function"
fi
done
extern struct gdbarch_data *gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *init);
typedef void *(gdbarch_data_post_init_ftype) (struct gdbarch *gdbarch);
extern struct gdbarch_data *gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *init);
-extern void deprecated_set_gdbarch_data (struct gdbarch *gdbarch,
- struct gdbarch_data *data,
- void *pointer);
extern void *gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *);
#endif
EOF
exec 1>&2
-#../move-if-change new-gdbarch.h gdbarch.h
-compare_new gdbarch.h
+../move-if-change new-gdbarch.h gdbarch.h
+rm -f new-gdbarch.h
#
do
if class_is_info_p
then
- printf " ${returntype} ${function};\n"
+ printf " %s %s;\n" "$returntype" "$function"
fi
done
printf "\n"
do
if class_is_variable_p
then
- printf " ${returntype} ${function};\n"
+ printf " %s %s;\n" "$returntype" "$function"
elif class_is_function_p
then
- printf " gdbarch_${function}_ftype *${function};\n"
+ printf " gdbarch_%s_ftype *%s;\n" "$function" "$function"
fi
done
printf "};\n"
do
if class_is_info_p
then
- printf " gdbarch->${function} = info->${function};\n"
+ printf " gdbarch->%s = info->%s;\n" "$function" "$function"
fi
done
printf "\n"
do
if class_is_function_p || class_is_variable_p
then
- if [ -n "${predefault}" -a "x${predefault}" != "x0" ]
+ if [ -n "${predefault}" ] && [ "x${predefault}" != "x0" ]
then
- printf " gdbarch->${function} = ${predefault};\n"
+ printf " gdbarch->%s = %s;\n" "$function" "$predefault"
fi
fi
done
then
if [ "x${invalid_p}" = "x0" ]
then
- printf " /* Skip verify of ${function}, invalid_p == 0 */\n"
+ printf " /* Skip verify of %s, invalid_p == 0 */\n" "$function"
elif class_is_predicate_p
then
- printf " /* Skip verify of ${function}, has predicate. */\n"
+ printf " /* Skip verify of %s, has predicate. */\n" "$function"
# FIXME: See do_read for potential simplification
- elif [ -n "${invalid_p}" -a -n "${postdefault}" ]
+ elif [ -n "${invalid_p}" ] && [ -n "${postdefault}" ]
then
- printf " if (${invalid_p})\n"
- printf " gdbarch->${function} = ${postdefault};\n"
- elif [ -n "${predefault}" -a -n "${postdefault}" ]
+ printf " if (%s)\n" "$invalid_p"
+ printf " gdbarch->%s = %s;\n" "$function" "$postdefault"
+ elif [ -n "${predefault}" ] && [ -n "${postdefault}" ]
then
- printf " if (gdbarch->${function} == ${predefault})\n"
- printf " gdbarch->${function} = ${postdefault};\n"
+ printf " if (gdbarch->%s == %s)\n" "$function" "$predefault"
+ printf " gdbarch->%s = %s;\n" "$function" "$postdefault"
elif [ -n "${postdefault}" ]
then
- printf " if (gdbarch->${function} == 0)\n"
- printf " gdbarch->${function} = ${postdefault};\n"
+ printf " if (gdbarch->%s == 0)\n" "$function"
+ printf " gdbarch->%s = %s;\n" "$function" "$postdefault"
elif [ -n "${invalid_p}" ]
then
- printf " if (${invalid_p})\n"
- printf " log.puts (\"\\\\n\\\\t${function}\");\n"
+ printf " if (%s)\n" "$invalid_p"
+ printf " log.puts (\"\\\\n\\\\t%s\");\n" "$function"
elif [ -n "${predefault}" ]
then
- printf " if (gdbarch->${function} == ${predefault})\n"
- printf " log.puts (\"\\\\n\\\\t${function}\");\n"
+ printf " if (gdbarch->%s == %s)\n" "$function" "$predefault"
+ printf " log.puts (\"\\\\n\\\\t%s\");\n" "$function"
fi
fi
done
if class_is_predicate_p
then
printf " fprintf_unfiltered (file,\n"
- printf " \"gdbarch_dump: gdbarch_${function}_p() = %%d\\\\n\",\n"
- printf " gdbarch_${function}_p (gdbarch));\n"
+ printf " \"gdbarch_dump: gdbarch_%s_p() = %%d\\\\n\",\n" "$function"
+ printf " gdbarch_%s_p (gdbarch));\n" "$function"
fi
# Print the corresponding value.
if class_is_function_p
then
printf " fprintf_unfiltered (file,\n"
- printf " \"gdbarch_dump: ${function} = <%%s>\\\\n\",\n"
- printf " host_address_to_string (gdbarch->${function}));\n"
+ printf " \"gdbarch_dump: %s = <%%s>\\\\n\",\n" "$function"
+ printf " host_address_to_string (gdbarch->%s));\n" "$function"
else
# It is a variable
case "${print}:${returntype}" in
;;
esac
printf " fprintf_unfiltered (file,\n"
- printf " \"gdbarch_dump: ${function} = %s\\\\n\",\n" "${fmt}"
- printf " ${print});\n"
+ printf " \"gdbarch_dump: %s = %s\\\\n\",\n" "$function" "$fmt"
+ printf " %s);\n" "$print"
fi
done
cat <<EOF
then
printf "\n"
printf "int\n"
- printf "gdbarch_${function}_p (struct gdbarch *gdbarch)\n"
+ printf "gdbarch_%s_p (struct gdbarch *gdbarch)\n" "$function"
printf "{\n"
printf " gdb_assert (gdbarch != NULL);\n"
- printf " return ${predicate};\n"
+ printf " return %s;\n" "$predicate"
printf "}\n"
fi
if class_is_function_p
then
printf "\n"
- printf "${returntype}\n"
+ printf "%s\n" "$returntype"
if [ "x${formal}" = "xvoid" ]
then
- printf "gdbarch_${function} (struct gdbarch *gdbarch)\n"
+ printf "gdbarch_%s (struct gdbarch *gdbarch)\n" "$function"
else
- printf "gdbarch_${function} (struct gdbarch *gdbarch, ${formal})\n"
+ printf "gdbarch_%s (struct gdbarch *gdbarch, %s)\n" "$function" "$formal"
fi
printf "{\n"
printf " gdb_assert (gdbarch != NULL);\n"
- printf " gdb_assert (gdbarch->${function} != NULL);\n"
+ printf " gdb_assert (gdbarch->%s != NULL);\n" "$function"
if class_is_predicate_p && test -n "${predefault}"
then
# Allow a call to a function with a predicate.
- printf " /* Do not check predicate: ${predicate}, allow call. */\n"
+ printf " /* Do not check predicate: %s, allow call. */\n" "$predicate"
fi
printf " if (gdbarch_debug >= 2)\n"
- printf " fprintf_unfiltered (gdb_stdlog, \"gdbarch_${function} called\\\\n\");\n"
- if [ "x${actual}" = "x-" -o "x${actual}" = "x" ]
+ printf " fprintf_unfiltered (gdb_stdlog, \"gdbarch_%s called\\\\n\");\n" "$function"
+ if [ "x${actual:-}" = "x-" ] || [ "x${actual:-}" = "x" ]
then
if class_is_multiarch_p
then
fi
if [ "x${returntype}" = "xvoid" ]
then
- printf " gdbarch->${function} (${params});\n"
+ printf " gdbarch->%s (%s);\n" "$function" "$params"
else
- printf " return gdbarch->${function} (${params});\n"
+ printf " return gdbarch->%s (%s);\n" "$function" "$params"
fi
printf "}\n"
printf "\n"
printf "void\n"
- printf "set_gdbarch_${function} (struct gdbarch *gdbarch,\n"
- printf " `echo ${function} | sed -e 's/./ /g'` gdbarch_${function}_ftype ${function})\n"
+ printf "set_gdbarch_%s (struct gdbarch *gdbarch,\n" "$function"
+ printf " %s gdbarch_%s_ftype %s)\n" "$(echo "$function" | sed -e 's/./ /g')" "$function" "$function"
printf "{\n"
- printf " gdbarch->${function} = ${function};\n"
+ printf " gdbarch->%s = %s;\n" "$function" "$function"
printf "}\n"
elif class_is_variable_p
then
printf "\n"
- printf "${returntype}\n"
- printf "gdbarch_${function} (struct gdbarch *gdbarch)\n"
+ printf "%s\n" "$returntype"
+ printf "gdbarch_%s (struct gdbarch *gdbarch)\n" "$function"
printf "{\n"
printf " gdb_assert (gdbarch != NULL);\n"
if [ "x${invalid_p}" = "x0" ]
then
- printf " /* Skip verify of ${function}, invalid_p == 0 */\n"
+ printf " /* Skip verify of %s, invalid_p == 0 */\n" "$function"
elif [ -n "${invalid_p}" ]
then
printf " /* Check variable is valid. */\n"
- printf " gdb_assert (!(${invalid_p}));\n"
+ printf " gdb_assert (!(%s));\n" "$invalid_p"
elif [ -n "${predefault}" ]
then
printf " /* Check variable changed from pre-default. */\n"
- printf " gdb_assert (gdbarch->${function} != ${predefault});\n"
+ printf " gdb_assert (gdbarch->%s != %s);\n" "$function" "$predefault"
fi
printf " if (gdbarch_debug >= 2)\n"
- printf " fprintf_unfiltered (gdb_stdlog, \"gdbarch_${function} called\\\\n\");\n"
- printf " return gdbarch->${function};\n"
+ printf " fprintf_unfiltered (gdb_stdlog, \"gdbarch_%s called\\\\n\");\n" "$function"
+ printf " return gdbarch->%s;\n" "$function"
printf "}\n"
printf "\n"
printf "void\n"
- printf "set_gdbarch_${function} (struct gdbarch *gdbarch,\n"
- printf " `echo ${function} | sed -e 's/./ /g'` ${returntype} ${function})\n"
+ printf "set_gdbarch_%s (struct gdbarch *gdbarch,\n" "$function"
+ printf " %s %s %s)\n" "$(echo "$function" | sed -e 's/./ /g')" "$returntype" "$function"
printf "{\n"
- printf " gdbarch->${function} = ${function};\n"
+ printf " gdbarch->%s = %s;\n" "$function" "$function"
printf "}\n"
elif class_is_info_p
then
printf "\n"
- printf "${returntype}\n"
- printf "gdbarch_${function} (struct gdbarch *gdbarch)\n"
+ printf "%s\n" "$returntype"
+ printf "gdbarch_%s (struct gdbarch *gdbarch)\n" "$function"
printf "{\n"
printf " gdb_assert (gdbarch != NULL);\n"
printf " if (gdbarch_debug >= 2)\n"
- printf " fprintf_unfiltered (gdb_stdlog, \"gdbarch_${function} called\\\\n\");\n"
- printf " return gdbarch->${function};\n"
+ printf " fprintf_unfiltered (gdb_stdlog, \"gdbarch_%s called\\\\n\");\n" "$function"
+ printf " return gdbarch->%s;\n" "$function"
printf "}\n"
fi
done
gdbarch->data = GDBARCH_OBSTACK_CALLOC (gdbarch, gdbarch->nr_data, void *);
}
-/* Initialize the current value of the specified per-architecture
- data-pointer. */
-
-void
-deprecated_set_gdbarch_data (struct gdbarch *gdbarch,
- struct gdbarch_data *data,
- void *pointer)
-{
- gdb_assert (data->index < gdbarch->nr_data);
- gdb_assert (gdbarch->data[data->index] == NULL);
- gdb_assert (data->pre_init == NULL);
- gdbarch->data[data->index] = pointer;
-}
-
/* Return the current value of the specified per-architecture
data-pointer. */
data->init_p = 1;
}
else
- /* The architecture initialization hasn't completed - punt -
- hope that the caller knows what they are doing. Once
- deprecated_set_gdbarch_data has been initialized, this can be
- changed to an internal error. */
- return NULL;
+ internal_error (__FILE__, __LINE__,
+ _("gdbarch post-init data field can only be used "
+ "after gdbarch is fully initialised"));
gdb_assert (gdbarch->data[data->index] != NULL);
}
return gdbarch->data[data->index];
# close things off
exec 1>&2
-#../move-if-change new-gdbarch.c gdbarch.c
-compare_new gdbarch.c
+../move-if-change new-gdbarch.c gdbarch.c
+rm -f new-gdbarch.c