aboutsummaryrefslogtreecommitdiff
path: root/gdb/values.c
diff options
context:
space:
mode:
authorPer Bothner <per@bothner.com>1995-10-05 05:24:41 +0000
committerPer Bothner <per@bothner.com>1995-10-05 05:24:41 +0000
commit3c02944a988ffb5ce4599a8013675a3ea49e538b (patch)
tree31062c6ae0d27a423e2379b1269d79280e428fd7 /gdb/values.c
parent4caf3f7d0ec772da6f419b5e0cb20e687298537a (diff)
downloadgdb-3c02944a988ffb5ce4599a8013675a3ea49e538b.zip
gdb-3c02944a988ffb5ce4599a8013675a3ea49e538b.tar.gz
gdb-3c02944a988ffb5ce4599a8013675a3ea49e538b.tar.bz2
* expression.h (enum exp_code): Added OP_NAME.
* expprint.c (print_subexp): Add OP_NAME support. * parse.c (length_of_subexp, prefixify_subexp): Likewise. * scm-lang.c (scm_unpack, in_eval_c, scm_lookup_name): new function. * scm-lang.h: Declare builtin_type_scm; other minor tweaks. * values.c (unpack_long): If type is SCM, call scm_unpack. * scm-valprint.c (scm_val_print): Use extract_signed_integer, instead unpack_long * scm-lang.c: More Scheme expression parsing from here ... * scm-exp.c: ... to here. New file. Also, provide for gdb to evaluate simple constants and names.. * Makefile.in: Note new scm-exp.{c,o}.
Diffstat (limited to 'gdb/values.c')
-rw-r--r--gdb/values.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gdb/values.c b/gdb/values.c
index 33db594..f4d01df 100644
--- a/gdb/values.c
+++ b/gdb/values.c
@@ -630,6 +630,10 @@ unpack_long (type, valaddr)
register int len = TYPE_LENGTH (type);
register int nosign = TYPE_UNSIGNED (type);
+ if (current_language->la_language == language_scm
+ && is_scmvalue_type (type))
+ return scm_unpack (type, valaddr, TYPE_CODE_INT);
+
switch (code)
{
case TYPE_CODE_ENUM: