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

petdance at svn.parrot.org petdance at svn.parrot.org
Tue Jun 30 04:30:25 UTC 2009


Author: petdance
Date: Tue Jun 30 04:30:24 2009
New Revision: 39837
URL: https://trac.parrot.org/parrot/changeset/39837

Log:
adding more splint notations, this time with bison properly running

Modified:
   trunk/compilers/imcc/imc.h
   trunk/compilers/imcc/imcc.y
   trunk/compilers/imcc/imcparser.c
   trunk/compilers/imcc/imcparser.h
   trunk/compilers/imcc/instructions.c
   trunk/compilers/imcc/instructions.h
   trunk/compilers/imcc/pbc.h
   trunk/compilers/imcc/reg_alloc.c

Modified: trunk/compilers/imcc/imc.h
==============================================================================
--- trunk/compilers/imcc/imc.h	Tue Jun 30 04:11:03 2009	(r39836)
+++ trunk/compilers/imcc/imc.h	Tue Jun 30 04:30:24 2009	(r39837)
@@ -64,6 +64,7 @@
 /* HEADERIZER BEGIN: compilers/imcc/imcc.y */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 Instruction * IMCC_create_itcall_label(PARROT_INTERP)
         __attribute__nonnull__(1);
@@ -72,6 +73,7 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 Instruction * INS_LABEL(PARROT_INTERP,
     ARGMOD_NULLOK(IMC_Unit *unit),
@@ -148,6 +150,7 @@
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*unit);
 
+PARROT_WARN_UNUSED_RESULT
 unsigned int ig_test(int i, int j, int N, ARGIN(unsigned int *graph))
         __attribute__nonnull__(4);
 
@@ -293,7 +296,9 @@
         __attribute__nonnull__(3)
         FUNC_MODIFIES(*error_message);
 
-int imcc_vfprintf(PARROT_INTERP,
+PARROT_IGNORABLE_RESULT
+int /*@alt void@*/
+imcc_vfprintf(PARROT_INTERP,
     ARGMOD(PMC *io),
     ARGIN(const char *format),
     va_list ap)

Modified: trunk/compilers/imcc/imcc.y
==============================================================================
--- trunk/compilers/imcc/imcc.y	Tue Jun 30 04:11:03 2009	(r39836)
+++ trunk/compilers/imcc/imcc.y	Tue Jun 30 04:30:24 2009	(r39837)
@@ -132,6 +132,7 @@
         FUNC_MODIFIES(*unit)
         FUNC_MODIFIES(*r);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 static Instruction * iINDEXFETCH(PARROT_INTERP,
     ARGMOD(IMC_Unit *unit),
@@ -145,6 +146,7 @@
         __attribute__nonnull__(5)
         FUNC_MODIFIES(*unit);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 static Instruction * iINDEXSET(PARROT_INTERP,
     ARGMOD(IMC_Unit *unit),
@@ -158,6 +160,7 @@
         __attribute__nonnull__(5)
         FUNC_MODIFIES(*unit);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static Instruction * iLABEL(PARROT_INTERP,
     ARGMOD_NULLOK(IMC_Unit *unit),
@@ -172,6 +175,7 @@
 static const char * inv_op(ARGIN(const char *op))
         __attribute__nonnull__(1);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static Instruction * iSUBROUTINE(PARROT_INTERP,
     ARGMOD_NULLOK(IMC_Unit *unit),
@@ -223,11 +227,13 @@
         FUNC_MODIFIES(*unit)
         FUNC_MODIFIES(*left);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static SymReg * mk_sub_address_fromc(PARROT_INTERP, ARGIN(const char *name))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static SymReg * mk_sub_address_u(PARROT_INTERP, ARGIN(const char *name))
         __attribute__nonnull__(1)
@@ -385,7 +391,7 @@
 
     for (p = opname, q = fmt; *q && *q != ' ';)
         *p++ = *q++;
-    *p = 0;
+    *p = '\0';
     if (!*q)
         fmt = NULL;
     else
@@ -585,6 +591,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 Instruction *
 INS_LABEL(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r0), int emit)
@@ -609,6 +616,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static Instruction *
 iLABEL(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r0))
@@ -630,7 +638,7 @@
 
 */
 
-
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static Instruction *
 iSUBROUTINE(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r))
@@ -659,6 +667,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 static Instruction *
 iINDEXFETCH(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGIN(SymReg *r0), ARGIN(SymReg *r1),
@@ -680,6 +689,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 static Instruction *
 iINDEXSET(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGIN(SymReg *r0), ARGIN(SymReg *r1),
@@ -723,6 +733,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 Instruction *
 IMCC_create_itcall_label(PARROT_INTERP)
@@ -752,6 +763,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static SymReg *
 mk_sub_address_fromc(PARROT_INTERP, ARGIN(const char *name))
@@ -776,6 +788,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static SymReg *
 mk_sub_address_u(PARROT_INTERP, ARGIN(const char *name))
@@ -1771,7 +1784,7 @@
          }
    | STRINGC ADV_ARROW var
          {
-            SymReg *name = mk_const(interp, $1, 'S');
+            SymReg * const name = mk_const(interp, $1, 'S');
             add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, $3);
          }
    | var_returns COMMA arg
@@ -1832,7 +1845,7 @@
 label:
      LABEL
          {
-             Instruction *i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, $1));
+             Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, $1));
              mem_sys_free($1);
              $$ = i;
          }
@@ -1855,14 +1868,14 @@
 id_list :
      id_list_id
          {
-           IdList* l = $1;
+           IdList* const l = $1;
            l->next = NULL;
            $$ = l;
          }
 
    | id_list COMMA id_list_id
          {
-           IdList* l = $3;
+           IdList* const l = $3;
            l->next = $1;
            $$ = l;
          }
@@ -1905,13 +1918,13 @@
          }
    | LEXICAL STRINGC COMMA target
          {
-           SymReg *n = mk_const(interp, $2, 'S');
+           SymReg * const n = mk_const(interp, $2, 'S');
            set_lexical(interp, $4, n); $$ = 0;
            mem_sys_free($2);
          }
    | LEXICAL USTRINGC COMMA target
          {
-           SymReg *n = mk_const(interp, $2, 'U');
+           SymReg * const n = mk_const(interp, $2, 'U');
            set_lexical(interp, $4, n); $$ = 0;
            mem_sys_free($2);
          }

Modified: trunk/compilers/imcc/imcparser.c
==============================================================================
--- trunk/compilers/imcc/imcparser.c	Tue Jun 30 04:11:03 2009	(r39836)
+++ trunk/compilers/imcc/imcparser.c	Tue Jun 30 04:30:24 2009	(r39837)
@@ -456,6 +456,7 @@
         FUNC_MODIFIES(*unit)
         FUNC_MODIFIES(*r);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 static Instruction * iINDEXFETCH(PARROT_INTERP,
     ARGMOD(IMC_Unit *unit),
@@ -469,6 +470,7 @@
         __attribute__nonnull__(5)
         FUNC_MODIFIES(*unit);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 static Instruction * iINDEXSET(PARROT_INTERP,
     ARGMOD(IMC_Unit *unit),
@@ -482,6 +484,7 @@
         __attribute__nonnull__(5)
         FUNC_MODIFIES(*unit);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static Instruction * iLABEL(PARROT_INTERP,
     ARGMOD_NULLOK(IMC_Unit *unit),
@@ -496,6 +499,7 @@
 static const char * inv_op(ARGIN(const char *op))
         __attribute__nonnull__(1);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static Instruction * iSUBROUTINE(PARROT_INTERP,
     ARGMOD_NULLOK(IMC_Unit *unit),
@@ -547,11 +551,13 @@
         FUNC_MODIFIES(*unit)
         FUNC_MODIFIES(*left);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static SymReg * mk_sub_address_fromc(PARROT_INTERP, ARGIN(const char *name))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static SymReg * mk_sub_address_u(PARROT_INTERP, ARGIN(const char *name))
         __attribute__nonnull__(1)
@@ -709,7 +715,7 @@
 
     for (p = opname, q = fmt; *q && *q != ' ';)
         *p++ = *q++;
-    *p = 0;
+    *p = '\0';
     if (!*q)
         fmt = NULL;
     else
@@ -909,6 +915,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 Instruction *
 INS_LABEL(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r0), int emit)
@@ -933,6 +940,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static Instruction *
 iLABEL(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r0))
@@ -954,7 +962,7 @@
 
 */
 
-
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static Instruction *
 iSUBROUTINE(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r))
@@ -983,6 +991,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 static Instruction *
 iINDEXFETCH(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGIN(SymReg *r0), ARGIN(SymReg *r1),
@@ -1004,6 +1013,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 static Instruction *
 iINDEXSET(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGIN(SymReg *r0), ARGIN(SymReg *r1),
@@ -1047,6 +1057,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 Instruction *
 IMCC_create_itcall_label(PARROT_INTERP)
@@ -1076,6 +1087,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static SymReg *
 mk_sub_address_fromc(PARROT_INTERP, ARGIN(const char *name))
@@ -1100,6 +1112,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static SymReg *
 mk_sub_address_u(PARROT_INTERP, ARGIN(const char *name))
@@ -1376,7 +1389,7 @@
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 1035 "compilers/imcc/imcc.y"
+#line 1048 "compilers/imcc/imcc.y"
 {
     IdList * idlist;
     int t;
@@ -1384,8 +1397,8 @@
     SymReg * sr;
     Instruction *i;
 }
-/* Line 187 of yacc.c.  */
-#line 1378 "compilers/imcc/imcparser.c"
+/* Line 193 of yacc.c.  */
+#line 1391 "compilers/imcc/imcparser.c"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -1398,7 +1411,7 @@
 
 
 /* Line 216 of yacc.c.  */
-#line 1391 "compilers/imcc/imcparser.c"
+#line 1404 "compilers/imcc/imcparser.c"
 
 #ifdef short
 # undef short
@@ -1819,40 +1832,40 @@
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,  1130,  1130,  1134,  1135,  1139,  1140,  1141,  1147,  1153,
-    1154,  1155,  1156,  1160,  1161,  1170,  1176,  1184,  1196,  1209,
-    1209,  1218,  1218,  1225,  1225,  1234,  1235,  1239,  1240,  1244,
-    1245,  1246,  1247,  1248,  1249,  1250,  1253,  1253,  1262,  1261,
-    1274,  1278,  1287,  1291,  1295,  1295,  1307,  1309,  1313,  1328,
-    1336,  1341,  1345,  1349,  1340,  1361,  1362,  1363,  1376,  1376,
-    1380,  1394,  1398,  1404,  1413,  1419,  1428,  1434,  1443,  1449,
-    1458,  1466,  1471,  1482,  1485,  1490,  1498,  1499,  1500,  1501,
-    1502,  1513,  1524,  1527,  1529,  1534,  1533,  1566,  1567,  1571,
-    1572,  1576,  1577,  1581,  1582,  1586,  1587,  1588,  1589,  1590,
-    1591,  1592,  1593,  1594,  1595,  1596,  1597,  1598,  1599,  1603,
-    1608,  1612,  1617,  1621,  1625,  1630,  1639,  1640,  1644,  1649,
-    1650,  1658,  1659,  1659,  1674,  1675,  1679,  1680,  1681,  1682,
-    1683,  1684,  1685,  1690,  1690,  1693,  1701,  1701,  1707,  1708,
-    1713,  1721,  1722,  1727,  1735,  1739,  1744,  1743,  1756,  1757,
-    1761,  1762,  1772,  1777,  1787,  1796,  1797,  1809,  1813,  1815,
-    1816,  1817,  1818,  1819,  1823,  1824,  1828,  1829,  1833,  1844,
-    1845,  1856,  1863,  1872,  1882,  1883,  1888,  1889,  1890,  1890,
-    1906,  1912,  1918,  1918,  1925,  1926,  1926,  1932,  1938,  1942,
-    1954,  1955,  1956,  1957,  1958,  1959,  1963,  1964,  1965,  1966,
-    1970,  1983,  1985,  1987,  1989,  1991,  1996,  1999,  2006,  2005,
-    2014,  2015,  2016,  2017,  2025,  2026,  2027,  2031,  2032,  2033,
-    2034,  2035,  2036,  2037,  2038,  2039,  2040,  2041,  2042,  2043,
-    2044,  2045,  2046,  2047,  2048,  2049,  2050,  2051,  2052,  2053,
-    2059,  2058,  2070,  2077,  2078,  2079,  2080,  2081,  2082,  2083,
-    2084,  2085,  2086,  2087,  2088,  2089,  2094,  2105,  2106,  2107,
-    2108,  2114,  2128,  2134,  2140,  2146,  2145,  2154,  2155,  2165,
-    2175,  2182,  2187,  2197,  2201,  2202,  2206,  2207,  2210,  2211,
-    2215,  2219,  2229,  2235,  2245,  2250,  2254,  2255,  2259,  2263,
-    2267,  2274,  2278,  2282,  2289,  2290,  2294,  2295,  2296,  2297,
-    2298,  2299,  2303,  2304,  2308,  2309,  2313,  2314,  2318,  2319,
-    2326,  2333,  2334,  2335,  2339,  2340,  2344,  2345,  2349,  2350,
-    2354,  2355,  2359,  2359,  2372,  2372,  2385,  2386,  2394,  2403,
-    2404,  2405,  2406,  2407,  2411,  2412,  2413,  2414
+       0,  1143,  1143,  1147,  1148,  1152,  1153,  1154,  1160,  1166,
+    1167,  1168,  1169,  1173,  1174,  1183,  1189,  1197,  1209,  1222,
+    1222,  1231,  1231,  1238,  1238,  1247,  1248,  1252,  1253,  1257,
+    1258,  1259,  1260,  1261,  1262,  1263,  1266,  1266,  1275,  1274,
+    1287,  1291,  1300,  1304,  1308,  1308,  1320,  1322,  1326,  1341,
+    1349,  1354,  1358,  1362,  1353,  1374,  1375,  1376,  1389,  1389,
+    1393,  1407,  1411,  1417,  1426,  1432,  1441,  1447,  1456,  1462,
+    1471,  1479,  1484,  1495,  1498,  1503,  1511,  1512,  1513,  1514,
+    1515,  1526,  1537,  1540,  1542,  1547,  1546,  1579,  1580,  1584,
+    1585,  1589,  1590,  1594,  1595,  1599,  1600,  1601,  1602,  1603,
+    1604,  1605,  1606,  1607,  1608,  1609,  1610,  1611,  1612,  1616,
+    1621,  1625,  1630,  1634,  1638,  1643,  1652,  1653,  1657,  1662,
+    1663,  1671,  1672,  1672,  1687,  1688,  1692,  1693,  1694,  1695,
+    1696,  1697,  1698,  1703,  1703,  1706,  1714,  1714,  1720,  1721,
+    1726,  1734,  1735,  1740,  1748,  1752,  1757,  1756,  1769,  1770,
+    1774,  1775,  1785,  1790,  1800,  1809,  1810,  1822,  1826,  1828,
+    1829,  1830,  1831,  1832,  1836,  1837,  1841,  1842,  1846,  1857,
+    1858,  1869,  1876,  1885,  1895,  1896,  1901,  1902,  1903,  1903,
+    1919,  1925,  1931,  1931,  1938,  1939,  1939,  1945,  1951,  1955,
+    1967,  1968,  1969,  1970,  1971,  1972,  1976,  1977,  1978,  1979,
+    1983,  1996,  1998,  2000,  2002,  2004,  2009,  2012,  2019,  2018,
+    2027,  2028,  2029,  2030,  2038,  2039,  2040,  2044,  2045,  2046,
+    2047,  2048,  2049,  2050,  2051,  2052,  2053,  2054,  2055,  2056,
+    2057,  2058,  2059,  2060,  2061,  2062,  2063,  2064,  2065,  2066,
+    2072,  2071,  2083,  2090,  2091,  2092,  2093,  2094,  2095,  2096,
+    2097,  2098,  2099,  2100,  2101,  2102,  2107,  2118,  2119,  2120,
+    2121,  2127,  2141,  2147,  2153,  2159,  2158,  2167,  2168,  2178,
+    2188,  2195,  2200,  2210,  2214,  2215,  2219,  2220,  2223,  2224,
+    2228,  2232,  2242,  2248,  2258,  2263,  2267,  2268,  2272,  2276,
+    2280,  2287,  2291,  2295,  2302,  2303,  2307,  2308,  2309,  2310,
+    2311,  2312,  2316,  2317,  2321,  2322,  2326,  2327,  2331,  2332,
+    2339,  2346,  2347,  2348,  2352,  2353,  2357,  2358,  2362,  2363,
+    2367,  2368,  2372,  2372,  2385,  2385,  2398,  2399,  2407,  2416,
+    2417,  2418,  2419,  2420,  2424,  2425,  2426,  2427
 };
 #endif
 
@@ -3206,102 +3219,102 @@
   switch (yyn)
     {
         case 2:
-#line 1130 "compilers/imcc/imcc.y"
-    { if (yynerrs) YYABORT; (yyval.i) = 0; }
+#line 1143 "compilers/imcc/imcc.y"
+    { if (yynerrs) YYABORT; (yyval.i) = 0; ;}
     break;
 
   case 5:
-#line 1139 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+#line 1152 "compilers/imcc/imcc.y"
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 6:
-#line 1140 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+#line 1153 "compilers/imcc/imcc.y"
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 7:
-#line 1142 "compilers/imcc/imcc.y"
+#line 1155 "compilers/imcc/imcc.y"
     {
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = 0;
-         }
+         ;}
     break;
 
   case 8:
-#line 1148 "compilers/imcc/imcc.y"
+#line 1161 "compilers/imcc/imcc.y"
     {
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = 0;
-         }
+         ;}
     break;
 
   case 9:
-#line 1153 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+#line 1166 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; ;}
     break;
 
   case 10:
-#line 1154 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+#line 1167 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; ;}
     break;
 
   case 11:
-#line 1155 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+#line 1168 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; ;}
     break;
 
   case 12:
-#line 1156 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+#line 1169 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; ;}
     break;
 
   case 13:
-#line 1160 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+#line 1173 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; ;}
     break;
 
   case 14:
-#line 1162 "compilers/imcc/imcc.y"
+#line 1175 "compilers/imcc/imcc.y"
     {
            (yyval.i) = 0;
            do_loadlib(interp, (yyvsp[(2) - (3)].s));
            mem_sys_free((yyvsp[(2) - (3)].s));
-         }
+         ;}
     break;
 
   case 15:
-#line 1171 "compilers/imcc/imcc.y"
+#line 1184 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
            /* set_filename() frees the STRINGC */
            set_filename(interp, (yyvsp[(4) - (5)].s));
-         }
+         ;}
     break;
 
   case 16:
-#line 1177 "compilers/imcc/imcc.y"
+#line 1190 "compilers/imcc/imcc.y"
     {
            /* set_filename() frees the STRINGC */
            set_filename(interp, (yyvsp[(2) - (3)].s));
-         }
+         ;}
     break;
 
   case 17:
-#line 1185 "compilers/imcc/imcc.y"
+#line 1198 "compilers/imcc/imcc.y"
     {
           /* We'll want to store an entry while emitting instructions, so just
            * store annotation like it's an instruction. */
           SymReg * const key = mk_const(interp, (yyvsp[(2) - (4)].s), 'S');
           (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, ".annotate", 2, key, (yyvsp[(4) - (4)].sr));
           mem_sys_free((yyvsp[(2) - (4)].s));
-        }
+        ;}
     break;
 
   case 18:
-#line 1197 "compilers/imcc/imcc.y"
+#line 1210 "compilers/imcc/imcc.y"
     {
             STRING * const hll_name = Parrot_str_unescape(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
             CONTEXT(interp)->current_HLL =
@@ -3310,120 +3323,120 @@
             IMCC_INFO(interp)->cur_namespace = NULL;
             mem_sys_free((yyvsp[(2) - (2)].s));
             (yyval.t) = 0;
-         }
+         ;}
     break;
 
   case 19:
-#line 1209 "compilers/imcc/imcc.y"
-    { pesky_global__is_def = 1; }
+#line 1222 "compilers/imcc/imcc.y"
+    { pesky_global__is_def = 1; ;}
     break;
 
   case 20:
-#line 1210 "compilers/imcc/imcc.y"
+#line 1223 "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));
              pesky_global__is_def = 0;
-         }
+         ;}
     break;
 
   case 21:
-#line 1218 "compilers/imcc/imcc.y"
-    { pesky_global__is_def=1; }
+#line 1231 "compilers/imcc/imcc.y"
+    { pesky_global__is_def=1; ;}
     break;
 
   case 22:
-#line 1219 "compilers/imcc/imcc.y"
+#line 1232 "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));
            mem_sys_free((yyvsp[(6) - (6)].s));
            pesky_global__is_def = 0;
-         }
+         ;}
     break;
 
   case 23:
-#line 1225 "compilers/imcc/imcc.y"
-    { pesky_global__is_def=1; }
+#line 1238 "compilers/imcc/imcc.y"
+    { pesky_global__is_def=1; ;}
     break;
 
   case 24:
-#line 1226 "compilers/imcc/imcc.y"
+#line 1239 "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));
            mem_sys_free((yyvsp[(3) - (6)].s));
            mem_sys_free((yyvsp[(6) - (6)].s));
            pesky_global__is_def = 0;
-         }
+         ;}
     break;
 
   case 29:
-#line 1244 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  }
+#line 1257 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0;  ;}
     break;
 
   case 30:
-#line 1245 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  }
+#line 1258 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0;  ;}
     break;
 
   case 31:
-#line 1246 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  }
+#line 1259 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0;  ;}
     break;
 
   case 32:
-#line 1247 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  }
+#line 1260 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0;  ;}
     break;
 
   case 33:
-#line 1248 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+#line 1261 "compilers/imcc/imcc.y"
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 36:
-#line 1253 "compilers/imcc/imcc.y"
-    { clear_state(interp); }
+#line 1266 "compilers/imcc/imcc.y"
+    { clear_state(interp); ;}
     break;
 
   case 37:
-#line 1255 "compilers/imcc/imcc.y"
+#line 1268 "compilers/imcc/imcc.y"
     {
            (yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
                     (yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
                     IMCC_INFO(interp)->nargs, IMCC_INFO(interp) -> keyvec, 1);
             mem_sys_free((yyvsp[(2) - (3)].s));
-         }
+         ;}
     break;
 
   case 38:
-#line 1262 "compilers/imcc/imcc.y"
+#line 1275 "compilers/imcc/imcc.y"
     {
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
-         }
+         ;}
     break;
 
   case 39:
-#line 1267 "compilers/imcc/imcc.y"
+#line 1280 "compilers/imcc/imcc.y"
     {
            (yyval.i) = iSUBROUTINE(interp,
                     IMCC_INFO(interp)->cur_unit,
                     mk_sub_label(interp, (yyvsp[(4) - (4)].s)));
            IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(3) - (4)].t);
            mem_sys_free((yyvsp[(4) - (4)].s));
-         }
+         ;}
     break;
 
   case 40:
-#line 1275 "compilers/imcc/imcc.y"
+#line 1288 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
-         }
+         ;}
     break;
 
   case 41:
-#line 1279 "compilers/imcc/imcc.y"
+#line 1292 "compilers/imcc/imcc.y"
     {
            SymReg *r = mk_pasm_reg(interp, (yyvsp[(4) - (4)].s));
            SymReg *n = mk_const(interp, (yyvsp[(2) - (4)].s), 'S');
@@ -3431,32 +3444,32 @@
            (yyval.i) = 0;
            mem_sys_free((yyvsp[(2) - (4)].s));
            mem_sys_free((yyvsp[(4) - (4)].s));
-         }
+         ;}
     break;
 
   case 42:
-#line 1287 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;}
+#line 1300 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0;;}
     break;
 
   case 44:
-#line 1295 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
+#line 1308 "compilers/imcc/imcc.y"
+    { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); ;}
     break;
 
   case 45:
-#line 1298 "compilers/imcc/imcc.y"
+#line 1311 "compilers/imcc/imcc.y"
     {
            /* if (optimizer_level & OPT_PASM)
                          imc_compile_unit(interp, IMCC_INFO(interp)->cur_unit);
                          emit_flush(interp);
            */
            (yyval.i) = 0;
-         }
+         ;}
     break;
 
   case 48:
-#line 1314 "compilers/imcc/imcc.y"
+#line 1327 "compilers/imcc/imcc.y"
     {
            int re_open = 0;
            (yyval.i) = 0;
@@ -3467,67 +3480,67 @@
            IMCC_INFO(interp)->cur_namespace = (yyvsp[(2) - (3)].sr);
            if (re_open)
                IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
-         }
+         ;}
     break;
 
   case 49:
-#line 1329 "compilers/imcc/imcc.y"
+#line 1342 "compilers/imcc/imcc.y"
     {
             if (IMCC_INFO(interp)->in_slice)
                 IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
                     "Slice not allowed in namespace.");
 
             (yyval.sr) = (yyvsp[(2) - (3)].sr);
-        }
+        ;}
     break;
 
   case 50:
-#line 1336 "compilers/imcc/imcc.y"
-    { (yyval.sr) = NULL; }
+#line 1349 "compilers/imcc/imcc.y"
+    { (yyval.sr) = NULL; ;}
     break;
 
   case 51:
-#line 1341 "compilers/imcc/imcc.y"
+#line 1354 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
-         }
+         ;}
     break;
 
   case 52:
-#line 1345 "compilers/imcc/imcc.y"
+#line 1358 "compilers/imcc/imcc.y"
     {
            iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 53:
-#line 1349 "compilers/imcc/imcc.y"
+#line 1362 "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) {
             IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid = mem_sys_strdup(
             IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->name);
           }
-        }
+        ;}
     break;
 
   case 54:
-#line 1357 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
+#line 1370 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
     break;
 
   case 55:
-#line 1361 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+#line 1374 "compilers/imcc/imcc.y"
+    { (yyval.sr) = 0; ;}
     break;
 
   case 56:
-#line 1362 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+#line 1375 "compilers/imcc/imcc.y"
+    { (yyval.sr) = 0; ;}
     break;
 
   case 57:
-#line 1364 "compilers/imcc/imcc.y"
+#line 1377 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                  add_pcc_named_param(IMCC_INFO(interp)->cur_call,
@@ -3536,21 +3549,21 @@
            }
            else
                add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 58:
-#line 1376 "compilers/imcc/imcc.y"
-    { pesky_global__is_def=1; }
+#line 1389 "compilers/imcc/imcc.y"
+    { pesky_global__is_def=1; ;}
     break;
 
   case 59:
-#line 1376 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(3) - (3)].sr); pesky_global__is_def=0; }
+#line 1389 "compilers/imcc/imcc.y"
+    { (yyval.sr) = (yyvsp[(3) - (3)].sr); pesky_global__is_def=0; ;}
     break;
 
   case 60:
-#line 1381 "compilers/imcc/imcc.y"
+#line 1394 "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));
@@ -3558,157 +3571,157 @@
                (yyval.sr) = mk_ident(interp, (yyvsp[(2) - (3)].s), (yyvsp[(1) - (3)].t));
            (yyval.sr)->type |= (yyvsp[(3) - (3)].t);
            mem_sys_free((yyvsp[(2) - (3)].s));
-          }
+          ;}
     break;
 
   case 61:
-#line 1394 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+#line 1407 "compilers/imcc/imcc.y"
+    { (yyval.t) = 0; ;}
     break;
 
   case 62:
-#line 1399 "compilers/imcc/imcc.y"
+#line 1412 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
            mem_sys_free((yyvsp[(3) - (4)].s));
-         }
+         ;}
     break;
 
   case 63:
-#line 1405 "compilers/imcc/imcc.y"
+#line 1418 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
            mem_sys_free((yyvsp[(3) - (4)].s));
-         }
+         ;}
     break;
 
   case 64:
-#line 1414 "compilers/imcc/imcc.y"
+#line 1427 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_VTABLE;
            IMCC_INFO(interp)->cur_unit->vtable_name      = NULL;
            IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
-         }
+         ;}
     break;
 
   case 65:
-#line 1420 "compilers/imcc/imcc.y"
+#line 1433 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_VTABLE;
            IMCC_INFO(interp)->cur_unit->vtable_name      = (yyvsp[(3) - (4)].s);
            IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
-         }
+         ;}
     break;
 
   case 66:
-#line 1429 "compilers/imcc/imcc.y"
+#line 1442 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = NULL;
            IMCC_INFO(interp)->cur_unit->is_method   = 1;
-         }
+         ;}
     break;
 
   case 67:
-#line 1435 "compilers/imcc/imcc.y"
+#line 1448 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
            IMCC_INFO(interp)->cur_unit->is_method   = 1;
-         }
+         ;}
     break;
 
   case 68:
-#line 1444 "compilers/imcc/imcc.y"
+#line 1457 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->ns_entry_name     = NULL;
            IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
-         }
+         ;}
     break;
 
   case 69:
-#line 1450 "compilers/imcc/imcc.y"
+#line 1463 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
            IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
-         }
+         ;}
     break;
 
   case 70:
-#line 1459 "compilers/imcc/imcc.y"
+#line 1472 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
-         }
+         ;}
     break;
 
   case 71:
-#line 1467 "compilers/imcc/imcc.y"
+#line 1480 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->subid = NULL;
-         }
+         ;}
     break;
 
   case 72:
-#line 1472 "compilers/imcc/imcc.y"
+#line 1485 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
            IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid = str_dup_remove_quotes((yyvsp[(3) - (4)].s));
            mem_sys_free((yyvsp[(3) - (4)].s));
-         }
+         ;}
     break;
 
   case 73:
-#line 1482 "compilers/imcc/imcc.y"
+#line 1495 "compilers/imcc/imcc.y"
     {
            add_pcc_multi(IMCC_INFO(interp)->cur_call, NULL);
-         }
+         ;}
     break;
 
   case 74:
-#line 1486 "compilers/imcc/imcc.y"
+#line 1499 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 75:
-#line 1491 "compilers/imcc/imcc.y"
+#line 1504 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
-         }
+         ;}
     break;
 
   case 76:
-#line 1498 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); }
+#line 1511 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); ;}
     break;
 
   case 77:
-#line 1499 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
+#line 1512 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); ;}
     break;
 
   case 78:
-#line 1500 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "PMC",      'S'); }
+#line 1513 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_const(interp, "PMC",      'S'); ;}
     break;
 
   case 79:
-#line 1501 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "STRING",   'S'); }
+#line 1514 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_const(interp, "STRING",   'S'); ;}
     break;
 
   case 80:
-#line 1503 "compilers/imcc/imcc.y"
+#line 1516 "compilers/imcc/imcc.y"
     {
            SymReg *r;
            if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3718,11 +3731,11 @@
            }
            mem_sys_free((yyvsp[(1) - (1)].s));
            (yyval.sr) = r;
-         }
+         ;}
     break;
 
   case 81:
-#line 1514 "compilers/imcc/imcc.y"
+#line 1527 "compilers/imcc/imcc.y"
     {
            SymReg *r;
            if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3732,16 +3745,16 @@
            }
            mem_sys_free((yyvsp[(1) - (1)].s));
            (yyval.sr) = r;
-         }
+         ;}
     break;
 
   case 82:
-#line 1524 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); }
+#line 1537 "compilers/imcc/imcc.y"
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); ;}
     break;
 
   case 85:
-#line 1534 "compilers/imcc/imcc.y"
+#line 1547 "compilers/imcc/imcc.y"
     {
            char name[128];
            SymReg *r, *r1;
@@ -3764,177 +3777,177 @@
            r1 = IMCC_INFO(interp)->cur_unit->instructions->symregs[0];
            if (r1 && r1->pcc_sub)
                r1->pcc_sub->calls_a_sub |= 1;
-         }
+         ;}
     break;
 
   case 86:
-#line 1562 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
+#line 1575 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
     break;
 
   case 87:
-#line 1566 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
+#line 1579 "compilers/imcc/imcc.y"
+    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; ;}
     break;
 
   case 88:
-#line 1567 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
+#line 1580 "compilers/imcc/imcc.y"
+    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; ;}
     break;
 
   case 89:
-#line 1571 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; }
+#line 1584 "compilers/imcc/imcc.y"
+    { (yyval.i) = NULL; ;}
     break;
 
   case 90:
-#line 1572 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL;  IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
+#line 1585 "compilers/imcc/imcc.y"
+    { (yyval.i) = NULL;  IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); ;}
     break;
 
   case 91:
-#line 1576 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+#line 1589 "compilers/imcc/imcc.y"
+    { (yyval.t) = 0; ;}
     break;
 
   case 93:
-#line 1581 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (1)].t); }
+#line 1594 "compilers/imcc/imcc.y"
+    { (yyval.t) = (yyvsp[(1) - (1)].t); ;}
     break;
 
   case 94:
-#line 1582 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
+#line 1595 "compilers/imcc/imcc.y"
+    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
     break;
 
   case 95:
-#line 1586 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_LOAD; }
+#line 1599 "compilers/imcc/imcc.y"
+    { (yyval.t) = P_LOAD; ;}
     break;
 
   case 96:
-#line 1587 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_INIT; }
+#line 1600 "compilers/imcc/imcc.y"
+    { (yyval.t) = P_INIT; ;}
     break;
 
   case 97:
-#line 1588 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_MAIN; }
+#line 1601 "compilers/imcc/imcc.y"
+    { (yyval.t) = P_MAIN; ;}
     break;
 
   case 98:
-#line 1589 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_IMMEDIATE; }
+#line 1602 "compilers/imcc/imcc.y"
+    { (yyval.t) = P_IMMEDIATE; ;}
     break;
 
   case 99:
-#line 1590 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_POSTCOMP; }
+#line 1603 "compilers/imcc/imcc.y"
+    { (yyval.t) = P_POSTCOMP; ;}
     break;
 
   case 100:
-#line 1591 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_ANON; }
+#line 1604 "compilers/imcc/imcc.y"
+    { (yyval.t) = P_ANON; ;}
     break;
 
   case 101:
-#line 1592 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_NEED_LEX; }
+#line 1605 "compilers/imcc/imcc.y"
+    { (yyval.t) = P_NEED_LEX; ;}
     break;
 
   case 109:
-#line 1604 "compilers/imcc/imcc.y"
+#line 1617 "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));
-         }
+         ;}
     break;
 
   case 110:
-#line 1609 "compilers/imcc/imcc.y"
+#line 1622 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 111:
-#line 1613 "compilers/imcc/imcc.y"
+#line 1626 "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;
-         }
+         ;}
     break;
 
   case 112:
-#line 1618 "compilers/imcc/imcc.y"
+#line 1631 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 113:
-#line 1622 "compilers/imcc/imcc.y"
+#line 1635 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
-         }
+         ;}
     break;
 
   case 114:
-#line 1626 "compilers/imcc/imcc.y"
+#line 1639 "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));
-         }
+         ;}
     break;
 
   case 115:
-#line 1631 "compilers/imcc/imcc.y"
+#line 1644 "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));
-         }
+         ;}
     break;
 
   case 116:
-#line 1639 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+#line 1652 "compilers/imcc/imcc.y"
+    { (yyval.sr) = 0; ;}
     break;
 
   case 117:
-#line 1640 "compilers/imcc/imcc.y"
-    { add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
+#line 1653 "compilers/imcc/imcc.y"
+    { add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); ;}
     break;
 
   case 118:
-#line 1644 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (2)].sr); }
+#line 1657 "compilers/imcc/imcc.y"
+    { (yyval.sr) = (yyvsp[(2) - (2)].sr); ;}
     break;
 
   case 119:
-#line 1649 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+#line 1662 "compilers/imcc/imcc.y"
+    { (yyval.sr) = 0; ;}
     break;
 
   case 120:
-#line 1651 "compilers/imcc/imcc.y"
+#line 1664 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 121:
-#line 1658 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
+#line 1671 "compilers/imcc/imcc.y"
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
     break;
 
   case 122:
-#line 1659 "compilers/imcc/imcc.y"
-    { pesky_global__is_def=1; }
+#line 1672 "compilers/imcc/imcc.y"
+    { pesky_global__is_def=1; ;}
     break;
 
   case 123:
-#line 1660 "compilers/imcc/imcc.y"
+#line 1673 "compilers/imcc/imcc.y"
     {
            IdList * const l = (yyvsp[(4) - (4)].idlist);
            SymReg *ignored;
@@ -3945,167 +3958,167 @@
            UNUSED(ignored);
            pesky_global__is_def=0;
            (yyval.sr)=0;
-         }
+         ;}
     break;
 
   case 124:
-#line 1674 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+#line 1687 "compilers/imcc/imcc.y"
+    { (yyval.t) = 0; ;}
     break;
 
   case 125:
-#line 1675 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
+#line 1688 "compilers/imcc/imcc.y"
+    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
     break;
 
   case 126:
-#line 1679 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_FLAT;   }
+#line 1692 "compilers/imcc/imcc.y"
+    { (yyval.t) = VT_FLAT;   ;}
     break;
 
   case 127:
-#line 1680 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_OPTIONAL; }
+#line 1693 "compilers/imcc/imcc.y"
+    { (yyval.t) = VT_OPTIONAL; ;}
     break;
 
   case 128:
-#line 1681 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_OPT_FLAG; }
+#line 1694 "compilers/imcc/imcc.y"
+    { (yyval.t) = VT_OPT_FLAG; ;}
     break;
 
   case 129:
-#line 1682 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_NAMED; }
+#line 1695 "compilers/imcc/imcc.y"
+    { (yyval.t) = VT_NAMED; ;}
     break;
 
   case 130:
-#line 1683 "compilers/imcc/imcc.y"
-    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
+#line 1696 "compilers/imcc/imcc.y"
+    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); ;}
     break;
 
   case 131:
-#line 1684 "compilers/imcc/imcc.y"
-    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
+#line 1697 "compilers/imcc/imcc.y"
+    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); ;}
     break;
 
   case 132:
-#line 1685 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_UNIQUE_REG; }
+#line 1698 "compilers/imcc/imcc.y"
+    { (yyval.t) = VT_UNIQUE_REG; ;}
     break;
 
   case 133:
-#line 1690 "compilers/imcc/imcc.y"
-    { begin_return_or_yield(interp, 0); }
+#line 1703 "compilers/imcc/imcc.y"
+    { begin_return_or_yield(interp, 0); ;}
     break;
 
   case 134:
-#line 1692 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
+#line 1705 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; ;}
     break;
 
   case 135:
-#line 1694 "compilers/imcc/imcc.y"
+#line 1707 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->asm_state = AsmDefault;
            (yyval.i) = 0;
-         }
+         ;}
     break;
 
   case 136:
-#line 1701 "compilers/imcc/imcc.y"
-    { begin_return_or_yield(interp, 1); }
+#line 1714 "compilers/imcc/imcc.y"
+    { begin_return_or_yield(interp, 1); ;}
     break;
 
   case 137:
-#line 1703 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
+#line 1716 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; ;}
     break;
 
   case 138:
-#line 1707 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+#line 1720 "compilers/imcc/imcc.y"
+    { (yyval.sr) = 0; ;}
     break;
 
   case 139:
-#line 1709 "compilers/imcc/imcc.y"
+#line 1722 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
-         }
+         ;}
     break;
 
   case 140:
-#line 1714 "compilers/imcc/imcc.y"
+#line 1727 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 141:
-#line 1721 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+#line 1734 "compilers/imcc/imcc.y"
+    { (yyval.sr) = 0; ;}
     break;
 
   case 142:
-#line 1723 "compilers/imcc/imcc.y"
+#line 1736 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
-         }
+         ;}
     break;
 
   case 143:
-#line 1728 "compilers/imcc/imcc.y"
+#line 1741 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 144:
-#line 1735 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
+#line 1748 "compilers/imcc/imcc.y"
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
     break;
 
   case 145:
-#line 1739 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
+#line 1752 "compilers/imcc/imcc.y"
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
     break;
 
   case 146:
-#line 1744 "compilers/imcc/imcc.y"
+#line 1757 "compilers/imcc/imcc.y"
     {
           if (IMCC_INFO(interp)->asm_state == AsmDefault)
               begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
-        }
+        ;}
     break;
 
   case 147:
-#line 1749 "compilers/imcc/imcc.y"
+#line 1762 "compilers/imcc/imcc.y"
     {
           IMCC_INFO(interp)->asm_state = AsmDefault;
           (yyval.t) = 0;
-        }
+        ;}
     break;
 
   case 148:
-#line 1756 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+#line 1769 "compilers/imcc/imcc.y"
+    { (yyval.t) = 0; ;}
     break;
 
   case 149:
-#line 1757 "compilers/imcc/imcc.y"
-    { (yyval.t) = 1; }
+#line 1770 "compilers/imcc/imcc.y"
+    { (yyval.t) = 1; ;}
     break;
 
   case 150:
-#line 1761 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+#line 1774 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; ;}
     break;
 
   case 151:
-#line 1763 "compilers/imcc/imcc.y"
+#line 1776 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -4114,19 +4127,19 @@
            }
            else
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (1)].sr));
-         }
+         ;}
     break;
 
   case 152:
-#line 1773 "compilers/imcc/imcc.y"
+#line 1786 "compilers/imcc/imcc.y"
     {
-            SymReg *name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
+            SymReg * const name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
             add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 153:
-#line 1778 "compilers/imcc/imcc.y"
+#line 1791 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -4135,127 +4148,127 @@
              }
              else
                  add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 154:
-#line 1788 "compilers/imcc/imcc.y"
+#line 1801 "compilers/imcc/imcc.y"
     {
            SymReg *name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S');
            add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(5) - (5)].sr));
-         }
+         ;}
     break;
 
   case 157:
-#line 1809 "compilers/imcc/imcc.y"
-    { clear_state(interp); }
+#line 1822 "compilers/imcc/imcc.y"
+    { clear_state(interp); ;}
     break;
 
   case 158:
-#line 1814 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(2) - (2)].i); }
+#line 1827 "compilers/imcc/imcc.y"
+    { (yyval.i) = (yyvsp[(2) - (2)].i); ;}
     break;
 
   case 159:
-#line 1815 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+#line 1828 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; ;}
     break;
 
   case 160:
-#line 1816 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+#line 1829 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; ;}
     break;
 
   case 161:
-#line 1817 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+#line 1830 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; ;}
     break;
 
   case 162:
-#line 1818 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+#line 1831 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; ;}
     break;
 
   case 163:
-#line 1819 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+#line 1832 "compilers/imcc/imcc.y"
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 164:
-#line 1823 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; }
+#line 1836 "compilers/imcc/imcc.y"
+    { (yyval.i) = NULL; ;}
     break;
 
   case 168:
-#line 1834 "compilers/imcc/imcc.y"
+#line 1847 "compilers/imcc/imcc.y"
     {
-             Instruction *i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
+             Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
              mem_sys_free((yyvsp[(1) - (1)].s));
              (yyval.i) = i;
-         }
+         ;}
     break;
 
   case 169:
-#line 1844 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(2) - (3)].i); }
+#line 1857 "compilers/imcc/imcc.y"
+    { (yyval.i) = (yyvsp[(2) - (3)].i); ;}
     break;
 
   case 170:
-#line 1846 "compilers/imcc/imcc.y"
+#line 1859 "compilers/imcc/imcc.y"
     {
            if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
                IMCC_warning(interp, "Too many errors. Correct some first.\n");
                YYABORT;
            }
            yyerrok;
-         }
+         ;}
     break;
 
   case 171:
-#line 1857 "compilers/imcc/imcc.y"
+#line 1870 "compilers/imcc/imcc.y"
     {
-           IdList* l = (yyvsp[(1) - (1)].idlist);
+           IdList* const l = (yyvsp[(1) - (1)].idlist);
            l->next = NULL;
            (yyval.idlist) = l;
-         }
+         ;}
     break;
 
   case 172:
-#line 1864 "compilers/imcc/imcc.y"
+#line 1877 "compilers/imcc/imcc.y"
     {
-           IdList* l = (yyvsp[(3) - (3)].idlist);
+           IdList* const l = (yyvsp[(3) - (3)].idlist);
            l->next = (yyvsp[(1) - (3)].idlist);
            (yyval.idlist) = l;
-         }
+         ;}
     break;
 
   case 173:
-#line 1873 "compilers/imcc/imcc.y"
+#line 1886 "compilers/imcc/imcc.y"
     {
            IdList* const l = mem_allocate_n_zeroed_typed(1, IdList);
            l->id           = (yyvsp[(1) - (2)].s);
            l->unique_reg   = (yyvsp[(2) - (2)].t);
            (yyval.idlist) = l;
-         }
+         ;}
     break;
 
   case 174:
-#line 1882 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+#line 1895 "compilers/imcc/imcc.y"
+    { (yyval.t) = 0; ;}
     break;
 
   case 175:
-#line 1883 "compilers/imcc/imcc.y"
-    { (yyval.t) = 1; }
+#line 1896 "compilers/imcc/imcc.y"
+    { (yyval.t) = 1; ;}
     break;
 
   case 178:
