aboutsummaryrefslogtreecommitdiff
path: root/gdb/parse.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2002-10-26 17:12:33 +0000
committerDaniel Jacobowitz <drow@false.org>2002-10-26 17:12:33 +0000
commit6ef1bcec6069b5bcb4481998f3dedc5dbcc31921 (patch)
tree8bfd3851498d0dfbcbff9ede0e65e02442df6730 /gdb/parse.c
parent5f6ea76b78320c21d11477709a8c733f47e46d8a (diff)
downloadbinutils-6ef1bcec6069b5bcb4481998f3dedc5dbcc31921.zip
binutils-6ef1bcec6069b5bcb4481998f3dedc5dbcc31921.tar.gz
binutils-6ef1bcec6069b5bcb4481998f3dedc5dbcc31921.tar.bz2
Merge drow-cplus-merge-20021025 to drow-cplus-branch.
Diffstat (limited to 'gdb/parse.c')
-rw-r--r--gdb/parse.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/gdb/parse.c b/gdb/parse.c
index 29b8e3c..5d81dfd 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -830,6 +830,11 @@ length_of_subexp (register struct expression *expr, register int endpos)
args = 1 + longest_to_int (expr->elts[endpos - 2].longconst);
break;
+ case OP_MSGCALL: /* Objective C message (method) call */
+ oplen = 4;
+ args = 1 + longest_to_int (expr->elts[endpos - 2].longconst);
+ break;
+
case UNOP_MAX:
case UNOP_MIN:
oplen = 3;
@@ -861,6 +866,8 @@ length_of_subexp (register struct expression *expr, register int endpos)
/* fall through */
case OP_M2_STRING:
case OP_STRING:
+ case OP_NSSTRING: /* Objective C Foundation Class NSString constant */
+ case OP_SELECTOR: /* Objective C "@selector" pseudo-op */
case OP_NAME:
case OP_EXPRSTRING:
oplen = longest_to_int (expr->elts[endpos - 2].longconst);
@@ -899,6 +906,7 @@ length_of_subexp (register struct expression *expr, register int endpos)
/* C++ */
case OP_THIS:
+ case OP_SELF:
oplen = 2;
break;
@@ -967,6 +975,11 @@ prefixify_subexp (register struct expression *inexpr,
args = 1 + longest_to_int (inexpr->elts[inend - 2].longconst);
break;
+ case OP_MSGCALL: /* Objective C message (method) call */
+ oplen = 4;
+ args = 1 + longest_to_int (inexpr->elts[inend - 2].longconst);
+ break;
+
case UNOP_MIN:
case UNOP_MAX:
oplen = 3;
@@ -997,6 +1010,8 @@ prefixify_subexp (register struct expression *inexpr,
/* fall through */
case OP_M2_STRING:
case OP_STRING:
+ case OP_NSSTRING: /* Objective C Foundation Class NSString constant */
+ case OP_SELECTOR: /* Objective C "@selector" pseudo-op */
case OP_NAME:
case OP_EXPRSTRING:
oplen = longest_to_int (inexpr->elts[inend - 2].longconst);
@@ -1035,6 +1050,7 @@ prefixify_subexp (register struct expression *inexpr,
/* C++ */
case OP_THIS:
+ case OP_SELF:
oplen = 2;
break;
@@ -1107,7 +1123,7 @@ parse_exp_1 (char **stringptr, struct block *block, int comma)
if (block)
{
expression_context_block = block;
- expression_context_pc = block->startaddr;
+ expression_context_pc = BLOCK_START (block);
}
else
expression_context_block = get_selected_block (&expression_context_pc);