aboutsummaryrefslogtreecommitdiff
path: root/gdb/parse.c
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-08-18 19:33:39 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-08-18 19:33:39 +0000
commit479fdd26ee1390b558509aec8e5f8a6a4d7074df (patch)
tree033bf7a1877e86b157805ad11f46f0f9fa6f8d78 /gdb/parse.c
parente56ac0ba86b473dfa9a227f06d903970345e513d (diff)
downloadgdb-479fdd26ee1390b558509aec8e5f8a6a4d7074df.zip
gdb-479fdd26ee1390b558509aec8e5f8a6a4d7074df.tar.gz
gdb-479fdd26ee1390b558509aec8e5f8a6a4d7074df.tar.bz2
* blockframe.c (block_innermost_frame): Uncomment.
Return NULL if passed NULL. * frame.h: Declare it. * expression.h (union exp_element): Add field block. * parse.c (write_exp_elt_block): New function. * expression.h (OP_VAR_VALUE): Now takes additional struct block *. * *-exp.y: Write block for OP_VAR_VALUE. * eval.c, expprint.c, parse.c: Deal with block for OP_VAR_VALUE. * valops.c, value.h (value_of_variable), callers: Add second argument, for block.
Diffstat (limited to 'gdb/parse.c')
-rw-r--r--gdb/parse.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gdb/parse.c b/gdb/parse.c
index 4cec13b..94e467e 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -179,6 +179,15 @@ write_exp_elt_sym (expelt)
}
void
+write_exp_elt_block (b)
+ struct block *b;
+{
+ union exp_element tmp;
+ tmp.block = b;
+ write_exp_elt (tmp);
+}
+
+void
write_exp_elt_longcst (expelt)
LONGEST expelt;
{
@@ -389,12 +398,12 @@ length_of_subexp (expr, endpos)
case OP_LONG:
case OP_DOUBLE:
+ case OP_VAR_VALUE:
oplen = 4;
break;
case OP_TYPE:
case OP_BOOL:
- case OP_VAR_VALUE:
case OP_LAST:
case OP_REGISTER:
case OP_INTERNALVAR:
@@ -518,12 +527,12 @@ prefixify_subexp (inexpr, outexpr, inend, outbeg)
case OP_LONG:
case OP_DOUBLE:
+ case OP_VAR_VALUE:
oplen = 4;
break;
case OP_TYPE:
case OP_BOOL:
- case OP_VAR_VALUE:
case OP_LAST:
case OP_REGISTER:
case OP_INTERNALVAR: