Index: gdb/objc-exp.y |
diff --git a/gdb/objc-exp.y b/gdb/objc-exp.y |
index 346b404181d6bbd90698c8f64475cab34d6a90a8..6f51edff8162f1489a91cd03c3a03537f6f29ee4 100644 |
--- a/gdb/objc-exp.y |
+++ b/gdb/objc-exp.y |
@@ -102,6 +102,12 @@ |
#define yygindex objc_yygindex |
#define yytable objc_yytable |
#define yycheck objc_yycheck |
+#define yyss objc_yyss |
+#define yysslim objc_yysslim |
+#define yyssp objc_yyssp |
+#define yystacksize objc_yystacksize |
+#define yyvs objc_yyvs |
+#define yyvsp objc_yyvsp |
#ifndef YYDEBUG |
#define YYDEBUG 0 /* Default to no yydebug support. */ |
@@ -648,6 +654,13 @@ variable: block COLONCOLON name |
if (sym == 0) |
error (_("No symbol \"%s\" in specified context."), |
copy_name ($3)); |
+ if (symbol_read_needs_frame (sym)) |
+ { |
+ if (innermost_block == 0 |
+ || contained_in (block_found, |
+ innermost_block)) |
+ innermost_block = block_found; |
+ } |
write_exp_elt_opcode (OP_VAR_VALUE); |
/* block_found is set by lookup_symbol. */ |
@@ -985,11 +998,7 @@ name_not_typename : NAME |
/*** Needs some error checking for the float case. ***/ |
static int |
-parse_number (p, len, parsed_float, putithere) |
- char *p; |
- int len; |
- int parsed_float; |
- YYSTYPE *putithere; |
+parse_number (char *p, int len, int parsed_float, YYSTYPE *putithere) |
{ |
/* FIXME: Shouldn't these be unsigned? We don't deal with negative |
values here, and we do kind of silly things like cast to |
@@ -1412,9 +1421,6 @@ yylex (void) |
case '^': |
case '~': |
case '!': |
-#if 0 |
- case '@': /* Moved out below. */ |
-#endif |
case '<': |
case '>': |
case '[': |
@@ -1776,8 +1782,7 @@ yylex (void) |
} |
void |
-yyerror (msg) |
- char *msg; |
+yyerror (char *msg) |
{ |
if (*lexptr == '\0') |
error(_("A %s near end of expression."), (msg ? msg : "error")); |