-#line 1890 "compilers/imcc/imcc.y"
-    { pesky_global__is_def=1; }
+#line 1903 "compilers/imcc/imcc.y"
+    { pesky_global__is_def=1; ;}
     break;
 
   case 179:
-#line 1891 "compilers/imcc/imcc.y"
+#line 1904 "compilers/imcc/imcc.y"
     {
            IdList *l = (yyvsp[(4) - (4)].idlist);
            while (l) {
@@ -4270,73 +4283,73 @@
                mem_sys_free(l1);
            }
            pesky_global__is_def=0; (yyval.i)=0;
-         }
+         ;}
     break;
 
   case 180:
-#line 1907 "compilers/imcc/imcc.y"
+#line 1920 "compilers/imcc/imcc.y"
     {
-           SymReg *n = mk_const(interp, (yyvsp[(2) - (4)].s), 'S');
+           SymReg * const n = mk_const(interp, (yyvsp[(2) - (4)].s), 'S');
            set_lexical(interp, (yyvsp[(4) - (4)].sr), n); (yyval.i) = 0;
            mem_sys_free((yyvsp[(2) - (4)].s));
-         }
+         ;}
     break;
 
   case 181:
-#line 1913 "compilers/imcc/imcc.y"
+#line 1926 "compilers/imcc/imcc.y"
     {
-           SymReg *n = mk_const(interp, (yyvsp[(2) - (4)].s), 'U');
+           SymReg * const n = mk_const(interp, (yyvsp[(2) - (4)].s), 'U');
            set_lexical(interp, (yyvsp[(4) - (4)].sr), n); (yyval.i) = 0;
            mem_sys_free((yyvsp[(2) - (4)].s));
-         }
+         ;}
     break;
 
   case 182:
-#line 1918 "compilers/imcc/imcc.y"
-    { pesky_global__is_def=1; }
+#line 1931 "compilers/imcc/imcc.y"
+    { pesky_global__is_def=1; ;}
     break;
 
   case 183:
-#line 1919 "compilers/imcc/imcc.y"
+#line 1932 "compilers/imcc/imcc.y"
     {
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
            pesky_global__is_def=0;
            mem_sys_free((yyvsp[(4) - (6)].s));
-         }
+         ;}
     break;
 
   case 185:
-#line 1926 "compilers/imcc/imcc.y"
-    { pesky_global__is_def=1; }
+#line 1939 "compilers/imcc/imcc.y"
+    { pesky_global__is_def=1; ;}
     break;
 
   case 186:
-#line 1927 "compilers/imcc/imcc.y"
+#line 1940 "compilers/imcc/imcc.y"
     {
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
            pesky_global__is_def=0;
            mem_sys_free((yyvsp[(4) - (6)].s));
-         }
+         ;}
     break;
 
   case 187:
-#line 1933 "compilers/imcc/imcc.y"
+#line 1946 "compilers/imcc/imcc.y"
     {
            (yyval.i) = NULL;
            IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL;
            IMCC_INFO(interp)->cur_call = NULL;
-         }
+         ;}
     break;
 
   case 188:
-#line 1939 "compilers/imcc/imcc.y"
+#line 1952 "compilers/imcc/imcc.y"
     {
             (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
-         }
+         ;}
     break;
 
   case 189:
-#line 1943 "compilers/imcc/imcc.y"
+#line 1956 "compilers/imcc/imcc.y"
     {
            (yyval.i) = INS(interp,
                     IMCC_INFO(interp)->cur_unit,
@@ -4347,51 +4360,51 @@
                     IMCC_INFO(interp)->keyvec,
                     1);
            mem_sys_free((yyvsp[(1) - (2)].s));
-         }
+         ;}
     break;
 
   case 190:
-#line 1954 "compilers/imcc/imcc.y"
-    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
+#line 1967 "compilers/imcc/imcc.y"
+    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); ;}
     break;
 
   case 191:
-#line 1955 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
+#line 1968 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
     break;
 
   case 192:
-#line 1956 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+#line 1969 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0; ;}
     break;
 
   case 195:
-#line 1959 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;}
+#line 1972 "compilers/imcc/imcc.y"
+    { (yyval.i) = 0;;}
     break;
 
   case 196:
-#line 1963 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'I'; }
+#line 1976 "compilers/imcc/imcc.y"
+    { (yyval.t) = 'I'; ;}
     break;
 
   case 197:
-#line 1964 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'N'; }
+#line 1977 "compilers/imcc/imcc.y"
+    { (yyval.t) = 'N'; ;}
     break;
 
   case 198:
-#line 1965 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'S'; }
+#line 1978 "compilers/imcc/imcc.y"
+    { (yyval.t) = 'S'; ;}
     break;
 
   case 199:
-#line 1966 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'P'; }
+#line 1979 "compilers/imcc/imcc.y"
+    { (yyval.t) = 'P'; ;}
     break;
 
   case 200:
-#line 1971 "compilers/imcc/imcc.y"
+#line 1984 "compilers/imcc/imcc.y"
     {
            /* there'd normally be a mem_sys_strdup() here, but the lexer already
             * copied the string, so it's safe to use directly */
@@ -4400,323 +4413,323 @@
                IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
                     "Unknown PMC type '%s'\n", (yyvsp[(1) - (1)].s));
            }
-         }
+         ;}
     break;
 
   case 201:
-#line 1984 "compilers/imcc/imcc.y"
-    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));  }
+#line 1997 "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 202:
-#line 1986 "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));  }
+#line 1999 "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 203:
-#line 1988 "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));  }
+#line 2001 "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 204:
-#line 1990 "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)); }
+#line 2003 "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 205:
-#line 1992 "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)); }
+#line 2005 "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 206:
-#line 1997 "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); }
+#line 2010 "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 207:
-#line 2000 "compilers/imcc/imcc.y"
+#line 2013 "compilers/imcc/imcc.y"
     {
            add_pcc_result((yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
            (yyval.i) = 0;
-         }
+         ;}
     break;
 
   case 208:
-#line 2006 "compilers/imcc/imcc.y"
+#line 2019 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
-         }
+         ;}
     break;
 
   case 209:
-#line 2010 "compilers/imcc/imcc.y"
+#line 2023 "compilers/imcc/imcc.y"
     {
            IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
-         }
+         ;}
     break;
 
   case 213:
-#line 2018 "compilers/imcc/imcc.y"
+#line 2031 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
-         }
+         ;}
     break;
 
   case 214:
-#line 2025 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"not"; }
+#line 2038 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"not"; ;}
     break;
 
   case 215:
-#line 2026 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bnot"; }
+#line 2039 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"bnot"; ;}
     break;
 
   case 216:
-#line 2027 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"neg"; }
+#line 2040 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"neg"; ;}
     break;
 
   case 217:
-#line 2031 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"sub"; }
+#line 2044 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"sub"; ;}
     break;
 
   case 218:
-#line 2032 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"add"; }
+#line 2045 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"add"; ;}
     break;
 
   case 219:
-#line 2033 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mul"; }
+#line 2046 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"mul"; ;}
     break;
 
   case 220:
-#line 2034 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"div"; }
+#line 2047 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"div"; ;}
     break;
 
   case 221:
-#line 2035 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mod"; }
+#line 2048 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"mod"; ;}
     break;
 
   case 222:
-#line 2036 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"fdiv"; }
+#line 2049 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"fdiv"; ;}
     break;
 
   case 223:
-#line 2037 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"pow"; }
+#line 2050 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"pow"; ;}
     break;
 
   case 224:
-#line 2038 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"concat"; }
+#line 2051 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"concat"; ;}
     break;
 
   case 225:
-#line 2039 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"iseq"; }
+#line 2052 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"iseq"; ;}
     break;
 
   case 226:
-#line 2040 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isne"; }
+#line 2053 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"isne"; ;}
     break;
 
   case 227:
-#line 2041 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isgt"; }
+#line 2054 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"isgt"; ;}
     break;
 
   case 228:
-#line 2042 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isge"; }
+#line 2055 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"isge"; ;}
     break;
 
   case 229:
-#line 2043 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"islt"; }
+#line 2056 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"islt"; ;}
     break;
 
   case 230:
-#line 2044 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isle"; }
+#line 2057 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"isle"; ;}
     break;
 
   case 231:
-#line 2045 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shl"; }
+#line 2058 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"shl"; ;}
     break;
 
   case 232:
-#line 2046 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shr"; }
+#line 2059 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"shr"; ;}
     break;
 
   case 233:
-#line 2047 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"lsr"; }
+#line 2060 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"lsr"; ;}
     break;
 
   case 234:
-#line 2048 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"and"; }
+#line 2061 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"and"; ;}
     break;
 
   case 235:
-#line 2049 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"or"; }
+#line 2062 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"or"; ;}
     break;
 
   case 236:
-#line 2050 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"xor"; }
+#line 2063 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"xor"; ;}
     break;
 
   case 237:
-#line 2051 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"band"; }
+#line 2064 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"band"; ;}
     break;
 
   case 238:
-#line 2052 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bor"; }
+#line 2065 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"bor"; ;}
     break;
 
   case 239:
-#line 2053 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bxor"; }
+#line 2066 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"bxor"; ;}
     break;
 
   case 240:
