develooper Front page | perl.cvs.parrot | Postings from January 2009

[svn:parrot] r34769 - trunk/compilers/imcc

From:
chromatic
Date:
January 1, 2009 14:58
Subject:
[svn:parrot] r34769 - trunk/compilers/imcc
Message ID:
20090101225703.2E633CB9FA@x12.develooper.com
Author: chromatic
Date: Thu Jan  1 14:57:02 2009
New Revision: 34769

Modified:
   trunk/compilers/imcc/imcc.y
   trunk/compilers/imcc/imcparser.c
   trunk/compilers/imcc/imcparser.h

Log:
[IMCC] Removed parameter assertions which made --maintainer mode not compile.

Modified: trunk/compilers/imcc/imcc.y
==============================================================================
--- trunk/compilers/imcc/imcc.y	(original)
+++ trunk/compilers/imcc/imcc.y	Thu Jan  1 14:57:02 2009
@@ -329,7 +329,6 @@
     va_list ap;
     SymReg *r[IMCC_MAX_FIX_REGS];
     int i;
-    ASSERT_ARGS(mk_i);
 
     for (p = opname, q = fmt; *q && *q != ' ';)
         *p++ = *q++;
@@ -500,7 +499,6 @@
 {
 
     Instruction * const ins = _mk_instruction("", "%s:", 1, &r0, 0);
-    ASSERT_ARGS(ins_label);
     ins->type               = ITLABEL;
     r0->first_ins           = ins;
 
@@ -515,7 +513,6 @@
 iLABEL(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r0))
 {
     Instruction * const i = INS_LABEL(interp, unit, r0, 1);
-    ASSERT_ARGS(ilabel);
     i->line               = IMCC_INFO(interp)->line;
 
     clear_state(interp);
@@ -527,7 +524,6 @@
 iSUBROUTINE(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r))
 {
     Instruction * const i = iLABEL(interp, unit, r);
-    ASSERT_ARGS(isubroutine);
 
     r->type    = (r->type & VT_ENCODED) ? VT_PCC_SUB|VT_ENCODED : VT_PCC_SUB;
     r->pcc_sub = mem_allocate_zeroed_typed(pcc_sub_t);
@@ -547,7 +543,6 @@
 iINDEXFETCH(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGIN(SymReg *r0), ARGIN(SymReg *r1),
         ARGIN(SymReg *r2))
 {
-    ASSERT_ARGS(iindexfetch);
     IMCC_INFO(interp) -> keyvec |= KEY_BIT(2);
     return MK_I(interp, unit, "set %s, %s[%s]", 3, r0, r1, r2);
 }
@@ -561,7 +556,6 @@
 iINDEXSET(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGIN(SymReg *r0), ARGIN(SymReg *r1),
         ARGIN(SymReg *r2))
 {
-    ASSERT_ARGS(iindexset);
     if (r0->set == 'P') {
         IMCC_INFO(interp)->keyvec |= KEY_BIT(1);
         MK_I(interp, unit, "set %s[%s], %s", 3, r0, r1, r2);
@@ -590,7 +584,6 @@
     char         name[128];
     SymReg      *r;
     Instruction *i;
-    ASSERT_ARGS(imcc_create_itcall_label);
 
     snprintf(name, sizeof (name), "%cpcc_sub_call_%d", IMCC_INTERNAL_CHAR,
         IMCC_INFO(interp)->cnr++);
@@ -634,7 +627,6 @@
 void
 IMCC_itcall_sub(PARROT_INTERP, ARGIN(SymReg *sub))
 {
-    ASSERT_ARGS(imcc_itcall_sub);
     IMCC_INFO(interp)->cur_call->pcc_sub->sub = sub;
     if (IMCC_INFO(interp)->cur_obj) {
         if (IMCC_INFO(interp)->cur_obj->set != 'P')

Modified: trunk/compilers/imcc/imcparser.c
==============================================================================
--- trunk/compilers/imcc/imcparser.c	(original)
+++ trunk/compilers/imcc/imcparser.c	Thu Jan  1 14:57:02 2009
@@ -470,6 +470,7 @@
     ARGMOD(SymReg *r0))
         __attribute__nonnull__(1)
         __attribute__nonnull__(3)
+        FUNC_MODIFIES(*unit)
         FUNC_MODIFIES(*r0);
 
 PARROT_WARN_UNUSED_RESULT
@@ -483,6 +484,7 @@
     ARGMOD(SymReg *r))
         __attribute__nonnull__(1)
         __attribute__nonnull__(3)
+        FUNC_MODIFIES(*unit)
         FUNC_MODIFIES(*r);
 
 PARROT_IGNORABLE_RESULT
@@ -545,6 +547,68 @@
         __attribute__nonnull__(3)
         FUNC_MODIFIES(*r);
 
+#define ASSERT_ARGS_add_pcc_named_arg assert(interp); \
+                                      assert(cur_call); \
+                                      assert(name); \
+                                      assert(value);
+#define ASSERT_ARGS_add_pcc_named_param assert(interp); \
+                                        assert(cur_call); \
+                                        assert(name); \
+                                        assert(value);
+#define ASSERT_ARGS_add_pcc_named_result assert(interp); \
+                                         assert(cur_call); \
+                                         assert(name); \
+                                         assert(value);
+#define ASSERT_ARGS_add_pcc_named_return assert(interp); \
+                                         assert(cur_call); \
+                                         assert(name); \
+                                         assert(value);
+#define ASSERT_ARGS_adv_named_set assert(interp); \
+                                  assert(name);
+#define ASSERT_ARGS_begin_return_or_yield assert(interp);
+#define ASSERT_ARGS_clear_state assert(interp);
+#define ASSERT_ARGS_do_loadlib assert(interp); \
+                               assert(lib);
+#define ASSERT_ARGS_func_ins assert(interp); \
+                             assert(unit); \
+                             assert(lhs); \
+                             assert(op); \
+                             assert(r);
+#define ASSERT_ARGS_iINDEXFETCH assert(interp); \
+                                assert(unit); \
+                                assert(r0); \
+                                assert(r1); \
+                                assert(r2);
+#define ASSERT_ARGS_iINDEXSET assert(interp); \
+                              assert(unit); \
+                              assert(r0); \
+                              assert(r1); \
+                              assert(r2);
+#define ASSERT_ARGS_iLABEL assert(interp); \
+                           assert(r0);
+#define ASSERT_ARGS_inv_op assert(op);
+#define ASSERT_ARGS_iSUBROUTINE assert(interp); \
+                                assert(r);
+#define ASSERT_ARGS_MK_I assert(interp); \
+                         assert(unit); \
+                         assert(fmt);
+#define ASSERT_ARGS_mk_pmc_const assert(interp); \
+                                 assert(unit); \
+                                 assert(type); \
+                                 assert(left); \
+                                 assert(constant);
+#define ASSERT_ARGS_mk_pmc_const_named assert(interp); \
+                                       assert(unit); \
+                                       assert(name); \
+                                       assert(left); \
+                                       assert(constant);
+#define ASSERT_ARGS_mk_sub_address_fromc assert(interp); \
+                                         assert(name);
+#define ASSERT_ARGS_mk_sub_address_u assert(interp); \
+                                     assert(name);
+#define ASSERT_ARGS_set_lexical assert(interp); \
+                                assert(r); \
+                                assert(name);
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
@@ -621,6 +685,7 @@
     SymReg *rhs;
     SymReg *r[3];
     char   *name;
+    ASSERT_ARGS(mk_pmc_const);
 
     if (left->type == VTADDRESS) {      /* IDENTIFIER */
         if (IMCC_INFO(interp)->state->pasm_file) {
@@ -676,6 +741,7 @@
     const int ascii       = (*constant == '\'' || *constant == '"');
     char   *unquoted_name = str_dup(name + 1);
     size_t  name_length   = strlen(unquoted_name) - 1;
+    ASSERT_ARGS(mk_pmc_const_named);
 
     unquoted_name[name_length] = '\0';
 
@@ -728,6 +794,7 @@
          ARGMOD(SymReg **r), int n, int keyv, int emit)
 {
     int i;
+    ASSERT_ARGS(func_ins);
     /* shift regs up by 1 */
     for (i = n - 1; i >= 0; --i)
         r[i+1] = r[i];
@@ -745,6 +812,7 @@
 static void
 clear_state(PARROT_INTERP)
 {
+    ASSERT_ARGS(clear_state);
     IMCC_INFO(interp) -> nargs = 0;
     IMCC_INFO(interp) -> keyvec = 0;
 }
@@ -829,6 +897,7 @@
 inv_op(ARGIN(const char *op))
 {
     int n;
+    ASSERT_ARGS(inv_op);
     return get_neg_op(op, &n);
 }
 
@@ -859,6 +928,7 @@
     /* name is a quoted sub name */
     SymReg *r;
     char *name_copy                  = str_dup(name + 1);
+    ASSERT_ARGS(mk_sub_address_fromc);
     name_copy[strlen(name_copy) - 1] = '\0';
 
     r = mk_sub_address(interp, name_copy);
@@ -872,6 +942,7 @@
 mk_sub_address_u(PARROT_INTERP, ARGIN(const char *name))
 {
     SymReg * const r = mk_sub_address(interp, name);
+    ASSERT_ARGS(mk_sub_address_u);
     r->type         |= VT_ENCODED;
 
     return r;
@@ -899,6 +970,7 @@
     Instruction *i;
     Instruction * const ins = IMCC_INFO(interp)->cur_unit->instructions;
     char                name[128];
+    ASSERT_ARGS(begin_return_or_yield);
 
     if (!ins || !ins->symregs[0] || !(ins->symregs[0]->type & VT_PCC_SUB))
         IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -917,6 +989,7 @@
 set_lexical(PARROT_INTERP, ARGMOD(SymReg *r), ARGIN(const char *name))
 {
     SymReg * const n = mk_const(interp, name, 'S');
+    ASSERT_ARGS(set_lexical);
 
     r->usage |= U_LEXICAL;
 
@@ -935,6 +1008,7 @@
         ARGIN(SymReg *value))
 {
     SymReg * const r = mk_const(interp, name, 'S');
+    ASSERT_ARGS(add_pcc_named_arg);
 
     r->type  |= VT_NAMED;
 
@@ -947,6 +1021,7 @@
         ARGIN(SymReg *value))
 {
     SymReg * const r = mk_const(interp, name, 'S');
+    ASSERT_ARGS(add_pcc_named_result);
     r->type         |= VT_NAMED;
 
     add_pcc_result(cur_call, r);
@@ -958,6 +1033,7 @@
         ARGIN(SymReg *value))
 {
     SymReg * const r = mk_const(interp, name, 'S');
+    ASSERT_ARGS(add_pcc_named_param);
     r->type         |= VT_NAMED;
 
     add_pcc_arg(cur_call, r);
@@ -969,6 +1045,7 @@
         ARGIN(SymReg *value))
 {
     SymReg * const r = mk_const(interp, name, 'S');
+    ASSERT_ARGS(add_pcc_named_return);
     r->type         |= VT_NAMED;
 
     add_pcc_result(cur_call, r);
@@ -979,6 +1056,7 @@
 static void
 adv_named_set(PARROT_INTERP, ARGIN(char *name))
 {
+    ASSERT_ARGS(adv_named_set);
     if (IMCC_INFO(interp)->adv_named_id) {
         IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
                     "Named parameter with more than one name.\n");
@@ -991,6 +1069,7 @@
 {
     STRING * const s = string_unescape_cstring(interp, lib + 1, '"', NULL);
     PMC    *ignored  = Parrot_load_lib(interp, s, NULL);
+    ASSERT_ARGS(do_loadlib);
     UNUSED(ignored);
     Parrot_register_HLL_lib(interp, s);
 }
@@ -1019,7 +1098,7 @@
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 678 "compilers/imcc/imcc.y"
+#line 757 "compilers/imcc/imcc.y"
 {
     IdList * idlist;
     int t;
@@ -1027,8 +1106,8 @@
     SymReg * sr;
     Instruction *i;
 }
-/* Line 193 of yacc.c.  */
-#line 1021 "compilers/imcc/imcparser.c"
+/* Line 187 of yacc.c.  */
+#line 1100 "compilers/imcc/imcparser.c"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -1041,7 +1120,7 @@
 
 
 /* Line 216 of yacc.c.  */
-#line 1034 "compilers/imcc/imcparser.c"
+#line 1113 "compilers/imcc/imcparser.c"
 
 #ifdef short
 # undef short
@@ -1467,41 +1546,41 @@
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   772,   772,   776,   777,   781,   782,   783,   789,   795,
-     796,   797,   798,   802,   803,   812,   817,   825,   834,   852,
-     852,   861,   861,   867,   867,   874,   875,   879,   880,   884,
-     885,   886,   887,   888,   889,   890,   893,   893,   902,   901,
-     913,   917,   925,   929,   933,   933,   945,   947,   951,   966,
-     974,   979,   983,   987,   978,   999,  1000,  1001,  1014,  1014,
-    1018,  1032,  1036,  1042,  1051,  1057,  1066,  1072,  1081,  1087,
-    1096,  1104,  1109,  1120,  1123,  1128,  1136,  1137,  1138,  1139,
-    1140,  1151,  1162,  1165,  1167,  1172,  1171,  1204,  1205,  1209,
-    1210,  1214,  1215,  1219,  1220,  1224,  1225,  1226,  1227,  1228,
-    1229,  1230,  1231,  1232,  1233,  1234,  1235,  1236,  1237,  1241,
-    1246,  1250,  1255,  1259,  1263,  1268,  1277,  1278,  1282,  1287,
-    1288,  1296,  1297,  1297,  1312,  1313,  1317,  1318,  1319,  1320,
-    1321,  1322,  1327,  1327,  1330,  1338,  1338,  1344,  1345,  1350,
-    1358,  1359,  1364,  1372,  1376,  1381,  1380,  1393,  1394,  1398,
-    1399,  1409,  1413,  1423,  1431,  1432,  1444,  1448,  1450,  1451,
-    1452,  1453,  1457,  1458,  1462,  1463,  1467,  1476,  1477,  1488,
-    1495,  1504,  1514,  1515,  1520,  1521,  1522,  1522,  1538,  1542,
-    1542,  1549,  1550,  1550,  1556,  1562,  1563,  1575,  1576,  1577,
-    1578,  1579,  1580,  1584,  1585,  1586,  1587,  1591,  1604,  1606,
-    1608,  1610,  1612,  1614,  1616,  1618,  1620,  1622,  1624,  1626,
-    1628,  1632,  1634,  1636,  1639,  1646,  1645,  1654,  1655,  1656,
-    1657,  1665,  1666,  1667,  1671,  1672,  1673,  1674,  1675,  1676,
-    1677,  1678,  1679,  1680,  1681,  1682,  1683,  1684,  1685,  1686,
-    1687,  1688,  1689,  1690,  1691,  1692,  1693,  1699,  1698,  1710,
-    1717,  1718,  1719,  1720,  1721,  1722,  1723,  1724,  1725,  1726,
-    1727,  1728,  1729,  1734,  1745,  1746,  1747,  1748,  1754,  1768,
-    1774,  1780,  1779,  1788,  1789,  1799,  1809,  1815,  1824,  1828,
-    1829,  1833,  1834,  1837,  1841,  1845,  1855,  1860,  1870,  1875,
-    1879,  1880,  1884,  1888,  1892,  1899,  1903,  1907,  1914,  1915,
-    1919,  1920,  1921,  1922,  1923,  1924,  1928,  1929,  1933,  1934,
-    1938,  1939,  1943,  1944,  1951,  1958,  1959,  1960,  1964,  1965,
-    1969,  1970,  1974,  1975,  1979,  1980,  1984,  1984,  1997,  1997,
-    2010,  2011,  2019,  2028,  2029,  2030,  2031,  2032,  2036,  2037,
-    2038,  2039
+       0,   851,   851,   855,   856,   860,   861,   862,   868,   874,
+     875,   876,   877,   881,   882,   891,   896,   904,   913,   931,
+     931,   940,   940,   946,   946,   953,   954,   958,   959,   963,
+     964,   965,   966,   967,   968,   969,   972,   972,   981,   980,
+     992,   996,  1004,  1008,  1012,  1012,  1024,  1026,  1030,  1045,
+    1053,  1058,  1062,  1066,  1057,  1078,  1079,  1080,  1093,  1093,
+    1097,  1111,  1115,  1121,  1130,  1136,  1145,  1151,  1160,  1166,
+    1175,  1183,  1188,  1199,  1202,  1207,  1215,  1216,  1217,  1218,
+    1219,  1230,  1241,  1244,  1246,  1251,  1250,  1283,  1284,  1288,
+    1289,  1293,  1294,  1298,  1299,  1303,  1304,  1305,  1306,  1307,
+    1308,  1309,  1310,  1311,  1312,  1313,  1314,  1315,  1316,  1320,
+    1325,  1329,  1334,  1338,  1342,  1347,  1356,  1357,  1361,  1366,
+    1367,  1375,  1376,  1376,  1391,  1392,  1396,  1397,  1398,  1399,
+    1400,  1401,  1406,  1406,  1409,  1417,  1417,  1423,  1424,  1429,
+    1437,  1438,  1443,  1451,  1455,  1460,  1459,  1472,  1473,  1477,
+    1478,  1488,  1492,  1502,  1510,  1511,  1523,  1527,  1529,  1530,
+    1531,  1532,  1536,  1537,  1541,  1542,  1546,  1555,  1556,  1567,
+    1574,  1583,  1593,  1594,  1599,  1600,  1601,  1601,  1617,  1621,
+    1621,  1628,  1629,  1629,  1635,  1641,  1642,  1654,  1655,  1656,
+    1657,  1658,  1659,  1663,  1664,  1665,  1666,  1670,  1683,  1685,
+    1687,  1689,  1691,  1693,  1695,  1697,  1699,  1701,  1703,  1705,
+    1707,  1711,  1713,  1715,  1718,  1725,  1724,  1733,  1734,  1735,
+    1736,  1744,  1745,  1746,  1750,  1751,  1752,  1753,  1754,  1755,
+    1756,  1757,  1758,  1759,  1760,  1761,  1762,  1763,  1764,  1765,
+    1766,  1767,  1768,  1769,  1770,  1771,  1772,  1778,  1777,  1789,
+    1796,  1797,  1798,  1799,  1800,  1801,  1802,  1803,  1804,  1805,
+    1806,  1807,  1808,  1813,  1824,  1825,  1826,  1827,  1833,  1847,
+    1853,  1859,  1858,  1867,  1868,  1878,  1888,  1894,  1903,  1907,
+    1908,  1912,  1913,  1916,  1920,  1924,  1934,  1939,  1949,  1954,
+    1958,  1959,  1963,  1967,  1971,  1978,  1982,  1986,  1993,  1994,
+    1998,  1999,  2000,  2001,  2002,  2003,  2007,  2008,  2012,  2013,
+    2017,  2018,  2022,  2023,  2030,  2037,  2038,  2039,  2043,  2044,
+    2048,  2049,  2053,  2054,  2058,  2059,  2063,  2063,  2076,  2076,
+    2089,  2090,  2098,  2107,  2108,  2109,  2110,  2111,  2115,  2116,
+    2117,  2118
 };
 #endif
 
@@ -2863,22 +2942,22 @@
   switch (yyn)
     {
         case 2:
-#line 772 "compilers/imcc/imcc.y"
+#line 851 "compilers/imcc/imcc.y"
     { if (yynerrs) YYABORT; (yyval.i) = 0; }
     break;
 
   case 5:
-#line 781 "compilers/imcc/imcc.y"
+#line 860 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 6:
-#line 782 "compilers/imcc/imcc.y"
+#line 861 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 7:
-#line 784 "compilers/imcc/imcc.y"
+#line 863 "compilers/imcc/imcc.y"
     {
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -2887,7 +2966,7 @@
     break;
 
   case 8:
-#line 790 "compilers/imcc/imcc.y"
+#line 869 "compilers/imcc/imcc.y"
     {
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -2896,32 +2975,32 @@
     break;
 
   case 9:
-#line 795 "compilers/imcc/imcc.y"
+#line 874 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 10:
-#line 796 "compilers/imcc/imcc.y"
+#line 875 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 11:
-#line 797 "compilers/imcc/imcc.y"
+#line 876 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 12:
-#line 798 "compilers/imcc/imcc.y"
+#line 877 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 13:
-#line 802 "compilers/imcc/imcc.y"
+#line 881 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 14:
-#line 804 "compilers/imcc/imcc.y"
+#line 883 "compilers/imcc/imcc.y"
     {
            (yyval.i) = 0;
            do_loadlib(interp, (yyvsp[(2) - (3)].s));
@@ -2930,7 +3009,7 @@
     break;
 
   case 15:
-#line 813 "compilers/imcc/imcc.y"
+#line 892 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
            set_filename(interp, (yyvsp[(4) - (5)].s));
@@ -2938,14 +3017,14 @@
     break;
 
   case 16:
-#line 818 "compilers/imcc/imcc.y"
+#line 897 "compilers/imcc/imcc.y"
     {
            set_filename(interp, (yyvsp[(2) - (3)].s));
          }
     break;
 
   case 17:
-#line 826 "compilers/imcc/imcc.y"
+#line 905 "compilers/imcc/imcc.y"
     {
             STRING * const hll_name = string_unescape_cstring(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
             CONTEXT(interp)->current_HLL =
@@ -2957,7 +3036,7 @@
     break;
 
   case 18:
-#line 835 "compilers/imcc/imcc.y"
+#line 914 "compilers/imcc/imcc.y"
     {
             Parrot_Context *ctx           = CONTEXT(interp);
             STRING * const  built_in_name =
@@ -2975,12 +3054,12 @@
     break;
 
   case 19:
-#line 852 "compilers/imcc/imcc.y"
+#line 931 "compilers/imcc/imcc.y"
     { is_def = 1; }
     break;
 
   case 20:
-#line 853 "compilers/imcc/imcc.y"
+#line 932 "compilers/imcc/imcc.y"
     {
              mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
              mem_sys_free((yyvsp[(4) - (6)].s));
@@ -2989,12 +3068,12 @@
     break;
 
   case 21:
-#line 861 "compilers/imcc/imcc.y"
+#line 940 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 22:
-#line 862 "compilers/imcc/imcc.y"
+#line 941 "compilers/imcc/imcc.y"
     {
            (yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
            is_def = 0;
@@ -3002,12 +3081,12 @@
     break;
 
   case 23:
-#line 867 "compilers/imcc/imcc.y"
+#line 946 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 24:
-#line 868 "compilers/imcc/imcc.y"
+#line 947 "compilers/imcc/imcc.y"
     {
            (yyval.i) = mk_pmc_const_named(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
            is_def = 0;
@@ -3015,37 +3094,37 @@
     break;
 
   case 29:
-#line 884 "compilers/imcc/imcc.y"
+#line 963 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 30:
-#line 885 "compilers/imcc/imcc.y"
+#line 964 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 31:
-#line 886 "compilers/imcc/imcc.y"
+#line 965 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 32:
-#line 887 "compilers/imcc/imcc.y"
+#line 966 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 33:
-#line 888 "compilers/imcc/imcc.y"
+#line 967 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 36:
-#line 893 "compilers/imcc/imcc.y"
+#line 972 "compilers/imcc/imcc.y"
     { clear_state(interp); }
     break;
 
   case 37:
-#line 895 "compilers/imcc/imcc.y"
+#line 974 "compilers/imcc/imcc.y"
     {
            (yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
                     (yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
@@ -3055,7 +3134,7 @@
     break;
 
   case 38:
-#line 902 "compilers/imcc/imcc.y"
+#line 981 "compilers/imcc/imcc.y"
     {
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
@@ -3063,7 +3142,7 @@
     break;
 
   case 39:
-#line 907 "compilers/imcc/imcc.y"
+#line 986 "compilers/imcc/imcc.y"
     {
            (yyval.i) = iSUBROUTINE(interp,
                     IMCC_INFO(interp)->cur_unit,
@@ -3073,14 +3152,14 @@
     break;
 
   case 40:
-#line 914 "compilers/imcc/imcc.y"
+#line 993 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
          }
     break;
 
   case 41:
-#line 918 "compilers/imcc/imcc.y"
+#line 997 "compilers/imcc/imcc.y"
     {
            SymReg *r = mk_pasm_reg(interp, (yyvsp[(4) - (4)].s));
            set_lexical(interp, r, (yyvsp[(2) - (4)].s));
@@ -3091,17 +3170,17 @@
     break;
 
   case 42:
-#line 925 "compilers/imcc/imcc.y"
+#line 1004 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;}
     break;
 
   case 44:
-#line 933 "compilers/imcc/imcc.y"
+#line 1012 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
     break;
 
   case 45:
-#line 936 "compilers/imcc/imcc.y"
+#line 1015 "compilers/imcc/imcc.y"
     {
            /* if (optimizer_level & OPT_PASM)
                          imc_compile_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3112,7 +3191,7 @@
     break;
 
   case 48:
-#line 952 "compilers/imcc/imcc.y"
+#line 1031 "compilers/imcc/imcc.y"
     {
            int re_open = 0;
            (yyval.i) = 0;
@@ -3127,7 +3206,7 @@
     break;
 
   case 49:
-#line 967 "compilers/imcc/imcc.y"
+#line 1046 "compilers/imcc/imcc.y"
     {
             if (IMCC_INFO(interp)->in_slice)
                 IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -3138,26 +3217,26 @@
     break;
 
   case 50:
-#line 974 "compilers/imcc/imcc.y"
+#line 1053 "compilers/imcc/imcc.y"
     { (yyval.sr) = NULL; }
     break;
 
   case 51:
-#line 979 "compilers/imcc/imcc.y"
+#line 1058 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
          }
     break;
 
   case 52:
-#line 983 "compilers/imcc/imcc.y"
+#line 1062 "compilers/imcc/imcc.y"
     {
            iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
          }
     break;
 
   case 53:
-#line 987 "compilers/imcc/imcc.y"
+#line 1066 "compilers/imcc/imcc.y"
     {
           IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(5) - (6)].t);
           if (!IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid) {
@@ -3168,22 +3247,22 @@
     break;
 
   case 54:
-#line 995 "compilers/imcc/imcc.y"
+#line 1074 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 55:
-#line 999 "compilers/imcc/imcc.y"
+#line 1078 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 56:
-#line 1000 "compilers/imcc/imcc.y"
+#line 1079 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 57:
-#line 1002 "compilers/imcc/imcc.y"
+#line 1081 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                  add_pcc_named_param(interp, IMCC_INFO(interp)->cur_call,
@@ -3196,17 +3275,17 @@
     break;
 
   case 58:
-#line 1014 "compilers/imcc/imcc.y"
+#line 1093 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 59:
-#line 1014 "compilers/imcc/imcc.y"
+#line 1093 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(3) - (3)].sr); is_def=0; }
     break;
 
   case 60:
-#line 1019 "compilers/imcc/imcc.y"
+#line 1098 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(3) - (3)].t) & VT_UNIQUE_REG)
                (yyval.sr) = mk_ident_ur(interp, (yyvsp[(2) - (3)].s), (yyvsp[(1) - (3)].t));
@@ -3218,12 +3297,12 @@
     break;
 
   case 61:
-#line 1032 "compilers/imcc/imcc.y"
+#line 1111 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 62:
-#line 1037 "compilers/imcc/imcc.y"
+#line 1116 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
@@ -3232,7 +3311,7 @@
     break;
 
   case 63:
-#line 1043 "compilers/imcc/imcc.y"
+#line 1122 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3241,7 +3320,7 @@
     break;
 
   case 64:
-#line 1052 "compilers/imcc/imcc.y"
+#line 1131 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->vtable_name = NULL;
@@ -3250,7 +3329,7 @@
     break;
 
   case 65:
-#line 1058 "compilers/imcc/imcc.y"
+#line 1137 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->vtable_name = (yyvsp[(3) - (4)].s);
@@ -3259,7 +3338,7 @@
     break;
 
   case 66:
-#line 1067 "compilers/imcc/imcc.y"
+#line 1146 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = NULL;
@@ -3268,7 +3347,7 @@
     break;
 
   case 67:
-#line 1073 "compilers/imcc/imcc.y"
+#line 1152 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
@@ -3277,7 +3356,7 @@
     break;
 
   case 68:
-#line 1082 "compilers/imcc/imcc.y"
+#line 1161 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
@@ -3286,7 +3365,7 @@
     break;
 
   case 69:
-#line 1088 "compilers/imcc/imcc.y"
+#line 1167 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
@@ -3295,7 +3374,7 @@
     break;
 
   case 70:
-#line 1097 "compilers/imcc/imcc.y"
+#line 1176 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
@@ -3303,7 +3382,7 @@
     break;
 
   case 71:
-#line 1105 "compilers/imcc/imcc.y"
+#line 1184 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->subid = NULL;
@@ -3311,7 +3390,7 @@
     break;
 
   case 72:
-#line 1110 "compilers/imcc/imcc.y"
+#line 1189 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3321,14 +3400,14 @@
     break;
 
   case 73:
-#line 1120 "compilers/imcc/imcc.y"
+#line 1199 "compilers/imcc/imcc.y"
     {
            add_pcc_multi(IMCC_INFO(interp)->cur_call, NULL);
          }
     break;
 
   case 74:
-#line 1124 "compilers/imcc/imcc.y"
+#line 1203 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
@@ -3336,7 +3415,7 @@
     break;
 
   case 75:
-#line 1129 "compilers/imcc/imcc.y"
+#line 1208 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
@@ -3344,27 +3423,27 @@
     break;
 
   case 76:
-#line 1136 "compilers/imcc/imcc.y"
+#line 1215 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); }
     break;
 
   case 77:
-#line 1137 "compilers/imcc/imcc.y"
+#line 1216 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
     break;
 
   case 78:
-#line 1138 "compilers/imcc/imcc.y"
+#line 1217 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "PMC",      'S'); }
     break;
 
   case 79:
-#line 1139 "compilers/imcc/imcc.y"
+#line 1218 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "STRING",   'S'); }
     break;
 
   case 80:
-#line 1141 "compilers/imcc/imcc.y"
+#line 1220 "compilers/imcc/imcc.y"
     {
            SymReg *r;
            if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3378,7 +3457,7 @@
     break;
 
   case 81:
-#line 1152 "compilers/imcc/imcc.y"
+#line 1231 "compilers/imcc/imcc.y"
     {
            SymReg *r;
            if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3392,12 +3471,12 @@
     break;
 
   case 82:
-#line 1162 "compilers/imcc/imcc.y"
+#line 1241 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); }
     break;
 
   case 85:
-#line 1172 "compilers/imcc/imcc.y"
+#line 1251 "compilers/imcc/imcc.y"
     {
            char name[128];
            SymReg *r, *r1;
@@ -3424,82 +3503,82 @@
     break;
 
   case 86:
-#line 1200 "compilers/imcc/imcc.y"
+#line 1279 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 87:
-#line 1204 "compilers/imcc/imcc.y"
+#line 1283 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
     break;
 
   case 88:
-#line 1205 "compilers/imcc/imcc.y"
+#line 1284 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
     break;
 
   case 89:
-#line 1209 "compilers/imcc/imcc.y"
+#line 1288 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; }
     break;
 
   case 90:
-#line 1210 "compilers/imcc/imcc.y"
+#line 1289 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL;  IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
     break;
 
   case 91:
-#line 1214 "compilers/imcc/imcc.y"
+#line 1293 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 93:
-#line 1219 "compilers/imcc/imcc.y"
+#line 1298 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (1)].t); }
     break;
 
   case 94:
-#line 1220 "compilers/imcc/imcc.y"
+#line 1299 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 95:
-#line 1224 "compilers/imcc/imcc.y"
+#line 1303 "compilers/imcc/imcc.y"
     { (yyval.t) = P_LOAD; }
     break;
 
   case 96:
-#line 1225 "compilers/imcc/imcc.y"
+#line 1304 "compilers/imcc/imcc.y"
     { (yyval.t) = P_INIT; }
     break;
 
   case 97:
-#line 1226 "compilers/imcc/imcc.y"
+#line 1305 "compilers/imcc/imcc.y"
     { (yyval.t) = P_MAIN; }
     break;
 
   case 98:
-#line 1227 "compilers/imcc/imcc.y"
+#line 1306 "compilers/imcc/imcc.y"
     { (yyval.t) = P_IMMEDIATE; }
     break;
 
   case 99:
-#line 1228 "compilers/imcc/imcc.y"
+#line 1307 "compilers/imcc/imcc.y"
     { (yyval.t) = P_POSTCOMP; }
     break;
 
   case 100:
-#line 1229 "compilers/imcc/imcc.y"
+#line 1308 "compilers/imcc/imcc.y"
     { (yyval.t) = P_ANON; }
     break;
 
   case 101:
-#line 1230 "compilers/imcc/imcc.y"
+#line 1309 "compilers/imcc/imcc.y"
     { (yyval.t) = P_NEED_LEX; }
     break;
 
   case 109:
-#line 1242 "compilers/imcc/imcc.y"
+#line 1321 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -3507,14 +3586,14 @@
     break;
 
   case 110:
-#line 1247 "compilers/imcc/imcc.y"
+#line 1326 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
          }
     break;
 
   case 111:
-#line 1251 "compilers/imcc/imcc.y"
+#line 1330 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
            IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isNCI;
@@ -3522,21 +3601,21 @@
     break;
 
   case 112:
-#line 1256 "compilers/imcc/imcc.y"
+#line 1335 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
          }
     break;
 
   case 113:
-#line 1260 "compilers/imcc/imcc.y"
+#line 1339 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
          }
     break;
 
   case 114:
-#line 1264 "compilers/imcc/imcc.y"
+#line 1343 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -3544,7 +3623,7 @@
     break;
 
   case 115:
-#line 1269 "compilers/imcc/imcc.y"
+#line 1348 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -3552,27 +3631,27 @@
     break;
 
   case 116:
-#line 1277 "compilers/imcc/imcc.y"
+#line 1356 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 117:
-#line 1278 "compilers/imcc/imcc.y"
+#line 1357 "compilers/imcc/imcc.y"
     { add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
     break;
 
   case 118:
-#line 1282 "compilers/imcc/imcc.y"
+#line 1361 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (2)].sr); }
     break;
 
   case 119:
-#line 1287 "compilers/imcc/imcc.y"
+#line 1366 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 120:
-#line 1289 "compilers/imcc/imcc.y"
+#line 1368 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -3580,17 +3659,17 @@
     break;
 
   case 121:
-#line 1296 "compilers/imcc/imcc.y"
+#line 1375 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 122:
-#line 1297 "compilers/imcc/imcc.y"
+#line 1376 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 123:
-#line 1298 "compilers/imcc/imcc.y"
+#line 1377 "compilers/imcc/imcc.y"
     {
            IdList *l = (yyvsp[(4) - (4)].idlist);
            SymReg *ignored;
@@ -3605,57 +3684,57 @@
     break;
 
   case 124:
-#line 1312 "compilers/imcc/imcc.y"
+#line 1391 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 125:
-#line 1313 "compilers/imcc/imcc.y"
+#line 1392 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 126:
-#line 1317 "compilers/imcc/imcc.y"
+#line 1396 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_FLAT;   }
     break;
 
   case 127:
-#line 1318 "compilers/imcc/imcc.y"
+#line 1397 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_OPTIONAL; }
     break;
 
   case 128:
-#line 1319 "compilers/imcc/imcc.y"
+#line 1398 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_OPT_FLAG; }
     break;
 
   case 129:
-#line 1320 "compilers/imcc/imcc.y"
+#line 1399 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_NAMED; }
     break;
 
   case 130:
-#line 1321 "compilers/imcc/imcc.y"
+#line 1400 "compilers/imcc/imcc.y"
     { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
     break;
 
   case 131:
-#line 1322 "compilers/imcc/imcc.y"
+#line 1401 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_UNIQUE_REG; }
     break;
 
   case 132:
-#line 1327 "compilers/imcc/imcc.y"
+#line 1406 "compilers/imcc/imcc.y"
     { begin_return_or_yield(interp, 0); }
     break;
 
   case 133:
-#line 1329 "compilers/imcc/imcc.y"
+#line 1408 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
     break;
 
   case 134:
-#line 1331 "compilers/imcc/imcc.y"
+#line 1410 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->asm_state = AsmDefault;
            (yyval.i) = 0;
@@ -3663,22 +3742,22 @@
     break;
 
   case 135:
-#line 1338 "compilers/imcc/imcc.y"
+#line 1417 "compilers/imcc/imcc.y"
     { begin_return_or_yield(interp, 1); }
     break;
 
   case 136:
-#line 1340 "compilers/imcc/imcc.y"
+#line 1419 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
     break;
 
   case 137:
-#line 1344 "compilers/imcc/imcc.y"
+#line 1423 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 138:
-#line 1346 "compilers/imcc/imcc.y"
+#line 1425 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -3686,7 +3765,7 @@
     break;
 
   case 139:
-#line 1351 "compilers/imcc/imcc.y"
+#line 1430 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -3694,12 +3773,12 @@
     break;
 
   case 140:
-#line 1358 "compilers/imcc/imcc.y"
+#line 1437 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 141:
-#line 1360 "compilers/imcc/imcc.y"
+#line 1439 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -3707,7 +3786,7 @@
     break;
 
   case 142:
-#line 1365 "compilers/imcc/imcc.y"
+#line 1444 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -3715,17 +3794,17 @@
     break;
 
   case 143:
-#line 1372 "compilers/imcc/imcc.y"
+#line 1451 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 144:
-#line 1376 "compilers/imcc/imcc.y"
+#line 1455 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 145:
-#line 1381 "compilers/imcc/imcc.y"
+#line 1460 "compilers/imcc/imcc.y"
     {
           if (IMCC_INFO(interp)->asm_state == AsmDefault)
               begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
@@ -3733,7 +3812,7 @@
     break;
 
   case 146:
-#line 1386 "compilers/imcc/imcc.y"
+#line 1465 "compilers/imcc/imcc.y"
     {
           IMCC_INFO(interp)->asm_state = AsmDefault;
           (yyval.t) = 0;
@@ -3741,22 +3820,22 @@
     break;
 
   case 147:
-#line 1393 "compilers/imcc/imcc.y"
+#line 1472 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 148:
-#line 1394 "compilers/imcc/imcc.y"
+#line 1473 "compilers/imcc/imcc.y"
     { (yyval.t) = 1; }
     break;
 
   case 149:
-#line 1398 "compilers/imcc/imcc.y"
+#line 1477 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 150:
-#line 1400 "compilers/imcc/imcc.y"
+#line 1479 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -3769,14 +3848,14 @@
     break;
 
   case 151:
-#line 1410 "compilers/imcc/imcc.y"
+#line 1489 "compilers/imcc/imcc.y"
     {
            add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr));
          }
     break;
 
   case 152:
-#line 1414 "compilers/imcc/imcc.y"
+#line 1493 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -3789,61 +3868,61 @@
     break;
 
   case 153:
-#line 1424 "compilers/imcc/imcc.y"
+#line 1503 "compilers/imcc/imcc.y"
     {
            add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr));
          }
     break;
 
   case 156:
-#line 1444 "compilers/imcc/imcc.y"
+#line 1523 "compilers/imcc/imcc.y"
     { clear_state(interp); }
     break;
 
   case 157:
-#line 1449 "compilers/imcc/imcc.y"
+#line 1528 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (2)].i); }
     break;
 
   case 158:
-#line 1450 "compilers/imcc/imcc.y"
+#line 1529 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 159:
-#line 1451 "compilers/imcc/imcc.y"
+#line 1530 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 160:
-#line 1452 "compilers/imcc/imcc.y"
+#line 1531 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 161:
-#line 1453 "compilers/imcc/imcc.y"
+#line 1532 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 162:
-#line 1457 "compilers/imcc/imcc.y"
+#line 1536 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; }
     break;
 
   case 166:
-#line 1468 "compilers/imcc/imcc.y"
+#line 1547 "compilers/imcc/imcc.y"
     {
            (yyval.i) = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
          }
     break;
 
   case 167:
-#line 1476 "compilers/imcc/imcc.y"
+#line 1555 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (3)].i); }
     break;
 
   case 168:
-#line 1478 "compilers/imcc/imcc.y"
+#line 1557 "compilers/imcc/imcc.y"
     {
            if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
                IMCC_warning(interp, "Too many errors. Correct some first.\n");
@@ -3854,7 +3933,7 @@
     break;
 
   case 169:
-#line 1489 "compilers/imcc/imcc.y"
+#line 1568 "compilers/imcc/imcc.y"
     {
            IdList* l = (yyvsp[(1) - (1)].idlist);
            l->next = NULL;
@@ -3863,7 +3942,7 @@
     break;
 
   case 170:
-#line 1496 "compilers/imcc/imcc.y"
+#line 1575 "compilers/imcc/imcc.y"
     {
            IdList* l = (yyvsp[(3) - (3)].idlist);
            l->next = (yyvsp[(1) - (3)].idlist);
@@ -3872,7 +3951,7 @@
     break;
 
   case 171:
-#line 1505 "compilers/imcc/imcc.y"
+#line 1584 "compilers/imcc/imcc.y"
     {
            IdList* const l = mem_allocate_n_zeroed_typed(1, IdList);
            l->id           = (yyvsp[(1) - (2)].s);
@@ -3882,22 +3961,22 @@
     break;
 
   case 172:
-#line 1514 "compilers/imcc/imcc.y"
+#line 1593 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 173:
-#line 1515 "compilers/imcc/imcc.y"
+#line 1594 "compilers/imcc/imcc.y"
     { (yyval.t) = 1; }
     break;
 
   case 176:
-#line 1522 "compilers/imcc/imcc.y"
+#line 1601 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 177:
-#line 1523 "compilers/imcc/imcc.y"
+#line 1602 "compilers/imcc/imcc.y"
     {
            IdList *l = (yyvsp[(4) - (4)].idlist);
            while (l) {
@@ -3916,19 +3995,19 @@
     break;
 
   case 178:
-#line 1539 "compilers/imcc/imcc.y"
+#line 1618 "compilers/imcc/imcc.y"
     {
            set_lexical(interp, (yyvsp[(4) - (4)].sr), (yyvsp[(2) - (4)].s)); (yyval.i) = 0;
          }
     break;
 
   case 179:
-#line 1542 "compilers/imcc/imcc.y"
+#line 1621 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 180:
-#line 1543 "compilers/imcc/imcc.y"
+#line 1622 "compilers/imcc/imcc.y"
     {
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
            is_def=0;
@@ -3937,12 +4016,12 @@
     break;
 
   case 182:
-#line 1550 "compilers/imcc/imcc.y"
+#line 1629 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 183:
-#line 1551 "compilers/imcc/imcc.y"
+#line 1630 "compilers/imcc/imcc.y"
     {
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
            is_def=0;
@@ -3951,7 +4030,7 @@
     break;
 
   case 184:
-#line 1557 "compilers/imcc/imcc.y"
+#line 1636 "compilers/imcc/imcc.y"
     {
            (yyval.i) = NULL;
            IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL;
@@ -3960,12 +4039,12 @@
     break;
 
   case 185:
-#line 1562 "compilers/imcc/imcc.y"
+#line 1641 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr)); }
     break;
 
   case 186:
-#line 1564 "compilers/imcc/imcc.y"
+#line 1643 "compilers/imcc/imcc.y"
     {
            (yyval.i) = INS(interp,
                     IMCC_INFO(interp)->cur_unit,
@@ -3980,47 +4059,47 @@
     break;
 
   case 187:
-#line 1575 "compilers/imcc/imcc.y"
+#line 1654 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
     break;
 
   case 188:
-#line 1576 "compilers/imcc/imcc.y"
+#line 1655 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 189:
-#line 1577 "compilers/imcc/imcc.y"
+#line 1656 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 192:
-#line 1580 "compilers/imcc/imcc.y"
+#line 1659 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;}
     break;
 
   case 193:
-#line 1584 "compilers/imcc/imcc.y"
+#line 1663 "compilers/imcc/imcc.y"
     { (yyval.t) = 'I'; }
     break;
 
   case 194:
-#line 1585 "compilers/imcc/imcc.y"
+#line 1664 "compilers/imcc/imcc.y"
     { (yyval.t) = 'N'; }
     break;
 
   case 195:
-#line 1586 "compilers/imcc/imcc.y"
+#line 1665 "compilers/imcc/imcc.y"
     { (yyval.t) = 'S'; }
     break;
 
   case 196:
-#line 1587 "compilers/imcc/imcc.y"
+#line 1666 "compilers/imcc/imcc.y"
     { (yyval.t) = 'P'; }
     break;
 
   case 197:
-#line 1592 "compilers/imcc/imcc.y"
+#line 1671 "compilers/imcc/imcc.y"
     {
            /* there'd normally be a str_dup() here, but the lexer already
             * copied the string, so it's safe to use directly */
@@ -4033,87 +4112,87 @@
     break;
 
   case 198:
-#line 1605 "compilers/imcc/imcc.y"
+#line 1684 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));  }
     break;
 
   case 199:
-#line 1607 "compilers/imcc/imcc.y"
+#line 1686 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr));  }
     break;
 
   case 200:
-#line 1609 "compilers/imcc/imcc.y"
+#line 1688 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));  }
     break;
 
   case 201:
-#line 1611 "compilers/imcc/imcc.y"
+#line 1690 "compilers/imcc/imcc.y"
     { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); }
     break;
 
   case 202:
-#line 1613 "compilers/imcc/imcc.y"
+#line 1692 "compilers/imcc/imcc.y"
     { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
     break;
 
   case 203:
-#line 1615 "compilers/imcc/imcc.y"
+#line 1694 "compilers/imcc/imcc.y"
     { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].s), (yyvsp[(6) - (6)].sr), 1); }
     break;
 
   case 204:
-#line 1617 "compilers/imcc/imcc.y"
+#line 1696 "compilers/imcc/imcc.y"
     { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); }
     break;
 
   case 205:
-#line 1619 "compilers/imcc/imcc.y"
+#line 1698 "compilers/imcc/imcc.y"
     { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].s), NULL, 1); }
     break;
 
   case 206:
-#line 1621 "compilers/imcc/imcc.y"
+#line 1700 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
     break;
 
   case 207:
-#line 1623 "compilers/imcc/imcc.y"
+#line 1702 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
     break;
 
   case 208:
-#line 1625 "compilers/imcc/imcc.y"
+#line 1704 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
     break;
 
   case 209:
-#line 1627 "compilers/imcc/imcc.y"
+#line 1706 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
     break;
 
   case 210:
-#line 1629 "compilers/imcc/imcc.y"
+#line 1708 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].sr), (yyvsp[(6) - (7)].sr)); }
     break;
 
   case 211:
-#line 1633 "compilers/imcc/imcc.y"
+#line 1712 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
     break;
 
   case 212:
-#line 1635 "compilers/imcc/imcc.y"
+#line 1714 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
     break;
 
   case 213:
-#line 1637 "compilers/imcc/imcc.y"
+#line 1716 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(2) - (7)].sr), (yyvsp[(4) - (7)].sr), (yyvsp[(6) - (7)].sr)); }
     break;
 
   case 214:
-#line 1640 "compilers/imcc/imcc.y"
+#line 1719 "compilers/imcc/imcc.y"
     {
            add_pcc_result((yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
@@ -4122,14 +4201,14 @@
     break;
 
   case 215:
-#line 1646 "compilers/imcc/imcc.y"
+#line 1725 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
          }
     break;
 
   case 216:
-#line 1650 "compilers/imcc/imcc.y"
+#line 1729 "compilers/imcc/imcc.y"
     {
            IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
@@ -4137,144 +4216,144 @@
     break;
 
   case 220:
-#line 1658 "compilers/imcc/imcc.y"
+#line 1737 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
          }
     break;
 
   case 221:
-#line 1665 "compilers/imcc/imcc.y"
+#line 1744 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"not"; }
     break;
 
   case 222:
-#line 1666 "compilers/imcc/imcc.y"
+#line 1745 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bnot"; }
     break;
 
   case 223:
-#line 1667 "compilers/imcc/imcc.y"
+#line 1746 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"neg"; }
     break;
 
   case 224:
-#line 1671 "compilers/imcc/imcc.y"
+#line 1750 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"sub"; }
     break;
 
   case 225:
-#line 1672 "compilers/imcc/imcc.y"
+#line 1751 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"add"; }
     break;
 
   case 226:
-#line 1673 "compilers/imcc/imcc.y"
+#line 1752 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mul"; }
     break;
 
   case 227:
-#line 1674 "compilers/imcc/imcc.y"
+#line 1753 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"div"; }
     break;
 
   case 228:
-#line 1675 "compilers/imcc/imcc.y"
+#line 1754 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mod"; }
     break;
 
   case 229:
-#line 1676 "compilers/imcc/imcc.y"
+#line 1755 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"fdiv"; }
     break;
 
   case 230:
-#line 1677 "compilers/imcc/imcc.y"
+#line 1756 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"pow"; }
     break;
 
   case 231:
-#line 1678 "compilers/imcc/imcc.y"
+#line 1757 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"concat"; }
     break;
 
   case 232:
-#line 1679 "compilers/imcc/imcc.y"
+#line 1758 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"iseq"; }
     break;
 
   case 233:
-#line 1680 "compilers/imcc/imcc.y"
+#line 1759 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isne"; }
     break;
 
   case 234:
-#line 1681 "compilers/imcc/imcc.y"
+#line 1760 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isgt"; }
     break;
 
   case 235:
-#line 1682 "compilers/imcc/imcc.y"
+#line 1761 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isge"; }
     break;
 
   case 236:
-#line 1683 "compilers/imcc/imcc.y"
+#line 1762 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"islt"; }
     break;
 
   case 237:
-#line 1684 "compilers/imcc/imcc.y"
+#line 1763 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isle"; }
     break;
 
   case 238:
-#line 1685 "compilers/imcc/imcc.y"
+#line 1764 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shl"; }
     break;
 
   case 239:
-#line 1686 "compilers/imcc/imcc.y"
+#line 1765 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shr"; }
     break;
 
   case 240:
-#line 1687 "compilers/imcc/imcc.y"
+#line 1766 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lsr"; }
     break;
 
   case 241:
-#line 1688 "compilers/imcc/imcc.y"
+#line 1767 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"and"; }
     break;
 
   case 242:
-#line 1689 "compilers/imcc/imcc.y"
+#line 1768 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"or"; }
     break;
 
   case 243:
-#line 1690 "compilers/imcc/imcc.y"
+#line 1769 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"xor"; }
     break;
 
   case 244:
-#line 1691 "compilers/imcc/imcc.y"
+#line 1770 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"band"; }
     break;
 
   case 245:
-#line 1692 "compilers/imcc/imcc.y"
+#line 1771 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bor"; }
     break;
 
   case 246:
-#line 1693 "compilers/imcc/imcc.y"
+#line 1772 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bxor"; }
     break;
 
   case 247:
-#line 1699 "compilers/imcc/imcc.y"
+#line 1778 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
            (yyval.i)->type &= ~ITCALL;
@@ -4283,84 +4362,84 @@
     break;
 
   case 248:
-#line 1704 "compilers/imcc/imcc.y"
+#line 1783 "compilers/imcc/imcc.y"
     {  (yyval.i) = 0; }
     break;
 
   case 249:
-#line 1711 "compilers/imcc/imcc.y"
+#line 1790 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
          }
     break;
 
   case 250:
-#line 1717 "compilers/imcc/imcc.y"
+#line 1796 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"add"; }
     break;
 
   case 251:
-#line 1718 "compilers/imcc/imcc.y"
+#line 1797 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"sub"; }
     break;
 
   case 252:
-#line 1719 "compilers/imcc/imcc.y"
+#line 1798 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mul"; }
     break;
 
   case 253:
-#line 1720 "compilers/imcc/imcc.y"
+#line 1799 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"div"; }
     break;
 
   case 254:
-#line 1721 "compilers/imcc/imcc.y"
+#line 1800 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mod"; }
     break;
 
   case 255:
-#line 1722 "compilers/imcc/imcc.y"
+#line 1801 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"fdiv"; }
     break;
 
   case 256:
-#line 1723 "compilers/imcc/imcc.y"
+#line 1802 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"concat"; }
     break;
 
   case 257:
-#line 1724 "compilers/imcc/imcc.y"
+#line 1803 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"band"; }
     break;
 
   case 258:
-#line 1725 "compilers/imcc/imcc.y"
+#line 1804 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bor"; }
     break;
 
   case 259:
-#line 1726 "compilers/imcc/imcc.y"
+#line 1805 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bxor"; }
     break;
 
   case 260:
-#line 1727 "compilers/imcc/imcc.y"
+#line 1806 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shr"; }
     break;
 
   case 261:
-#line 1728 "compilers/imcc/imcc.y"
+#line 1807 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shl"; }
     break;
 
   case 262:
-#line 1729 "compilers/imcc/imcc.y"
+#line 1808 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lsr"; }
     break;
 
   case 263:
-#line 1735 "compilers/imcc/imcc.y"
+#line 1814 "compilers/imcc/imcc.y"
     {
         (yyval.i) = func_ins(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(3) - (4)].s),
                       IMCC_INFO(interp) -> regs,
@@ -4371,22 +4450,22 @@
     break;
 
   case 264:
-#line 1745 "compilers/imcc/imcc.y"
+#line 1824 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 265:
-#line 1746 "compilers/imcc/imcc.y"
+#line 1825 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 266:
-#line 1747 "compilers/imcc/imcc.y"
+#line 1826 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 267:
-#line 1749 "compilers/imcc/imcc.y"
+#line 1828 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
            if ((yyvsp[(1) - (1)].sr)->set != 'P')
@@ -4395,7 +4474,7 @@
     break;
 
   case 268:
-#line 1755 "compilers/imcc/imcc.y"
+#line 1834 "compilers/imcc/imcc.y"
     {
             /* disallow bareword method names; SREG name constants are fine */
             char *name = (yyvsp[(3) - (3)].sr)->name;
@@ -4412,7 +4491,7 @@
     break;
 
   case 269:
-#line 1769 "compilers/imcc/imcc.y"
+#line 1848 "compilers/imcc/imcc.y"
     {
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
@@ -4421,12 +4500,12 @@
     break;
 
   case 270:
-#line 1774 "compilers/imcc/imcc.y"
+#line 1853 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
     break;
 
   case 271:
-#line 1780 "compilers/imcc/imcc.y"
+#line 1859 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
            IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
@@ -4434,17 +4513,17 @@
     break;
 
   case 272:
-#line 1784 "compilers/imcc/imcc.y"
+#line 1863 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (5)].i); }
     break;
 
   case 273:
-#line 1788 "compilers/imcc/imcc.y"
+#line 1867 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 274:
-#line 1790 "compilers/imcc/imcc.y"
+#line 1869 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4457,7 +4536,7 @@
     break;
 
   case 275:
-#line 1800 "compilers/imcc/imcc.y"
+#line 1879 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4470,7 +4549,7 @@
     break;
 
   case 276:
-#line 1810 "compilers/imcc/imcc.y"
+#line 1889 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr));
@@ -4479,7 +4558,7 @@
     break;
 
   case 277:
-#line 1816 "compilers/imcc/imcc.y"
+#line 1895 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr));
@@ -4488,42 +4567,42 @@
     break;
 
   case 278:
-#line 1824 "compilers/imcc/imcc.y"
+#line 1903 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
     break;
 
   case 279:
-#line 1828 "compilers/imcc/imcc.y"
+#line 1907 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 280:
-#line 1829 "compilers/imcc/imcc.y"
+#line 1908 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 281:
-#line 1833 "compilers/imcc/imcc.y"
+#line 1912 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_FLAT; }
     break;
 
   case 282:
-#line 1834 "compilers/imcc/imcc.y"
+#line 1913 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_NAMED; }
     break;
 
   case 283:
-#line 1837 "compilers/imcc/imcc.y"
+#line 1916 "compilers/imcc/imcc.y"
     { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
     break;
 
   case 284:
-#line 1841 "compilers/imcc/imcc.y"
+#line 1920 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
     break;
 
   case 285:
-#line 1846 "compilers/imcc/imcc.y"
+#line 1925 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4536,7 +4615,7 @@
     break;
 
   case 286:
-#line 1856 "compilers/imcc/imcc.y"
+#line 1935 "compilers/imcc/imcc.y"
     {
            add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr));
            mem_sys_free((yyvsp[(3) - (5)].s));
@@ -4544,7 +4623,7 @@
     break;
 
   case 287:
-#line 1861 "compilers/imcc/imcc.y"
+#line 1940 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4557,7 +4636,7 @@
     break;
 
   case 288:
-#line 1871 "compilers/imcc/imcc.y"
+#line 1950 "compilers/imcc/imcc.y"
     {
            add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr));
            mem_sys_free((yyvsp[(1) - (3)].s));
@@ -4565,124 +4644,124 @@
     break;
 
   case 289:
-#line 1875 "compilers/imcc/imcc.y"
+#line 1954 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 290:
-#line 1879 "compilers/imcc/imcc.y"
+#line 1958 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 291:
-#line 1880 "compilers/imcc/imcc.y"
+#line 1959 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 292:
-#line 1885 "compilers/imcc/imcc.y"
+#line 1964 "compilers/imcc/imcc.y"
     {
            (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
          }
     break;
 
   case 293:
-#line 1889 "compilers/imcc/imcc.y"
+#line 1968 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
          }
     break;
 
   case 294:
-#line 1893 "compilers/imcc/imcc.y"
+#line 1972 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
          }
     break;
 
   case 295:
-#line 1900 "compilers/imcc/imcc.y"
+#line 1979 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
          }
     break;
 
   case 296:
-#line 1904 "compilers/imcc/imcc.y"
+#line 1983 "compilers/imcc/imcc.y"
     {
            (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
          }
     break;
 
   case 297:
-#line 1908 "compilers/imcc/imcc.y"
+#line 1987 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
          }
     break;
 
   case 298:
-#line 1914 "compilers/imcc/imcc.y"
+#line 1993 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 299:
-#line 1915 "compilers/imcc/imcc.y"
+#line 1994 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 300:
-#line 1919 "compilers/imcc/imcc.y"
+#line 1998 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"eq"; }
     break;
 
   case 301:
-#line 1920 "compilers/imcc/imcc.y"
+#line 1999 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"ne"; }
     break;
 
   case 302:
-#line 1921 "compilers/imcc/imcc.y"
+#line 2000 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"gt"; }
     break;
 
   case 303:
-#line 1922 "compilers/imcc/imcc.y"
+#line 2001 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"ge"; }
     break;
 
   case 304:
-#line 1923 "compilers/imcc/imcc.y"
+#line 2002 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lt"; }
     break;
 
   case 305:
-#line 1924 "compilers/imcc/imcc.y"
+#line 2003 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"le"; }
     break;
 
   case 308:
-#line 1933 "compilers/imcc/imcc.y"
+#line 2012 "compilers/imcc/imcc.y"
     { (yyval.sr) = NULL; }
     break;
 
   case 309:
-#line 1934 "compilers/imcc/imcc.y"
+#line 2013 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 310:
-#line 1938 "compilers/imcc/imcc.y"
+#line 2017 "compilers/imcc/imcc.y"
     { (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
     break;
 
   case 312:
-#line 1943 "compilers/imcc/imcc.y"
+#line 2022 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 313:
-#line 1945 "compilers/imcc/imcc.y"
+#line 2024 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (4)].sr);
            IMCC_INFO(interp) -> keyvec |= KEY_BIT(IMCC_INFO(interp)->nargs);
@@ -4692,7 +4771,7 @@
     break;
 
   case 314:
-#line 1952 "compilers/imcc/imcc.y"
+#line 2031 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
            (yyval.sr) = (yyvsp[(2) - (3)].sr);
@@ -4700,37 +4779,37 @@
     break;
 
   case 316:
-#line 1959 "compilers/imcc/imcc.y"
+#line 2038 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 317:
-#line 1960 "compilers/imcc/imcc.y"
+#line 2039 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 318:
-#line 1964 "compilers/imcc/imcc.y"
+#line 2043 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 319:
-#line 1965 "compilers/imcc/imcc.y"
+#line 2044 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 320:
-#line 1969 "compilers/imcc/imcc.y"
+#line 2048 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 321:
-#line 1970 "compilers/imcc/imcc.y"
+#line 2049 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 326:
-#line 1984 "compilers/imcc/imcc.y"
+#line 2063 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys    = 0;
            IMCC_INFO(interp)->in_slice = 0;
@@ -4738,7 +4817,7 @@
     break;
 
   case 327:
-#line 1989 "compilers/imcc/imcc.y"
+#line 2068 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
@@ -4747,7 +4826,7 @@
     break;
 
   case 328:
-#line 1997 "compilers/imcc/imcc.y"
+#line 2076 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys = 0;
            IMCC_INFO(interp)->in_slice = 0;
@@ -4755,7 +4834,7 @@
     break;
 
   case 329:
-#line 2002 "compilers/imcc/imcc.y"
+#line 2081 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
@@ -4764,12 +4843,12 @@
     break;
 
   case 330:
-#line 2010 "compilers/imcc/imcc.y"
+#line 2089 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 331:
-#line 2012 "compilers/imcc/imcc.y"
+#line 2091 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
            (yyval.sr) = IMCC_INFO(interp)->keys[0];
@@ -4777,7 +4856,7 @@
     break;
 
   case 332:
-#line 2020 "compilers/imcc/imcc.y"
+#line 2099 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->in_slice)
                (yyvsp[(1) - (1)].sr)->type |= VT_START_SLICE | VT_END_SLICE;
@@ -4786,53 +4865,53 @@
     break;
 
   case 333:
-#line 2028 "compilers/imcc/imcc.y"
+#line 2107 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
     break;
 
   case 334:
-#line 2029 "compilers/imcc/imcc.y"
+#line 2108 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
     break;
 
   case 335:
-#line 2030 "compilers/imcc/imcc.y"
+#line 2109 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
     break;
 
   case 336:
-#line 2031 "compilers/imcc/imcc.y"
+#line 2110 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
     break;
 
   case 337:
-#line 2032 "compilers/imcc/imcc.y"
+#line 2111 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 338:
-#line 2036 "compilers/imcc/imcc.y"
+#line 2115 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 339:
-#line 2037 "compilers/imcc/imcc.y"
+#line 2116 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 340:
-#line 2038 "compilers/imcc/imcc.y"
+#line 2117 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 341:
-#line 2039 "compilers/imcc/imcc.y"
+#line 2118 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
 
 /* Line 1267 of yacc.c.  */
-#line 4825 "compilers/imcc/imcparser.c"
+#line 4904 "compilers/imcc/imcparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5046,7 +5125,7 @@
 }
 
 
-#line 2045 "compilers/imcc/imcc.y"
+#line 2124 "compilers/imcc/imcc.y"
 
 
 /* I need this prototype somewhere... */

Modified: trunk/compilers/imcc/imcparser.h
==============================================================================
--- trunk/compilers/imcc/imcparser.h	(original)
+++ trunk/compilers/imcc/imcparser.h	Thu Jan  1 14:57:02 2009
@@ -295,7 +295,7 @@
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 678 "compilers/imcc/imcc.y"
+#line 757 "compilers/imcc/imcc.y"
 {
     IdList * idlist;
     int t;
@@ -303,7 +303,7 @@
     SymReg * sr;
     Instruction *i;
 }
-/* Line 1529 of yacc.c.  */
+/* Line 1489 of yacc.c.  */
 #line 297 "compilers/imcc/imcparser.h"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About