aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog85
-rw-r--r--gdb/alldeps.mak12
-rw-r--r--gdb/copying.c15
-rwxr-xr-xgdb/expread.tab.c683
4 files changed, 468 insertions, 327 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f15e077..739bedd 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,4 +1,89 @@
+Fri Apr 26 12:02:06 1991 Jim Kingdon (kingdon at cygint.cygnus.com)
+
+ * xconfig/i386v{,32}{,-g}: Add XM_CFLAGS=-Dgetpagesize()=4096.
+ gmalloc.c: #if 0 out !HAVE_GETPAGESIZE code.
+
+ * expread.y (abs_decl): Accept '&' and '&' abs_decl.
+
+ * symtab.c, symtab.h: Have a builtin_type_{,unsigned_}long_long
+ regardless of LONG_LONG.
+ defs.h (TARGET_LONG_LONG_BIT): New macro.
+ expread.y (typebase): Add {unsigned,} long long {,int}.
+
+Thu Apr 25 12:31:22 1991 Jim Kingdon (kingdon at cygint.cygnus.com)
+
+ * valops.c (typecmp): If t2 == 0, return 1.
+
Wed Apr 24 09:45:17 1991 Jim Kingdon (kingdon at cygint.cygnus.com)
+ Changes from Tiemann:
+ * cplus-dem.c (optable): Add "nw", "dl", "compound".
+ (cplus_mangle_opname): New function.
+ (do_type): Add case 'Q'.
+ * values.c (check_stub_method): Do lookup_method_type and stuff
+ rather than smash_to_method_type.
+ symtab.c, symtab.h (allocate_stub_method): New function.
+ dbxread.c (read_type): If we get "##", don't lookup_function_type
+ and start clobbering it; allocate_stub_method instead.
+ * printcmd.c (x_command): Dereference references.
+ * valprint.c (type_print_varspec_prefix, case TYPE_CODE_METHOD):
+ Don't print " " type_print_base (...) "::" if !passed_a_ptr.
+ * dbxread.c (read_struct_type): Put "op$" instead of "operator"
+ in the symbol table.
+ * values.c (check_stub_method): Deal with operator names.
+ * valprint.c (cplus_val_print): Check for error in baseclass_addr.
+ * values.c: Move declaration of cplus_demangle to top of file.
+ * values.c (baseclass_addr): If can't read memory, set *ERRP
+ rather than calling error().
+ * value.h: Remove redundant declaration of value_static_field.
+ * values.c (value_static_field): Recursively check all baseclasses.
+ Return NULL if not found.
+ * values.c, value.h: New functions value_{headof,from_vtable_info}.
+ * valprint.c (val_print): Print out first element of vtbl
+ specially.
+ * valprint.c: Move print controls to top and add objectprint.
+ Add command "set print object on/off".
+ * valprint.c (value_print, is_vtbl_member): Put things in local
+ variables rather than continually doing VALUE_TYPE (val), etc.
+ * valops.c (value_struct_elt_for_address): Call check_stub_method.
+ * valops.c (value_struct_elt): Remove found, arg1_as_ptr.
+ * valops.c (search_struct_method): Give error if j > 0 && args == 0.
+ * valops.c (search_struct_field): New argument looking_for_baseclass.
+ Give error if value_static_field or value_primitive_field
+ return NULL.
+ valops.c (various): Call search_struct_field with extra parameter.
+ * symtab.c (decode_line_1): Deal with operators specified as
+ "operator" <optional whitespace> <symbols for operator>.
+ (operator_chars): Help do it.
+ * symtab.c (lookup_struct_elt_type): Call check_stub_type.
+ Take additional argument noerr.
+ Don't dump core if TYPE_FIELD_NAME is NULL.
+ Check the baseclasses recursively.
+ * symfile.c (fill_in_vptr_fieldno): Don't call check_stub_type.
+ Return void not int. (also declarations in symfile.h and value.h).
+ Deal with multiple inheritance.
+ * printcmd.c (print_command_1): Add if (objectprint) code.
+ * expread.y (variable): Allow for destructor with foo::~name.
+ * eval.c (evaluate_subexp, case UNOP_LOGNOT): If following opcode
+ is OP_SCOPE, give an error.
+ * eval.c (evaluate_subexp): Pass third arg to lookup_struct_elt_type.
+ * eval.c (evaluate_subexp), values.c (value_virtual_fn_field):
+ Don't bother to do anything with
+ return value from fill_in_vptr_fieldno.
+ * eval.c (evaluate_subexp): If value_static_field returns NULL,
+ give an error.
+ * dbxread.c (read_struct_type): Set fcontext to 0 for normal member
+ function.
+ * dbxread.c (read_struct_type): Initialize name to 0.
+ * dbxread.c (read_ofile_symtab, N_CATCH): Add offset to bufp->n_value.
+ * dbxread.c (dbx_create_type): Zero TYPE_VPTR_BASETYPE.
+ (read_struct_type): Don't bother to set TYPE_VTPR_{BASETYPE,FIELDNO}
+ if it's just going to be {0,1}.
+
+ * dbxread.c (virtual_context): Use TYPE_BASECLASS starting at 0
+ (yes, it's #if 0, but just in case...).
+
+ * vax-opcode.h, expread.y, expprint.c, cplus-dem.c: Declare some
+ things "const".
* i386-stub.c: New file.
diff --git a/gdb/alldeps.mak b/gdb/alldeps.mak
index 73e6cb8..32c2859 100644
--- a/gdb/alldeps.mak
+++ b/gdb/alldeps.mak
@@ -14,7 +14,7 @@ coredep.c\
exec.c\
gould-pinsn.c\
gould-xdep.c\
-hp300hpux-xdep.c\
+hp300ux-xdep.c\
i386-pinsn.c\
i386-tdep.c\
i386-xdep.c\
@@ -42,8 +42,8 @@ sparc-tdep.c\
sparc-xdep.c\
sun3-xdep.c\
sun386-xdep.c\
-symmetry-tdep.c\
-symmetry-xdep.c\
+symm-tdep.c\
+symm-xdep.c\
tdesc.c\
umax-xdep.c\
vax-pinsn.c
@@ -89,8 +89,8 @@ tm-sun4os4.h\
tm-symmetry.h\
tm-umax.h\
tm-vax.h\
-tm-vxworks68.h\
-tm-vxworks960.h\
+tm-vx68.h\
+tm-vx960.h\
xm-3b1.h\
xm-88k.h\
xm-altos.h\
@@ -121,6 +121,7 @@ xm-vax.h
ALLCONFIG=\
./tconfig/3b1\
+./tconfig/CVS.adm\
./tconfig/altos\
./tconfig/altosgas\
./tconfig/am29k\
@@ -160,6 +161,7 @@ ALLCONFIG=\
./tconfig/vxworks68\
./tconfig/vxworks960\
./xconfig/3b1\
+./xconfig/CVS.adm\
./xconfig/altos\
./xconfig/altosgas\
./xconfig/arm\
diff --git a/gdb/copying.c b/gdb/copying.c
index 9164891..c31c280c7 100644
--- a/gdb/copying.c
+++ b/gdb/copying.c
@@ -2,9 +2,10 @@
by copying.awk. */
#include "defs.h"
#include "command.h"
+#include "gdbcmd.h"
extern int immediate_quit;
static void
-copying_info ()
+show_copying ()
{
immediate_quit++;
printf_filtered ("\n");
@@ -179,7 +180,7 @@ copying_info ()
}
static void
-warranty_info ()
+show_warranty ()
{
immediate_quit++;
printf_filtered (" NO WARRANTY\n");
@@ -210,8 +211,10 @@ warranty_info ()
void
_initialize_copying ()
{
- add_info ("copying", copying_info,
- "Conditions for redistributing copies of GDB.");
- add_info ("warranty", warranty_info,
- "Various kinds of warranty you do not have.");
+ add_cmd ("copying", no_class, show_copying,
+ "Conditions for redistributing copies of GDB.",
+ &showlist);
+ add_cmd ("warranty", no_class, show_warranty,
+ "Various kinds of warranty you do not have.",
+ &showlist);
}
diff --git a/gdb/expread.tab.c b/gdb/expread.tab.c
index e10aca0..c571469 100755
--- a/gdb/expread.tab.c
+++ b/gdb/expread.tab.c
@@ -1,5 +1,5 @@
-/* A Bison parser, made from expread.y */
+/* A Bison parser, made from ../expread.y */
#define INT 258
#define CHAR 259
@@ -41,7 +41,7 @@
#define DECREMENT 295
#define ARROW 296
-#line 29 "expread.y"
+#line 29 "../expread.y"
#include <stdio.h>
#include "defs.h"
@@ -133,7 +133,7 @@ static enum type_pieces pop_type ();
/* Allow debugging of parsing. */
#define YYDEBUG 1
-#line 125 "expread.y"
+#line 125 "../expread.y"
typedef union
{
LONGEST lval;
@@ -177,7 +177,7 @@ typedef
-#define YYFINAL 189
+#define YYFINAL 197
#define YYFLAG -32768
#define YYNTBASE 66
@@ -223,12 +223,12 @@ static const short yyrline[] = { 0,
345, 349, 353, 357, 361, 365, 369, 373, 377, 381,
385, 389, 393, 397, 401, 405, 409, 413, 419, 429,
442, 454, 467, 474, 481, 484, 490, 496, 502, 509,
- 516, 523, 540, 550, 562, 575, 621, 695, 696, 731,
- 733, 735, 738, 740, 745, 751, 753, 757, 759, 763,
- 767, 768, 770, 772, 775, 782, 784, 786, 788, 790,
- 792, 794, 796, 798, 801, 804, 807, 809, 811, 813,
- 817, 818, 824, 830, 839, 844, 851, 852, 853, 854,
- 855, 858, 859
+ 516, 523, 541, 551, 563, 576, 594, 640, 714, 715,
+ 750, 752, 754, 756, 758, 761, 763, 768, 774, 776,
+ 780, 782, 786, 790, 791, 793, 795, 798, 805, 807,
+ 809, 811, 813, 815, 817, 819, 821, 823, 825, 827,
+ 829, 832, 835, 838, 840, 842, 844, 848, 849, 855,
+ 861, 870, 875, 882, 883, 884, 885, 886, 889, 890
};
static const char * const yytname[] = { 0,
@@ -248,12 +248,12 @@ static const short yyr1[] = { 0,
68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 71, 71, 72, 72, 72, 72, 73, 73, 74,
- 74, 74, 75, 75, 75, 75, 75, 76, 76, 77,
- 78, 78, 78, 78, 78, 79, 79, 79, 79, 79,
+ 68, 71, 71, 72, 72, 72, 72, 72, 73, 73,
+ 74, 74, 74, 74, 74, 75, 75, 75, 75, 75,
+ 76, 76, 77, 78, 78, 78, 78, 78, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
- 80, 80, 80, 80, 81, 81, 82, 82, 82, 82,
- 82, 83, 83
+ 79, 79, 79, 79, 79, 79, 79, 80, 80, 80,
+ 80, 81, 81, 82, 82, 82, 82, 82, 83, 83
};
static const short yyr2[] = { 0,
@@ -263,190 +263,196 @@ static const short yyr2[] = { 0,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 5, 3, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
- 1, 1, 3, 3, 3, 2, 1, 1, 2, 1,
- 2, 1, 3, 2, 1, 2, 1, 2, 3, 2,
- 1, 3, 6, 8, 9, 1, 1, 1, 1, 2,
- 3, 2, 3, 2, 2, 2, 2, 1, 2, 1,
- 1, 1, 1, 1, 1, 3, 1, 1, 1, 1,
- 1, 1, 1
+ 1, 1, 3, 3, 3, 4, 2, 1, 1, 2,
+ 1, 2, 1, 2, 1, 3, 2, 1, 2, 1,
+ 2, 3, 2, 1, 3, 6, 8, 9, 1, 1,
+ 1, 1, 2, 3, 2, 3, 3, 4, 2, 3,
+ 2, 2, 2, 2, 1, 2, 1, 1, 1, 1,
+ 1, 1, 3, 1, 1, 1, 1, 1, 1, 1
};
static const short yydefact[] = { 0,
- 49, 53, 51, 54, 60, 112, 113, 86, 50, 52,
- 0, 0, 0, 0, 98, 0, 100, 88, 89, 87,
+ 49, 53, 51, 54, 60, 119, 120, 89, 50, 52,
+ 0, 0, 0, 0, 105, 0, 107, 91, 92, 90,
56, 57, 58, 61, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 2, 0, 55, 0, 67, 107,
- 108, 109, 110, 111, 94, 95, 96, 0, 13, 101,
- 103, 104, 102, 97, 66, 103, 104, 99, 90, 92,
- 5, 6, 4, 9, 10, 0, 81, 0, 68, 7,
- 8, 0, 68, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 2, 0, 55, 0, 68, 114,
+ 115, 116, 117, 118, 101, 102, 103, 0, 13, 108,
+ 110, 111, 109, 104, 67, 110, 111, 106, 95, 93,
+ 99, 5, 6, 4, 9, 10, 0, 84, 0, 69,
+ 7, 8, 0, 69, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 11, 12, 0, 0,
- 0, 19, 0, 0, 0, 91, 93, 26, 0, 0,
- 0, 70, 0, 0, 69, 72, 75, 77, 0, 0,
- 3, 48, 47, 0, 45, 44, 43, 42, 41, 35,
- 36, 39, 40, 37, 38, 33, 34, 27, 31, 32,
- 28, 29, 30, 0, 14, 0, 16, 0, 21, 64,
- 65, 59, 0, 25, 82, 71, 0, 78, 80, 0,
- 0, 74, 76, 24, 0, 15, 17, 18, 22, 0,
- 0, 79, 73, 46, 0, 20, 0, 23, 83, 0,
- 84, 105, 0, 0, 85, 106, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 11, 12, 0,
+ 0, 0, 19, 0, 0, 0, 97, 94, 100, 96,
+ 26, 0, 0, 0, 73, 71, 0, 0, 70, 75,
+ 78, 80, 0, 0, 3, 48, 47, 0, 45, 44,
+ 43, 42, 41, 35, 36, 39, 40, 37, 38, 33,
+ 34, 27, 31, 32, 28, 29, 30, 0, 14, 0,
+ 16, 0, 21, 64, 0, 65, 59, 98, 0, 25,
+ 85, 74, 72, 0, 81, 83, 0, 0, 77, 79,
+ 24, 0, 15, 17, 18, 22, 0, 66, 0, 82,
+ 76, 46, 0, 20, 0, 23, 86, 0, 87, 112,
+ 0, 0, 88, 113, 0, 0, 0
};
-static const short yydefgoto[] = { 187,
- 66, 35, 149, 170, 36, 37, 67, 115, 116, 117,
- 118, 68, 38, 54, 183, 151, 39
+static const short yydefgoto[] = { 195,
+ 67, 35, 153, 177, 36, 37, 68, 119, 120, 121,
+ 122, 69, 38, 54, 191, 156, 39
};
-static const short yypact[] = { 159,
--32768,-32768,-32768,-32768,-32768,-32768, -13,-32768,-32768,-32768,
- 21, 21, 21, 220, 121, 21, 124, -15, 3,-32768,
--32768,-32768,-32768,-32768, 159, 159, 159, 159, 159, 159,
- 159, 159, 272, 80, 306, 32,-32768, 99,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768, 159, 508,-32768,
- 100, 101,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- 508, 508, 508, 508, 508, -4,-32768, -52, 79, 508,
- 508, -55, 92, 159, 159, 159, 159, 159, 159, 159,
- 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
- 159, 159, 159, 159, 159, 159,-32768,-32768, 90, 104,
- 159,-32768, 21, 21, -35,-32768,-32768,-32768, 272, 159,
- 110, 157, 25, 209,-32768, 30,-32768,-32768, 159, 84,
- 306, 306, 306, 271, 358, 382, 405, 427, 448, 467,
- 467, 144, 144, 144, 144, 480, 480, 492, 502, 502,
- 508, 508, 508, 159,-32768, 159,-32768, 66, 159, 111,
--32768, 31, 122, 508,-32768,-32768, 94,-32768,-32768, 95,
- 98,-32768,-32768, 508, 159, 508, 508,-32768, 306, 63,
- 107,-32768,-32768, 333, 159,-32768, 116, 306, 128, 239,
--32768, 145, 64, 272,-32768, 145, 204, 205,-32768
+static const short yypact[] = { 167,
+-32768,-32768,-32768,-32768,-32768,-32768, 7,-32768,-32768,-32768,
+ 22, 22, 22, 228, 190, 22, 245, 119, -7,-32768,
+-32768,-32768,-32768,-32768, 167, 167, 167, 167, 167, 167,
+ 167, 167, 528, 60, 303, 33,-32768, 76,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768, 167, 216,-32768,
+ 134, 77,-32768,-32768,-32768,-32768,-32768,-32768, 78,-32768,
+-32768, 216, 216, 216, 216, 216, 59,-32768, -52, 75,
+ 216, 216, -55, 80, 167, 167, 167, 167, 167, 167,
+ 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
+ 167, 167, 167, 167, 167, 167, 167,-32768,-32768, 198,
+ 249, 167,-32768, 22, 138, -34, 90,-32768,-32768,-32768,
+-32768, 528, 167, 96, 165, 165, 26, 104,-32768, -50,
+-32768,-32768, 167, 47, 303, 303, 303, 268, 355, 379,
+ 402, 424, 445, 464, 464, 479, 479, 479, 479, 506,
+ 506, 518, 529, 529, 216, 216, 216, 167,-32768, 167,
+-32768, -2, 167, 98, 22,-32768, 32,-32768, 113, 216,
+-32768,-32768,-32768, 62,-32768,-32768, 82, 106,-32768,-32768,
+ 216, 167, 216, 216,-32768, 303, 68,-32768, 137,-32768,
+-32768, 330, 167,-32768, 132, 303, 139, 105,-32768, 141,
+ 73, 528,-32768, 141, 196, 201,-32768
};
static const short yypgoto[] = {-32768,
- 2, -14,-32768,-32768,-32768,-32768,-32768, -8,-32768, 93,
- 105, -32, -26, 193,-32768, 8,-32768
+ 1, -14,-32768,-32768,-32768,-32768,-32768, 36,-32768, 83,
+ 85, -29, -28, 200,-32768, 10,-32768
};
-#define YYLAST 566
+#define YYLAST 587
static const short yytable[] = { 49,
- 72, 34, 109, 69, -62, 109, 73, 59, 119, 110,
- 61, 62, 63, 64, 65, 105, 70, 71, 45, 46,
- 47, 69, 109, 55, 74, 60, 152, 157, 40, 41,
- 42, 43, 44, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 103,
- 17, 18, 19, 20, 21, 22, 23, 108, 24, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
- 142, 143, 153, 28, 29, 158, 113, 161, 30, 31,
- 32, 175, 184, 33, 74, 154, 111, 40, 41, 42,
- 43, 44, 148, 156, 164, 160, 145, 147, 74, 120,
- 150, 40, 41, 42, 43, 44, 104, 40, 41, 42,
- 43, 44, 106, 107, 176, 185, 168, 112, -63, 166,
- 50, 167, 155, 50, 169, 113, 114, 154, 144, 171,
- 112, 51, 52, 53, 56, 57, 53, 182, 113, 114,
- 174, 186, 146, 73, 172, 177, 173, 73, 155, 159,
- 178, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 179, 17, 18,
- 19, 20, 21, 22, 23, 180, 24, 89, 90, 91,
- 92, 93, 94, 95, 96, 25, 97, 98, 99, 100,
- 101, 102, 109, 188, 189, 112, 26, 27, 162, 58,
- 0, 28, 29, 113, 114, 0, 30, 31, 32, 0,
- 163, 33, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 0, 17,
- 18, 19, 20, 21, 22, 23, 0, 24, 8, 0,
- 0, 11, 12, 13, 0, 15, 25, 112, 17, 18,
- 19, 20, 0, 0, 0, 113, 114, 26, 27, 0,
- 159, 0, 28, 29, 0, 0, 0, 48, 31, 32,
- 0, 8, 33, 0, 11, 12, 13, 0, 15, 0,
- 0, 17, 18, 19, 20, 0, 0, 75, 0, 0,
- 181, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 34, 70, 112, 73, 74, 112, 117, 168, 123, 113,
+ 62, 63, 64, 65, 66, 61, 71, 72, 106, 70,
+ 45, 46, 47, 112, -62, 55, 75, 157, 164, 40,
+ 41, 42, 43, 44, 1, 2, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 104, 17, 18, 19, 20, 21, 22, 23, 175, 24,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 159, 28, 29, 165, 75, 75, 30,
+ 31, 32, 114, 105, 33, 161, 183, 124, 160, 109,
+ 110, 192, 152, 40, 41, 42, 43, 44, 171, 149,
+ 151, 115, 158, 154, 8, -63, 115, 11, 12, 13,
+ 111, 15, 180, 116, 17, 18, 19, 20, 116, 184,
+ 179, 117, 118, 173, 193, 174, 117, 118, 176, 59,
+ 115, 60, 160, 181, 161, 40, 41, 42, 43, 44,
+ 162, 163, 116, 167, 107, 155, 108, 182, 190, 74,
+ 117, 118, 194, 74, 178, 166, 189, 166, 186, 1,
+ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 185, 17, 18, 19, 20,
+ 21, 22, 23, 187, 24, 196, 188, 155, 112, 50,
+ 197, 115, 169, 25, 170, 40, 41, 42, 43, 44,
+ 51, 52, 53, 116, 26, 27, 58, 0, 0, 28,
+ 29, 117, 118, 0, 30, 31, 32, 0, 0, 33,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 148, 17, 18, 19,
+ 20, 21, 22, 23, 50, 24, 40, 41, 42, 43,
+ 44, 0, 0, 0, 25, 56, 57, 53, 98, 99,
+ 100, 101, 102, 103, 0, 26, 27, 0, 0, 0,
+ 28, 29, 0, 0, 0, 48, 31, 32, 0, 0,
+ 33, 0, 0, 0, 76, 0, 0, 150, 77, 78,
+ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 89, 90, 91, 92, 93, 94, 95, 96, 97, 0,
+ 98, 99, 100, 101, 102, 103, 0, 0, 0, 76,
+ 0, 0, 172, 77, 78, 79, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
+ 94, 95, 96, 97, 0, 98, 99, 100, 101, 102,
+ 103, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 97, 0, 98, 99, 100, 101, 102, 103, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 0, 98, 99, 100,
+ 101, 102, 103, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 0, 98, 99, 100, 101, 102, 103, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 0, 97, 98, 99, 100, 101, 102, 0,
- 0, 0, 75, 0, 0, 165, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 0, 97, 98,
- 99, 100, 101, 102, 77, 78, 79, 80, 81, 82,
+ 95, 96, 97, 0, 98, 99, 100, 101, 102, 103,
83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 0, 97, 98, 99, 100, 101,
- 102, 79, 80, 81, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95, 96, 0,
- 97, 98, 99, 100, 101, 102, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 0, 97, 98, 99, 100, 101, 102,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 0, 97, 98, 99,
- 100, 101, 102, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 0, 97,
- 98, 99, 100, 101, 102, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95, 96, 0,
- 97, 98, 99, 100, 101, 102, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 0, 97,
- 98, 99, 100, 101, 102, 91, 92, 93, 94, 95,
- 96, 0, 97, 98, 99, 100, 101, 102, 92, 93,
- 94, 95, 96, 0, 97, 98, 99, 100, 101, 102,
- 94, 95, 96, 0, 97, 98, 99, 100, 101, 102,
- 97, 98, 99, 100, 101, 102
+ 93, 94, 95, 96, 97, 0, 98, 99, 100, 101,
+ 102, 103, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 0, 98, 99, 100,
+ 101, 102, 103, 86, 87, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 97, 0, 98, 99, 100, 101,
+ 102, 103, 90, 91, 92, 93, 94, 95, 96, 97,
+ 0, 98, 99, 100, 101, 102, 103, 8, 0, 0,
+ 11, 12, 13, 0, 15, 0, 0, 17, 18, 19,
+ 20, 92, 93, 94, 95, 96, 97, 0, 98, 99,
+ 100, 101, 102, 103, 93, 94, 95, 96, 97, 0,
+ 98, 99, 100, 101, 102, 103, 0, 95, 96, 97,
+ 0, 98, 99, 100, 101, 102, 103
};
static const short yycheck[] = { 14,
- 33, 0, 58, 30, 18, 58, 33, 23, 64, 62,
- 25, 26, 27, 28, 29, 48, 31, 32, 11, 12,
- 13, 48, 58, 16, 29, 23, 62, 3, 8, 9,
- 10, 11, 12, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 18,
- 20, 21, 22, 23, 24, 25, 26, 62, 28, 74,
+ 0, 30, 58, 33, 33, 58, 57, 58, 64, 62,
+ 25, 26, 27, 28, 29, 23, 31, 32, 48, 48,
+ 11, 12, 13, 58, 18, 16, 29, 62, 3, 8,
+ 9, 10, 11, 12, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 18, 20, 21, 22, 23, 24, 25, 26, 61, 28,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 109, 53, 54, 61, 57, 58, 58, 59,
- 60, 29, 29, 63, 29, 110, 18, 8, 9, 10,
- 11, 12, 101, 112, 119, 114, 99, 100, 29, 18,
- 103, 8, 9, 10, 11, 12, 18, 8, 9, 10,
- 11, 12, 23, 23, 62, 62, 61, 49, 18, 144,
- 10, 146, 49, 10, 149, 57, 58, 152, 49, 18,
- 49, 21, 22, 23, 21, 22, 23, 180, 57, 58,
- 165, 184, 49, 180, 61, 49, 62, 184, 49, 62,
- 175, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 62, 20, 21,
- 22, 23, 24, 25, 26, 58, 28, 44, 45, 46,
- 47, 48, 49, 50, 51, 37, 53, 54, 55, 56,
- 57, 58, 58, 0, 0, 49, 48, 49, 116, 17,
- -1, 53, 54, 57, 58, -1, 58, 59, 60, -1,
- 116, 63, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, -1, 20,
- 21, 22, 23, 24, 25, 26, -1, 28, 10, -1,
- -1, 13, 14, 15, -1, 17, 37, 49, 20, 21,
- 22, 23, -1, -1, -1, 57, 58, 48, 49, -1,
- 62, -1, 53, 54, -1, -1, -1, 58, 59, 60,
- -1, 10, 63, -1, 13, 14, 15, -1, 17, -1,
- -1, 20, 21, 22, 23, -1, -1, 27, -1, -1,
- 62, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, -1,
- -1, -1, 27, -1, -1, 65, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, -1, 53, 54,
- 55, 56, 57, 58, 32, 33, 34, 35, 36, 37,
+ 95, 96, 97, 112, 53, 54, 61, 29, 29, 58,
+ 59, 60, 18, 18, 63, 49, 29, 18, 113, 23,
+ 23, 29, 102, 8, 9, 10, 11, 12, 123, 100,
+ 101, 37, 23, 104, 10, 18, 37, 13, 14, 15,
+ 62, 17, 61, 49, 20, 21, 22, 23, 49, 62,
+ 18, 57, 58, 148, 62, 150, 57, 58, 153, 21,
+ 37, 23, 157, 62, 49, 8, 9, 10, 11, 12,
+ 115, 116, 49, 118, 21, 60, 23, 172, 188, 188,
+ 57, 58, 192, 192, 155, 62, 62, 62, 183, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 49, 20, 21, 22, 23,
+ 24, 25, 26, 62, 28, 0, 58, 60, 58, 10,
+ 0, 37, 120, 37, 120, 8, 9, 10, 11, 12,
+ 21, 22, 23, 49, 48, 49, 17, -1, -1, 53,
+ 54, 57, 58, -1, 58, 59, 60, -1, -1, 63,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 49, 20, 21, 22,
+ 23, 24, 25, 26, 10, 28, 8, 9, 10, 11,
+ 12, -1, -1, -1, 37, 21, 22, 23, 53, 54,
+ 55, 56, 57, 58, -1, 48, 49, -1, -1, -1,
+ 53, 54, -1, -1, -1, 58, 59, 60, -1, -1,
+ 63, -1, -1, -1, 27, -1, -1, 49, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, -1, -1, -1, 27,
+ -1, -1, 65, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
- 58, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
+ 58, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 47, 48,
- 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
+ 56, 57, 58, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
- 53, 54, 55, 56, 57, 58
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 44, 45, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 10, -1, -1,
+ 13, 14, 15, -1, 17, -1, -1, 20, 21, 22,
+ 23, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, -1, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58
};
#define YYPURE 1
@@ -778,199 +784,199 @@ yyreduce:
switch (yyn) {
case 3:
-#line 224 "expread.y"
+#line 224 "../expread.y"
{ write_exp_elt_opcode (BINOP_COMMA); ;
break;}
case 4:
-#line 229 "expread.y"
+#line 229 "../expread.y"
{ write_exp_elt_opcode (UNOP_IND); ;
break;}
case 5:
-#line 232 "expread.y"
+#line 232 "../expread.y"
{ write_exp_elt_opcode (UNOP_ADDR); ;
break;}
case 6:
-#line 235 "expread.y"
+#line 235 "../expread.y"
{ write_exp_elt_opcode (UNOP_NEG); ;
break;}
case 7:
-#line 239 "expread.y"
+#line 239 "../expread.y"
{ write_exp_elt_opcode (UNOP_ZEROP); ;
break;}
case 8:
-#line 243 "expread.y"
+#line 243 "../expread.y"
{ write_exp_elt_opcode (UNOP_LOGNOT); ;
break;}
case 9:
-#line 247 "expread.y"
+#line 247 "../expread.y"
{ write_exp_elt_opcode (UNOP_PREINCREMENT); ;
break;}
case 10:
-#line 251 "expread.y"
+#line 251 "../expread.y"
{ write_exp_elt_opcode (UNOP_PREDECREMENT); ;
break;}
case 11:
-#line 255 "expread.y"
+#line 255 "../expread.y"
{ write_exp_elt_opcode (UNOP_POSTINCREMENT); ;
break;}
case 12:
-#line 259 "expread.y"
+#line 259 "../expread.y"
{ write_exp_elt_opcode (UNOP_POSTDECREMENT); ;
break;}
case 13:
-#line 263 "expread.y"
+#line 263 "../expread.y"
{ write_exp_elt_opcode (UNOP_SIZEOF); ;
break;}
case 14:
-#line 267 "expread.y"
+#line 267 "../expread.y"
{ write_exp_elt_opcode (STRUCTOP_PTR);
write_exp_string (yyvsp[0].sval);
write_exp_elt_opcode (STRUCTOP_PTR); ;
break;}
case 15:
-#line 273 "expread.y"
+#line 273 "../expread.y"
{ write_exp_elt_opcode (STRUCTOP_MPTR); ;
break;}
case 16:
-#line 277 "expread.y"
+#line 277 "../expread.y"
{ write_exp_elt_opcode (STRUCTOP_STRUCT);
write_exp_string (yyvsp[0].sval);
write_exp_elt_opcode (STRUCTOP_STRUCT); ;
break;}
case 17:
-#line 283 "expread.y"
+#line 283 "../expread.y"
{ write_exp_elt_opcode (STRUCTOP_MEMBER); ;
break;}
case 18:
-#line 287 "expread.y"
+#line 287 "../expread.y"
{ write_exp_elt_opcode (BINOP_SUBSCRIPT); ;
break;}
case 19:
-#line 293 "expread.y"
+#line 293 "../expread.y"
{ start_arglist (); ;
break;}
case 20:
-#line 295 "expread.y"
+#line 295 "../expread.y"
{ write_exp_elt_opcode (OP_FUNCALL);
write_exp_elt_longcst ((LONGEST) end_arglist ());
write_exp_elt_opcode (OP_FUNCALL); ;
break;}
case 22:
-#line 304 "expread.y"
+#line 304 "../expread.y"
{ arglist_len = 1; ;
break;}
case 23:
-#line 308 "expread.y"
+#line 308 "../expread.y"
{ arglist_len++; ;
break;}
case 24:
-#line 312 "expread.y"
+#line 312 "../expread.y"
{ write_exp_elt_opcode (UNOP_MEMVAL);
write_exp_elt_type (yyvsp[-2].tval);
write_exp_elt_opcode (UNOP_MEMVAL); ;
break;}
case 25:
-#line 318 "expread.y"
+#line 318 "../expread.y"
{ write_exp_elt_opcode (UNOP_CAST);
write_exp_elt_type (yyvsp[-2].tval);
write_exp_elt_opcode (UNOP_CAST); ;
break;}
case 26:
-#line 324 "expread.y"
+#line 324 "../expread.y"
{ ;
break;}
case 27:
-#line 330 "expread.y"
+#line 330 "../expread.y"
{ write_exp_elt_opcode (BINOP_REPEAT); ;
break;}
case 28:
-#line 334 "expread.y"
+#line 334 "../expread.y"
{ write_exp_elt_opcode (BINOP_MUL); ;
break;}
case 29:
-#line 338 "expread.y"
+#line 338 "../expread.y"
{ write_exp_elt_opcode (BINOP_DIV); ;
break;}
case 30:
-#line 342 "expread.y"
+#line 342 "../expread.y"
{ write_exp_elt_opcode (BINOP_REM); ;
break;}
case 31:
-#line 346 "expread.y"
+#line 346 "../expread.y"
{ write_exp_elt_opcode (BINOP_ADD); ;
break;}
case 32:
-#line 350 "expread.y"
+#line 350 "../expread.y"
{ write_exp_elt_opcode (BINOP_SUB); ;
break;}
case 33:
-#line 354 "expread.y"
+#line 354 "../expread.y"
{ write_exp_elt_opcode (BINOP_LSH); ;
break;}
case 34:
-#line 358 "expread.y"
+#line 358 "../expread.y"
{ write_exp_elt_opcode (BINOP_RSH); ;
break;}
case 35:
-#line 362 "expread.y"
+#line 362 "../expread.y"
{ write_exp_elt_opcode (BINOP_EQUAL); ;
break;}
case 36:
-#line 366 "expread.y"
+#line 366 "../expread.y"
{ write_exp_elt_opcode (BINOP_NOTEQUAL); ;
break;}
case 37:
-#line 370 "expread.y"
+#line 370 "../expread.y"
{ write_exp_elt_opcode (BINOP_LEQ); ;
break;}
case 38:
-#line 374 "expread.y"
+#line 374 "../expread.y"
{ write_exp_elt_opcode (BINOP_GEQ); ;
break;}
case 39:
-#line 378 "expread.y"
+#line 378 "../expread.y"
{ write_exp_elt_opcode (BINOP_LESS); ;
break;}
case 40:
-#line 382 "expread.y"
+#line 382 "../expread.y"
{ write_exp_elt_opcode (BINOP_GTR); ;
break;}
case 41:
-#line 386 "expread.y"
+#line 386 "../expread.y"
{ write_exp_elt_opcode (BINOP_LOGAND); ;
break;}
case 42:
-#line 390 "expread.y"
+#line 390 "../expread.y"
{ write_exp_elt_opcode (BINOP_LOGXOR); ;
break;}
case 43:
-#line 394 "expread.y"
+#line 394 "../expread.y"
{ write_exp_elt_opcode (BINOP_LOGIOR); ;
break;}
case 44:
-#line 398 "expread.y"
+#line 398 "../expread.y"
{ write_exp_elt_opcode (BINOP_AND); ;
break;}
case 45:
-#line 402 "expread.y"
+#line 402 "../expread.y"
{ write_exp_elt_opcode (BINOP_OR); ;
break;}
case 46:
-#line 406 "expread.y"
+#line 406 "../expread.y"
{ write_exp_elt_opcode (TERNOP_COND); ;
break;}
case 47:
-#line 410 "expread.y"
+#line 410 "../expread.y"
{ write_exp_elt_opcode (BINOP_ASSIGN); ;
break;}
case 48:
-#line 414 "expread.y"
+#line 414 "../expread.y"
{ write_exp_elt_opcode (BINOP_ASSIGN_MODIFY);
write_exp_elt_opcode (yyvsp[-1].opcode);
write_exp_elt_opcode (BINOP_ASSIGN_MODIFY); ;
break;}
case 49:
-#line 420 "expread.y"
+#line 420 "../expread.y"
{ write_exp_elt_opcode (OP_LONG);
if (yyvsp[0].lval == (int) yyvsp[0].lval || yyvsp[0].lval == (unsigned int) yyvsp[0].lval)
write_exp_elt_type (builtin_type_int);
@@ -980,7 +986,7 @@ case 49:
write_exp_elt_opcode (OP_LONG); ;
break;}
case 50:
-#line 430 "expread.y"
+#line 430 "../expread.y"
{ YYSTYPE val;
parse_number (yyvsp[0].ssym.stoken.ptr, yyvsp[0].ssym.stoken.length, 0, &val);
write_exp_elt_opcode (OP_LONG);
@@ -993,7 +999,7 @@ case 50:
write_exp_elt_opcode (OP_LONG); ;
break;}
case 51:
-#line 443 "expread.y"
+#line 443 "../expread.y"
{
write_exp_elt_opcode (OP_LONG);
if (yyvsp[0].ulval == (unsigned int) yyvsp[0].ulval)
@@ -1005,7 +1011,7 @@ case 51:
;
break;}
case 52:
-#line 455 "expread.y"
+#line 455 "../expread.y"
{ YYSTYPE val;
parse_number (yyvsp[0].ssym.stoken.ptr, yyvsp[0].ssym.stoken.length, 0, &val);
write_exp_elt_opcode (OP_LONG);
@@ -1018,57 +1024,57 @@ case 52:
;
break;}
case 53:
-#line 468 "expread.y"
+#line 468 "../expread.y"
{ write_exp_elt_opcode (OP_LONG);
write_exp_elt_type (builtin_type_char);
write_exp_elt_longcst ((LONGEST) yyvsp[0].lval);
write_exp_elt_opcode (OP_LONG); ;
break;}
case 54:
-#line 475 "expread.y"
+#line 475 "../expread.y"
{ write_exp_elt_opcode (OP_DOUBLE);
write_exp_elt_type (builtin_type_double);
write_exp_elt_dblcst (yyvsp[0].dval);
write_exp_elt_opcode (OP_DOUBLE); ;
break;}
case 56:
-#line 485 "expread.y"
+#line 485 "../expread.y"
{ write_exp_elt_opcode (OP_LAST);
write_exp_elt_longcst ((LONGEST) yyvsp[0].lval);
write_exp_elt_opcode (OP_LAST); ;
break;}
case 57:
-#line 491 "expread.y"
+#line 491 "../expread.y"
{ write_exp_elt_opcode (OP_REGISTER);
write_exp_elt_longcst ((LONGEST) yyvsp[0].lval);
write_exp_elt_opcode (OP_REGISTER); ;
break;}
case 58:
-#line 497 "expread.y"
+#line 497 "../expread.y"
{ write_exp_elt_opcode (OP_INTERNALVAR);
write_exp_elt_intern (yyvsp[0].ivar);
write_exp_elt_opcode (OP_INTERNALVAR); ;
break;}
case 59:
-#line 503 "expread.y"
+#line 503 "../expread.y"
{ write_exp_elt_opcode (OP_LONG);
write_exp_elt_type (builtin_type_int);
write_exp_elt_longcst ((LONGEST) TYPE_LENGTH (yyvsp[-1].tval));
write_exp_elt_opcode (OP_LONG); ;
break;}
case 60:
-#line 510 "expread.y"
+#line 510 "../expread.y"
{ write_exp_elt_opcode (OP_STRING);
write_exp_string (yyvsp[0].sval);
write_exp_elt_opcode (OP_STRING); ;
break;}
case 61:
-#line 517 "expread.y"
+#line 517 "../expread.y"
{ write_exp_elt_opcode (OP_THIS);
write_exp_elt_opcode (OP_THIS); ;
break;}
case 62:
-#line 524 "expread.y"
+#line 524 "../expread.y"
{
if (yyvsp[0].ssym.sym != 0)
yyval.bval = SYMBOL_BLOCK_VALUE (yyvsp[0].ssym.sym);
@@ -1077,7 +1083,8 @@ case 62:
struct symtab *tem =
lookup_symtab (copy_name (yyvsp[0].ssym.stoken));
if (tem)
- yyval.bval = BLOCKVECTOR_BLOCK (BLOCKVECTOR (tem), 1);
+ yyval.bval = BLOCKVECTOR_BLOCK
+ (BLOCKVECTOR (tem), STATIC_BLOCK);
else
error ("No file or function \"%s\".",
copy_name (yyvsp[0].ssym.stoken));
@@ -1085,7 +1092,7 @@ case 62:
;
break;}
case 63:
-#line 541 "expread.y"
+#line 542 "../expread.y"
{ struct symbol *tem
= lookup_symbol (copy_name (yyvsp[0].sval), yyvsp[-2].bval,
VAR_NAMESPACE, 0, NULL);
@@ -1095,7 +1102,7 @@ case 63:
yyval.bval = SYMBOL_BLOCK_VALUE (tem); ;
break;}
case 64:
-#line 551 "expread.y"
+#line 552 "../expread.y"
{ struct symbol *sym;
sym = lookup_symbol (copy_name (yyvsp[0].sval), yyvsp[-2].bval,
VAR_NAMESPACE, 0, NULL);
@@ -1107,7 +1114,7 @@ case 64:
write_exp_elt_opcode (OP_VAR_VALUE); ;
break;}
case 65:
-#line 563 "expread.y"
+#line 564 "../expread.y"
{
struct type *type = yyvsp[-2].tval;
if (TYPE_CODE (type) != TYPE_CODE_STRUCT
@@ -1122,7 +1129,27 @@ case 65:
;
break;}
case 66:
-#line 576 "expread.y"
+#line 577 "../expread.y"
+{
+ struct type *type = yyvsp[-3].tval;
+ if (TYPE_CODE (type) != TYPE_CODE_STRUCT
+ && TYPE_CODE (type) != TYPE_CODE_UNION)
+ error ("`%s' is not defined as an aggregate type.",
+ TYPE_NAME (type));
+
+ if (strcmp (type_name_no_tag (type), yyvsp[0].sval.ptr))
+ error ("invalid destructor `%s::~%s'",
+ type_name_no_tag (type), yyvsp[0].sval.ptr);
+
+ write_exp_elt_opcode (OP_SCOPE);
+ write_exp_elt_type (type);
+ write_exp_string (yyvsp[0].sval);
+ write_exp_elt_opcode (OP_SCOPE);
+ write_exp_elt_opcode (UNOP_LOGNOT);
+ ;
+ break;}
+case 67:
+#line 595 "../expread.y"
{
char *name = copy_name (yyvsp[0].sval);
struct symbol *sym;
@@ -1167,8 +1194,8 @@ case 66:
error ("No symbol \"%s\" in current context.", name);
;
break;}
-case 67:
-#line 622 "expread.y"
+case 68:
+#line 641 "../expread.y"
{ struct symbol *sym = yyvsp[0].ssym.sym;
if (sym)
@@ -1240,8 +1267,8 @@ case 67:
}
;
break;}
-case 69:
-#line 697 "expread.y"
+case 70:
+#line 716 "../expread.y"
{
/* This is where the interesting stuff happens. */
int done = 0;
@@ -1275,191 +1302,215 @@ case 69:
yyval.tval = follow_type;
;
break;}
-case 70:
-#line 732 "expread.y"
+case 71:
+#line 751 "../expread.y"
{ push_type (tp_pointer); yyval.voidval = 0; ;
break;}
-case 71:
-#line 734 "expread.y"
+case 72:
+#line 753 "../expread.y"
{ push_type (tp_pointer); yyval.voidval = yyvsp[0].voidval; ;
break;}
case 73:
-#line 739 "expread.y"
-{ yyval.voidval = yyvsp[-1].voidval; ;
+#line 755 "../expread.y"
+{ push_type (tp_reference); yyval.voidval = 0; ;
break;}
case 74:
-#line 741 "expread.y"
+#line 757 "../expread.y"
+{ push_type (tp_reference); yyval.voidval = yyvsp[0].voidval; ;
+ break;}
+case 76:
+#line 762 "../expread.y"
+{ yyval.voidval = yyvsp[-1].voidval; ;
+ break;}
+case 77:
+#line 764 "../expread.y"
{
push_type ((enum type_pieces) yyvsp[0].lval);
push_type (tp_array);
;
break;}
-case 75:
-#line 746 "expread.y"
+case 78:
+#line 769 "../expread.y"
{
push_type ((enum type_pieces) yyvsp[0].lval);
push_type (tp_array);
yyval.voidval = 0;
;
break;}
-case 76:
-#line 752 "expread.y"
+case 79:
+#line 775 "../expread.y"
{ push_type (tp_function); ;
break;}
-case 77:
-#line 754 "expread.y"
+case 80:
+#line 777 "../expread.y"
{ push_type (tp_function); ;
break;}
-case 78:
-#line 758 "expread.y"
+case 81:
+#line 781 "../expread.y"
{ yyval.lval = -1; ;
break;}
-case 79:
-#line 760 "expread.y"
+case 82:
+#line 783 "../expread.y"
{ yyval.lval = yyvsp[-1].lval; ;
break;}
-case 80:
-#line 764 "expread.y"
+case 83:
+#line 787 "../expread.y"
{ yyval.voidval = 0; ;
break;}
-case 82:
-#line 769 "expread.y"
+case 85:
+#line 792 "../expread.y"
{ yyval.tval = lookup_member_type (builtin_type_int, yyvsp[-2].tval); ;
break;}
-case 83:
-#line 771 "expread.y"
+case 86:
+#line 794 "../expread.y"
{ yyval.tval = lookup_member_type (yyvsp[-5].tval, yyvsp[-3].tval); ;
break;}
-case 84:
-#line 773 "expread.y"
+case 87:
+#line 796 "../expread.y"
{ yyval.tval = lookup_member_type
(lookup_function_type (yyvsp[-7].tval), yyvsp[-5].tval); ;
break;}
-case 85:
-#line 776 "expread.y"
+case 88:
+#line 799 "../expread.y"
{ yyval.tval = lookup_member_type
(lookup_function_type (yyvsp[-8].tval), yyvsp[-6].tval);
free (yyvsp[-1].tvec); ;
break;}
-case 86:
-#line 783 "expread.y"
+case 89:
+#line 806 "../expread.y"
{ yyval.tval = yyvsp[0].tsym.type; ;
break;}
-case 87:
-#line 785 "expread.y"
+case 90:
+#line 808 "../expread.y"
{ yyval.tval = builtin_type_int; ;
break;}
-case 88:
-#line 787 "expread.y"
+case 91:
+#line 810 "../expread.y"
{ yyval.tval = builtin_type_long; ;
break;}
-case 89:
-#line 789 "expread.y"
+case 92:
+#line 812 "../expread.y"
{ yyval.tval = builtin_type_short; ;
break;}
-case 90:
-#line 791 "expread.y"
+case 93:
+#line 814 "../expread.y"
{ yyval.tval = builtin_type_long; ;
break;}
-case 91:
-#line 793 "expread.y"
+case 94:
+#line 816 "../expread.y"
{ yyval.tval = builtin_type_unsigned_long; ;
break;}
-case 92:
-#line 795 "expread.y"
+case 95:
+#line 818 "../expread.y"
+{ yyval.tval = builtin_type_long_long; ;
+ break;}
+case 96:
+#line 820 "../expread.y"
+{ yyval.tval = builtin_type_long_long; ;
+ break;}
+case 97:
+#line 822 "../expread.y"
+{ yyval.tval = builtin_type_unsigned_long_long; ;
+ break;}
+case 98:
+#line 824 "../expread.y"
+{ yyval.tval = builtin_type_unsigned_long_long; ;
+ break;}
+case 99:
+#line 826 "../expread.y"
{ yyval.tval = builtin_type_short; ;
break;}
-case 93:
-#line 797 "expread.y"
+case 100:
+#line 828 "../expread.y"
{ yyval.tval = builtin_type_unsigned_short; ;
break;}
-case 94:
-#line 799 "expread.y"
+case 101:
+#line 830 "../expread.y"
{ yyval.tval = lookup_struct (copy_name (yyvsp[0].sval),
expression_context_block); ;
break;}
-case 95:
-#line 802 "expread.y"
+case 102:
+#line 833 "../expread.y"
{ yyval.tval = lookup_union (copy_name (yyvsp[0].sval),
expression_context_block); ;
break;}
-case 96:
-#line 805 "expread.y"
+case 103:
+#line 836 "../expread.y"
{ yyval.tval = lookup_enum (copy_name (yyvsp[0].sval),
expression_context_block); ;
break;}
-case 97:
-#line 808 "expread.y"
+case 104:
+#line 839 "../expread.y"
{ yyval.tval = lookup_unsigned_typename (TYPE_NAME(yyvsp[0].tsym.type)); ;
break;}
-case 98:
-#line 810 "expread.y"
+case 105:
+#line 841 "../expread.y"
{ yyval.tval = builtin_type_unsigned_int; ;
break;}
-case 99:
-#line 812 "expread.y"
+case 106:
+#line 843 "../expread.y"
{ yyval.tval = yyvsp[0].tsym.type; ;
break;}
-case 100:
-#line 814 "expread.y"
+case 107:
+#line 845 "../expread.y"
{ yyval.tval = builtin_type_int; ;
break;}
-case 102:
-#line 819 "expread.y"
+case 109:
+#line 850 "../expread.y"
{
yyval.tsym.stoken.ptr = "int";
yyval.tsym.stoken.length = 3;
yyval.tsym.type = builtin_type_int;
;
break;}
-case 103:
-#line 825 "expread.y"
+case 110:
+#line 856 "../expread.y"
{
yyval.tsym.stoken.ptr = "long";
yyval.tsym.stoken.length = 4;
yyval.tsym.type = builtin_type_long;
;
break;}
-case 104:
-#line 831 "expread.y"
+case 111:
+#line 862 "../expread.y"
{
yyval.tsym.stoken.ptr = "short";
yyval.tsym.stoken.length = 5;
yyval.tsym.type = builtin_type_short;
;
break;}
-case 105:
-#line 840 "expread.y"
+case 112:
+#line 871 "../expread.y"
{ yyval.tvec = (struct type **)xmalloc (sizeof (struct type *) * 2);
yyval.tvec[0] = (struct type *)0;
yyval.tvec[1] = yyvsp[0].tval;
;
break;}
-case 106:
-#line 845 "expread.y"
+case 113:
+#line 876 "../expread.y"
{ int len = sizeof (struct type *) * ++(yyvsp[-2].ivec[0]);
yyval.tvec = (struct type **)xrealloc (yyvsp[-2].tvec, len);
yyval.tvec[yyval.ivec[0]] = yyvsp[0].tval;
;
break;}
-case 107:
-#line 851 "expread.y"
+case 114:
+#line 882 "../expread.y"
{ yyval.sval = yyvsp[0].ssym.stoken; ;
break;}
-case 108:
-#line 852 "expread.y"
+case 115:
+#line 883 "../expread.y"
{ yyval.sval = yyvsp[0].ssym.stoken; ;
break;}
-case 109:
-#line 853 "expread.y"
+case 116:
+#line 884 "../expread.y"
{ yyval.sval = yyvsp[0].tsym.stoken; ;
break;}
-case 110:
-#line 854 "expread.y"
+case 117:
+#line 885 "../expread.y"
{ yyval.sval = yyvsp[0].ssym.stoken; ;
break;}
-case 111:
-#line 855 "expread.y"
+case 118:
+#line 886 "../expread.y"
{ yyval.sval = yyvsp[0].ssym.stoken; ;
break;}
}
@@ -1615,7 +1666,7 @@ yyerrhandle:
yystate = yyn;
goto yynewstate;
}
-#line 870 "expread.y"
+#line 901 "../expread.y"
/* Begin counting arguments for a function call,
@@ -1900,13 +1951,13 @@ struct token
enum exp_opcode opcode;
};
-static struct token tokentab3[] =
+const static struct token tokentab3[] =
{
{">>=", ASSIGN_MODIFY, BINOP_RSH},
{"<<=", ASSIGN_MODIFY, BINOP_LSH}
};
-static struct token tokentab2[] =
+const static struct token tokentab2[] =
{
{"+=", ASSIGN_MODIFY, BINOP_ADD},
{"-=", ASSIGN_MODIFY, BINOP_SUB},