-#line 2059 "compilers/imcc/imcc.y"
+#line 2072 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
            (yyval.i)->type &= ~ITCALL;
            (yyval.i)->type |= ITRESULT;
-         }
+         ;}
     break;
 
   case 241:
-#line 2064 "compilers/imcc/imcc.y"
-    {  (yyval.i) = 0; }
+#line 2077 "compilers/imcc/imcc.y"
+    {  (yyval.i) = 0; ;}
     break;
 
   case 242:
-#line 2071 "compilers/imcc/imcc.y"
+#line 2084 "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 243:
-#line 2077 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"add"; }
+#line 2090 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"add"; ;}
     break;
 
   case 244:
-#line 2078 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"sub"; }
+#line 2091 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"sub"; ;}
     break;
 
   case 245:
-#line 2079 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mul"; }
+#line 2092 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"mul"; ;}
     break;
 
   case 246:
-#line 2080 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"div"; }
+#line 2093 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"div"; ;}
     break;
 
   case 247:
-#line 2081 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mod"; }
+#line 2094 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"mod"; ;}
     break;
 
   case 248:
-#line 2082 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"fdiv"; }
+#line 2095 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"fdiv"; ;}
     break;
 
   case 249:
-#line 2083 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"concat"; }
+#line 2096 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"concat"; ;}
     break;
 
   case 250:
-#line 2084 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"band"; }
+#line 2097 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"band"; ;}
     break;
 
   case 251:
-#line 2085 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bor"; }
+#line 2098 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"bor"; ;}
     break;
 
   case 252:
-#line 2086 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bxor"; }
+#line 2099 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"bxor"; ;}
     break;
 
   case 253:
-#line 2087 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shr"; }
+#line 2100 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"shr"; ;}
     break;
 
   case 254:
-#line 2088 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shl"; }
+#line 2101 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"shl"; ;}
     break;
 
   case 255:
-#line 2089 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"lsr"; }
+#line 2102 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"lsr"; ;}
     break;
 
   case 256:
-#line 2095 "compilers/imcc/imcc.y"
+#line 2108 "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,
                       IMCC_INFO(interp) -> nargs,
                       IMCC_INFO(interp) -> keyvec, 1);
          mem_sys_free((yyvsp[(3) - (4)].s));
-       }
+       ;}
     break;
 
   case 257:
-#line 2105 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s));       mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2118 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s));       mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 258:
-#line 2106 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2119 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 259:
-#line 2107 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));     mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2120 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));     mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 260:
-#line 2109 "compilers/imcc/imcc.y"
+#line 2122 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
            if ((yyvsp[(1) - (1)].sr)->set != 'P')
                IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR, "Sub isn't a PMC");
-         }
+         ;}
     break;
 
   case 261:
-#line 2115 "compilers/imcc/imcc.y"
+#line 2128 "compilers/imcc/imcc.y"
     {
             /* disallow bareword method names; SREG name constants are fine */
             const char * const name = (yyvsp[(3) - (3)].sr)->name;
@@ -4729,52 +4742,52 @@
 
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = (yyvsp[(3) - (3)].sr);
-        }
+        ;}
     break;
 
   case 262:
-#line 2129 "compilers/imcc/imcc.y"
+#line 2142 "compilers/imcc/imcc.y"
     {
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = mk_const(interp, (yyvsp[(3) - (3)].s), 'U');
             mem_sys_free((yyvsp[(3) - (3)].s));
-         }
+         ;}
     break;
 
   case 263:
-#line 2135 "compilers/imcc/imcc.y"
+#line 2148 "compilers/imcc/imcc.y"
     {
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
             mem_sys_free((yyvsp[(3) - (3)].s));
-         }
+         ;}
     break;
 
   case 264:
-#line 2140 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
+#line 2153 "compilers/imcc/imcc.y"
+    { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); ;}
     break;
 
   case 265:
-#line 2146 "compilers/imcc/imcc.y"
+#line 2159 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
            IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
-         }
+         ;}
     break;
 
   case 266:
-#line 2150 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(2) - (5)].i); }
+#line 2163 "compilers/imcc/imcc.y"
+    { (yyval.i) = (yyvsp[(2) - (5)].i); ;}
     break;
 
   case 267:
-#line 2154 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+#line 2167 "compilers/imcc/imcc.y"
+    { (yyval.sr) = 0; ;}
     break;
 
   case 268:
-#line 2156 "compilers/imcc/imcc.y"
+#line 2169 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4783,11 +4796,11 @@
            }
            else
                add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 269:
-#line 2166 "compilers/imcc/imcc.y"
+#line 2179 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4796,79 +4809,79 @@
            }
            else
                add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
-         }
+         ;}
     break;
 
   case 270:
-#line 2176 "compilers/imcc/imcc.y"
+#line 2189 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            add_pcc_named_arg(IMCC_INFO(interp)->cur_call,
                 mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
            mem_sys_free((yyvsp[(3) - (5)].s));
-         }
+         ;}
     break;
 
   case 271:
-#line 2183 "compilers/imcc/imcc.y"
+#line 2196 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            add_pcc_named_arg_var(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 272:
-#line 2188 "compilers/imcc/imcc.y"
+#line 2201 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            add_pcc_named_arg(IMCC_INFO(interp)->cur_call,
                 mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
            mem_sys_free((yyvsp[(1) - (3)].s));
-         }
+         ;}
     break;
 
   case 273:
-#line 2197 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
+#line 2210 "compilers/imcc/imcc.y"
+    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); ;}
     break;
 
   case 274:
-#line 2201 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+#line 2214 "compilers/imcc/imcc.y"
+    { (yyval.t) = 0; ;}
     break;
 
   case 275:
-#line 2202 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
+#line 2215 "compilers/imcc/imcc.y"
+    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
     break;
 
   case 276:
-#line 2206 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_FLAT; }
+#line 2219 "compilers/imcc/imcc.y"
+    { (yyval.t) = VT_FLAT; ;}
     break;
 
   case 277:
-#line 2207 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_NAMED; }
+#line 2220 "compilers/imcc/imcc.y"
+    { (yyval.t) = VT_NAMED; ;}
     break;
 
   case 278:
-#line 2210 "compilers/imcc/imcc.y"
-    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
+#line 2223 "compilers/imcc/imcc.y"
+    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; ;}
     break;
 
   case 279:
-#line 2211 "compilers/imcc/imcc.y"
-    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; }
+#line 2224 "compilers/imcc/imcc.y"
+    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; ;}
     break;
 
   case 280:
-#line 2215 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
+#line 2228 "compilers/imcc/imcc.y"
+    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); ;}
     break;
 
   case 281:
-#line 2220 "compilers/imcc/imcc.y"
+#line 2233 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4877,20 +4890,20 @@
            }
            else
                add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 282:
-#line 2230 "compilers/imcc/imcc.y"
+#line 2243 "compilers/imcc/imcc.y"
     {
             add_pcc_named_result(IMCC_INFO(interp)->cur_call,
             mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
             mem_sys_free((yyvsp[(3) - (5)].s));
-         }
+         ;}
     break;
 
   case 283:
-#line 2236 "compilers/imcc/imcc.y"
+#line 2249 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4899,286 +4912,286 @@
            }
            else
                add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
-         }
+         ;}
     break;
 
   case 284:
-#line 2246 "compilers/imcc/imcc.y"
+#line 2259 "compilers/imcc/imcc.y"
     {
            add_pcc_named_result(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
            mem_sys_free((yyvsp[(1) - (3)].s));
-         }
+         ;}
     break;
 
   case 285:
-#line 2250 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+#line 2263 "compilers/imcc/imcc.y"
+    { (yyval.sr) = 0; ;}
     break;
 
   case 286:
-#line 2254 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+#line 2267 "compilers/imcc/imcc.y"
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 287:
-#line 2255 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+#line 2268 "compilers/imcc/imcc.y"
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 288:
-#line 2260 "compilers/imcc/imcc.y"
+#line 2273 "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 289:
-#line 2264 "compilers/imcc/imcc.y"
+#line 2277 "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 290:
-#line 2268 "compilers/imcc/imcc.y"
+#line 2281 "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 291:
-#line 2275 "compilers/imcc/imcc.y"
+#line 2288 "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 292:
-#line 2279 "compilers/imcc/imcc.y"
+#line 2292 "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 293:
-#line 2283 "compilers/imcc/imcc.y"
+#line 2296 "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 294:
-#line 2289 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+#line 2302 "compilers/imcc/imcc.y"
+    { (yyval.t) = 0; ;}
     break;
 
   case 295:
-#line 2290 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+#line 2303 "compilers/imcc/imcc.y"
+    { (yyval.t) = 0; ;}
     break;
 
   case 296:
-#line 2294 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"eq"; }
+#line 2307 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"eq"; ;}
     break;
 
   case 297:
-#line 2295 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"ne"; }
+#line 2308 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"ne"; ;}
     break;
 
   case 298:
-#line 2296 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"gt"; }
+#line 2309 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"gt"; ;}
     break;
 
   case 299:
-#line 2297 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"ge"; }
+#line 2310 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"ge"; ;}
     break;
 
   case 300:
-#line 2298 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"lt"; }
+#line 2311 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"lt"; ;}
     break;
 
   case 301:
-#line 2299 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"le"; }
+#line 2312 "compilers/imcc/imcc.y"
+    { (yyval.s) = (char *)"le"; ;}
     break;
 
   case 304:
-#line 2308 "compilers/imcc/imcc.y"
-    { (yyval.sr) = NULL; }
+#line 2321 "compilers/imcc/imcc.y"
+    { (yyval.sr) = NULL; ;}
     break;
 
   case 305:
-#line 2309 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(1) - (1)].sr); }
+#line 2322 "compilers/imcc/imcc.y"
+    { (yyval.sr) = (yyvsp[(1) - (1)].sr); ;}
     break;
 
   case 306:
-#line 2313 "compilers/imcc/imcc.y"
-    { (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
+#line 2326 "compilers/imcc/imcc.y"
+    { (yyval.sr) = IMCC_INFO(interp)->regs[0]; ;}
     break;
 
   case 308:
-#line 2318 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
+#line 2331 "compilers/imcc/imcc.y"
+    { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); ;}
     break;
 
   case 309:
-#line 2320 "compilers/imcc/imcc.y"
+#line 2333 "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);
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(3) - (4)].sr);
            (yyval.sr) = (yyvsp[(1) - (4)].sr);
-         }
+         ;}
     break;
 
   case 310:
-#line 2327 "compilers/imcc/imcc.y"
+#line 2340 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
            (yyval.sr) = (yyvsp[(2) - (3)].sr);
-         }
+         ;}
     break;
 
   case 312:
-#line 2334 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2347 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 313:
-#line 2335 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2348 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 314:
-#line 2339 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2352 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 315:
-#line 2340 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2353 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 316:
-#line 2344 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2357 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 317:
-#line 2345 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2358 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 322:
-#line 2359 "compilers/imcc/imcc.y"
+#line 2372 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys    = 0;
            IMCC_INFO(interp)->in_slice = 0;
-         }
+         ;}
     break;
 
   case 323:
-#line 2364 "compilers/imcc/imcc.y"
+#line 2377 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
                           IMCC_INFO(interp)->keys, 0);
-         }
+         ;}
     break;
 
   case 324:
-#line 2372 "compilers/imcc/imcc.y"
+#line 2385 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys = 0;
            IMCC_INFO(interp)->in_slice = 0;
-         }
+         ;}
     break;
 
   case 325:
-#line 2377 "compilers/imcc/imcc.y"
+#line 2390 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
                           IMCC_INFO(interp)->keys, 1);
-         }
+         ;}
     break;
 
   case 326:
-#line 2385 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
+#line 2398 "compilers/imcc/imcc.y"
+    { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); ;}
     break;
 
   case 327:
-#line 2387 "compilers/imcc/imcc.y"
+#line 2400 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
            (yyval.sr) = IMCC_INFO(interp)->keys[0];
-         }
+         ;}
     break;
 
   case 328:
-#line 2395 "compilers/imcc/imcc.y"
+#line 2408 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->in_slice)
                (yyvsp[(1) - (1)].sr)->type |= VT_START_SLICE | VT_END_SLICE;
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
-         }
+         ;}
     break;
 
   case 329:
-#line 2403 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
+#line 2416 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); ;}
     break;
 
   case 330:
-#line 2404 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
+#line 2417 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); ;}
     break;
 
   case 331:
-#line 2405 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
+#line 2418 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); ;}
     break;
 
   case 332:
-#line 2406 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
+#line 2419 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); ;}
     break;
 
   case 333:
-#line 2407 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2420 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 334:
-#line 2411 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2424 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 335:
-#line 2412 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2425 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 336:
-#line 2413 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2426 "compilers/imcc/imcc.y"
+    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 337:
-#line 2414 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2427 "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 5171 "compilers/imcc/imcparser.c"
+#line 5184 "compilers/imcc/imcparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5392,7 +5405,7 @@
 }
 
 
-#line 2420 "compilers/imcc/imcc.y"
+#line 2433 "compilers/imcc/imcc.y"
 
 
 /* I need this prototype somewhere... */

Modified: trunk/compilers/imcc/imcparser.h
==============================================================================
--- trunk/compilers/imcc/imcparser.h	Tue Jun 30 04:11:03 2009	(r39836)
+++ trunk/compilers/imcc/imcparser.h	Tue Jun 30 04:30:24 2009	(r39837)
@@ -295,7 +295,7 @@
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 1035 "compilers/imcc/imcc.y"
+#line 1048 "compilers/imcc/imcc.y"
 {
     IdList * idlist;
     int t;
@@ -303,7 +303,7 @@
     SymReg * sr;
     Instruction *i;
 }
-/* Line 1489 of yacc.c.  */
+/* Line 1529 of yacc.c.  */
 #line 297 "compilers/imcc/imcparser.h"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */

Modified: trunk/compilers/imcc/instructions.c
==============================================================================
--- trunk/compilers/imcc/instructions.c	Tue Jun 30 04:11:03 2009	(r39836)
+++ trunk/compilers/imcc/instructions.c	Tue Jun 30 04:30:24 2009	(r39837)
@@ -665,6 +665,7 @@
 */
 
 #define REGB_SIZE 256
+PARROT_IGNORABLE_RESULT
 int
 ins_print(PARROT_INTERP, ARGIN(PMC *io), ARGIN(const Instruction *ins))
 {

Modified: trunk/compilers/imcc/instructions.h
==============================================================================
--- trunk/compilers/imcc/instructions.h	Tue Jun 30 04:11:03 2009	(r39836)
+++ trunk/compilers/imcc/instructions.h	Tue Jun 30 04:30:24 2009	(r39837)
@@ -160,7 +160,11 @@
 void imcc_init_tables(PARROT_INTERP)
         __attribute__nonnull__(1);
 
-int ins_print(PARROT_INTERP, ARGIN(PMC *io), ARGIN(const Instruction *ins))
+PARROT_IGNORABLE_RESULT
+int /*@alt void@*/
+ins_print(PARROT_INTERP,
+    ARGIN(PMC *io),
+    ARGIN(const Instruction *ins))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         __attribute__nonnull__(3);

Modified: trunk/compilers/imcc/pbc.h
==============================================================================
--- trunk/compilers/imcc/pbc.h	Tue Jun 30 04:11:03 2009	(r39836)
+++ trunk/compilers/imcc/pbc.h	Tue Jun 30 04:30:24 2009	(r39837)
@@ -31,6 +31,7 @@
 int e_pbc_open(PARROT_INTERP, SHIM(void *param))
         __attribute__nonnull__(1);
 
+PARROT_WARN_UNUSED_RESULT
 INTVAL IMCC_int_from_reg(PARROT_INTERP, ARGIN(const SymReg *r))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);

Modified: trunk/compilers/imcc/reg_alloc.c
==============================================================================
--- trunk/compilers/imcc/reg_alloc.c	Tue Jun 30 04:11:03 2009	(r39836)
+++ trunk/compilers/imcc/reg_alloc.c	Tue Jun 30 04:30:24 2009	(r39837)
@@ -72,6 +72,7 @@
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*r);
 
+PARROT_WARN_UNUSED_RESULT
 static unsigned int first_avail(
     ARGIN(const IMC_Unit *unit),
     int reg_set,
@@ -79,9 +80,12 @@
         __attribute__nonnull__(1)
         FUNC_MODIFIES(*avail);
 
+PARROT_WARN_UNUSED_RESULT
+PARROT_MALLOC
 PARROT_CANNOT_RETURN_NULL
 static unsigned int* ig_allocate(int N);
 
+PARROT_WARN_UNUSED_RESULT
 static int ig_find_color(
     ARGIN(const IMC_Unit *unit),
     ARGIN(const char *avail))
@@ -145,6 +149,7 @@
         __attribute__nonnull__(1)
         FUNC_MODIFIES(*unit);
 
+PARROT_WARN_UNUSED_RESULT
 static int reg_sort_f(ARGIN(const void *a), ARGIN(const void *b))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
@@ -153,6 +158,7 @@
         __attribute__nonnull__(1)
         FUNC_MODIFIES(*unit);
 
+PARROT_WARN_UNUSED_RESULT
 static int try_allocate(PARROT_INTERP, ARGIN(IMC_Unit *unit))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
@@ -268,6 +274,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 unsigned int
 ig_test(int i, int j, int N, ARGIN(unsigned int *graph))
 {
@@ -285,6 +292,8 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
+PARROT_MALLOC
 PARROT_CANNOT_RETURN_NULL
 static unsigned int*
 ig_allocate(int N)
@@ -594,6 +603,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 static int
 reg_sort_f(ARGIN(const void *a), ARGIN(const void *b))
 {
@@ -987,6 +997,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 static int
 ig_find_color(ARGIN(const IMC_Unit *unit), ARGIN(const char *avail))
 {
@@ -1015,6 +1026,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 static int
 try_allocate(PARROT_INTERP, ARGIN(IMC_Unit *unit))
 {
@@ -1119,6 +1131,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 static unsigned int
 first_avail(ARGIN(const IMC_Unit *unit), int reg_set, ARGOUT_NULLOK(Set **avail))
 {


More information about the parrot-commits mailing list