Regenerate.
[oota-llvm.git] / lib / AsmParser / llvmAsmParser.cpp.cvs
index 361027cf4b572cd58197fbe4c2b98e57b0761338..73903c14acaa0b642077c8dcc34b6cd555c227e4 100644 (file)
@@ -837,9 +837,16 @@ static BasicBlock *defineBBVal(const ValID &ID) {
     CurFun.CurrentFunction->getBasicBlockList().remove(BB);
     CurFun.CurrentFunction->getBasicBlockList().push_back(BB);
 
+    // We're about to erase the entry, save the key so we can clean it up.
+    ValID Tmp = BBI->first;
+
     // Erase the forward ref from the map as its no longer "forward"
     CurFun.BBForwardRefs.erase(ID);
 
+    // The key has been removed from the map but so we don't want to leave 
+    // strdup'd memory around so destroy it too.
+    Tmp.destroy();
+
     // If its a numbered definition, bump the number and set the BB value.
     if (ID.Type == ValID::LocalID) {
       assert(ID.Num == CurFun.NextValNum && "Invalid new block number");
@@ -1272,7 +1279,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
 #endif
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 932 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 939 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
 typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -1320,7 +1327,7 @@ typedef union YYSTYPE {
   llvm::FCmpInst::Predicate         FPredicate;
 } YYSTYPE;
 /* Line 196 of yacc.c.  */
-#line 1324 "llvmAsmParser.tab.c"
+#line 1331 "llvmAsmParser.tab.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -1332,7 +1339,7 @@ typedef union YYSTYPE {
 
 
 /* Line 219 of yacc.c.  */
-#line 1336 "llvmAsmParser.tab.c"
+#line 1343 "llvmAsmParser.tab.c"
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -1680,35 +1687,35 @@ static const short int yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,  1086,  1086,  1086,  1086,  1086,  1086,  1086,  1086,  1086,
-    1086,  1087,  1087,  1087,  1087,  1087,  1087,  1088,  1088,  1088,
-    1088,  1088,  1088,  1089,  1089,  1089,  1089,  1089,  1089,  1092,
-    1092,  1093,  1093,  1094,  1094,  1095,  1095,  1096,  1096,  1100,
-    1100,  1101,  1101,  1102,  1102,  1103,  1103,  1104,  1104,  1105,
-    1105,  1106,  1106,  1107,  1108,  1113,  1114,  1114,  1116,  1116,
-    1117,  1117,  1121,  1125,  1130,  1130,  1132,  1136,  1142,  1143,
-    1144,  1145,  1146,  1150,  1151,  1152,  1156,  1157,  1161,  1162,
-    1163,  1167,  1168,  1169,  1170,  1171,  1174,  1175,  1176,  1177,
-    1178,  1179,  1180,  1187,  1188,  1189,  1190,  1193,  1194,  1199,
-    1200,  1203,  1204,  1211,  1212,  1218,  1219,  1227,  1235,  1236,
-    1241,  1242,  1243,  1248,  1261,  1261,  1261,  1261,  1264,  1268,
-    1272,  1279,  1284,  1292,  1310,  1328,  1333,  1345,  1355,  1359,
-    1369,  1376,  1383,  1390,  1395,  1400,  1407,  1408,  1415,  1422,
-    1430,  1435,  1446,  1474,  1490,  1519,  1547,  1572,  1591,  1617,
-    1637,  1649,  1656,  1722,  1732,  1742,  1748,  1758,  1764,  1774,
-    1779,  1784,  1792,  1804,  1826,  1834,  1840,  1851,  1856,  1861,
-    1867,  1873,  1882,  1886,  1894,  1894,  1905,  1910,  1918,  1919,
-    1923,  1923,  1927,  1927,  1930,  1933,  1945,  1969,  1980,  1980,
-    1990,  1990,  1998,  1998,  2008,  2011,  2017,  2030,  2034,  2039,
-    2041,  2046,  2051,  2060,  2070,  2081,  2085,  2094,  2103,  2108,
-    2220,  2220,  2222,  2231,  2231,  2233,  2238,  2250,  2254,  2259,
-    2263,  2267,  2271,  2275,  2279,  2283,  2287,  2291,  2316,  2320,
-    2334,  2338,  2342,  2346,  2352,  2352,  2358,  2367,  2371,  2380,
-    2389,  2398,  2402,  2407,  2411,  2415,  2420,  2430,  2449,  2458,
-    2525,  2529,  2536,  2547,  2560,  2570,  2581,  2591,  2599,  2607,
-    2610,  2611,  2618,  2622,  2627,  2648,  2665,  2678,  2691,  2703,
-    2711,  2718,  2724,  2730,  2736,  2751,  2815,  2820,  2824,  2831,
-    2838,  2846,  2853,  2861,  2869,  2883,  2900
+       0,  1093,  1093,  1093,  1093,  1093,  1093,  1093,  1093,  1093,
+    1093,  1094,  1094,  1094,  1094,  1094,  1094,  1095,  1095,  1095,
+    1095,  1095,  1095,  1096,  1096,  1096,  1096,  1096,  1096,  1099,
+    1099,  1100,  1100,  1101,  1101,  1102,  1102,  1103,  1103,  1107,
+    1107,  1108,  1108,  1109,  1109,  1110,  1110,  1111,  1111,  1112,
+    1112,  1113,  1113,  1114,  1115,  1120,  1121,  1121,  1123,  1123,
+    1124,  1124,  1128,  1132,  1137,  1137,  1139,  1143,  1149,  1150,
+    1151,  1152,  1153,  1157,  1158,  1159,  1163,  1164,  1168,  1169,
+    1170,  1174,  1175,  1176,  1177,  1178,  1181,  1182,  1183,  1184,
+    1185,  1186,  1187,  1194,  1195,  1196,  1197,  1200,  1201,  1206,
+    1207,  1210,  1211,  1218,  1219,  1225,  1226,  1234,  1242,  1243,
+    1248,  1249,  1250,  1255,  1268,  1268,  1268,  1268,  1271,  1275,
+    1279,  1286,  1291,  1299,  1319,  1339,  1344,  1356,  1366,  1370,
+    1380,  1387,  1394,  1401,  1406,  1411,  1418,  1419,  1426,  1433,
+    1441,  1447,  1459,  1487,  1503,  1532,  1560,  1585,  1604,  1630,
+    1650,  1662,  1669,  1735,  1745,  1755,  1761,  1771,  1777,  1787,
+    1792,  1797,  1805,  1817,  1839,  1847,  1853,  1864,  1869,  1874,
+    1880,  1886,  1895,  1899,  1907,  1907,  1918,  1923,  1931,  1932,
+    1936,  1936,  1940,  1940,  1943,  1946,  1958,  1982,  1993,  1993,
+    2003,  2003,  2011,  2011,  2021,  2024,  2030,  2043,  2047,  2052,
+    2054,  2059,  2064,  2073,  2083,  2094,  2098,  2107,  2116,  2121,
+    2233,  2233,  2235,  2244,  2244,  2246,  2251,  2263,  2267,  2272,
+    2276,  2280,  2284,  2288,  2292,  2296,  2300,  2304,  2329,  2333,
+    2347,  2351,  2355,  2359,  2365,  2365,  2371,  2380,  2384,  2393,
+    2402,  2411,  2415,  2420,  2424,  2428,  2433,  2443,  2462,  2471,
+    2540,  2544,  2551,  2562,  2575,  2585,  2596,  2606,  2615,  2624,
+    2627,  2628,  2635,  2639,  2644,  2665,  2682,  2696,  2710,  2722,
+    2730,  2737,  2743,  2749,  2755,  2770,  2834,  2839,  2843,  2850,
+    2857,  2865,  2872,  2880,  2888,  2902,  2919
 };
 #endif
 
@@ -3030,142 +3037,142 @@ yyreduce:
   switch (yyn)
     {
         case 29:
-#line 1092 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1099 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
     break;
 
   case 30:
-#line 1092 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1099 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
     break;
 
   case 31:
-#line 1093 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1100 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
     break;
 
   case 32:
-#line 1093 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1100 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
     break;
 
   case 33:
-#line 1094 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1101 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
     break;
 
   case 34:
-#line 1094 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1101 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
     break;
 
   case 35:
-#line 1095 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1102 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
     break;
 
   case 36:
-#line 1095 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1102 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
     break;
 
   case 37:
-#line 1096 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1103 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
     break;
 
   case 38:
-#line 1096 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1103 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
     break;
 
   case 39:
-#line 1100 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1107 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
     break;
 
   case 40:
-#line 1100 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1107 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
     break;
 
   case 41:
-#line 1101 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1108 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
     break;
 
   case 42:
-#line 1101 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1108 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
     break;
 
   case 43:
-#line 1102 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1109 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
     break;
 
   case 44:
-#line 1102 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1109 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
     break;
 
   case 45:
-#line 1103 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1110 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
     break;
 
   case 46:
-#line 1103 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1110 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
     break;
 
   case 47:
-#line 1104 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1111 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
     break;
 
   case 48:
-#line 1104 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1111 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
     break;
 
   case 49:
-#line 1105 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1112 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
     break;
 
   case 50:
-#line 1105 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1112 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
     break;
 
   case 51:
-#line 1106 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1113 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
     break;
 
   case 52:
-#line 1106 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1113 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
     break;
 
   case 53:
-#line 1107 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1114 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
     break;
 
   case 54:
-#line 1108 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1115 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
     break;
 
   case 61:
-#line 1117 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1124 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 62:
-#line 1121 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1128 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = (yyvsp[-1].StrVal);
     CHECK_FOR_ERROR
@@ -3173,7 +3180,7 @@ yyreduce:
     break;
 
   case 63:
-#line 1125 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1132 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = 0;
     CHECK_FOR_ERROR
@@ -3181,7 +3188,7 @@ yyreduce:
     break;
 
   case 66:
-#line 1132 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1139 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = (yyvsp[-1].StrVal);
     CHECK_FOR_ERROR
@@ -3189,7 +3196,7 @@ yyreduce:
     break;
 
   case 67:
-#line 1136 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1143 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = 0;
     CHECK_FOR_ERROR
@@ -3197,127 +3204,127 @@ yyreduce:
     break;
 
   case 68:
-#line 1142 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1149 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 69:
-#line 1143 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1150 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 70:
-#line 1144 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1151 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
   case 71:
-#line 1145 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1152 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
     break;
 
   case 72:
-#line 1146 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1153 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 73:
-#line 1150 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1157 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 74:
-#line 1151 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1158 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 75:
-#line 1152 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1159 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 76:
-#line 1156 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1163 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
     break;
 
   case 77:
-#line 1157 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1164 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::HiddenVisibility;  ;}
     break;
 
   case 78:
-#line 1161 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1168 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 79:
-#line 1162 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1169 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 80:
-#line 1163 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1170 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 81:
-#line 1167 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1174 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 82:
-#line 1168 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1175 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 83:
-#line 1169 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1176 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
   case 84:
-#line 1170 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1177 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 85:
-#line 1171 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1178 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 86:
-#line 1174 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1181 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 87:
-#line 1175 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1182 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 88:
-#line 1176 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1183 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::Fast; ;}
     break;
 
   case 89:
-#line 1177 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1184 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::Cold; ;}
     break;
 
   case 90:
-#line 1178 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1185 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
     break;
 
   case 91:
-#line 1179 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1186 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
     break;
 
   case 92:
-#line 1180 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1187 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
                    if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val))
                      GEN_ERROR("Calling conv too large");
@@ -3327,61 +3334,61 @@ yyreduce:
     break;
 
   case 93:
-#line 1187 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1194 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ParamAttrs) = FunctionType::ZExtAttribute;      ;}
     break;
 
   case 94:
-#line 1188 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1195 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ParamAttrs) = FunctionType::SExtAttribute;      ;}
     break;
 
   case 95:
-#line 1189 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1196 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ParamAttrs) = FunctionType::InRegAttribute;     ;}
     break;
 
   case 96:
-#line 1190 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1197 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ParamAttrs) = FunctionType::StructRetAttribute; ;}
     break;
 
   case 97:
-#line 1193 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1200 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ParamAttrs) = FunctionType::NoAttributeSet; ;}
     break;
 
   case 98:
-#line 1194 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1201 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
                 (yyval.ParamAttrs) = FunctionType::ParameterAttributes((yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs));
               ;}
     break;
 
   case 99:
-#line 1199 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1206 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ParamAttrs) = FunctionType::NoReturnAttribute; ;}
     break;
 
   case 101:
-#line 1203 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1210 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ParamAttrs) = FunctionType::NoAttributeSet; ;}
     break;
 
   case 102:
-#line 1204 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1211 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
                 (yyval.ParamAttrs) = FunctionType::ParameterAttributes((yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs));
               ;}
     break;
 
   case 103:
-#line 1211 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1218 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 104:
-#line 1212 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1219 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[0].UInt64Val);
   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3391,12 +3398,12 @@ yyreduce:
     break;
 
   case 105:
-#line 1218 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1225 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 106:
-#line 1219 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1226 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[0].UInt64Val);
   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3406,7 +3413,7 @@ yyreduce:
     break;
 
   case 107:
-#line 1227 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1234 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i)
     if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\')
@@ -3417,27 +3424,27 @@ yyreduce:
     break;
 
   case 108:
-#line 1235 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1242 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 109:
-#line 1236 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1243 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = (yyvsp[0].StrVal); ;}
     break;
 
   case 110:
-#line 1241 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1248 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {;}
     break;
 
   case 111:
-#line 1242 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1249 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {;}
     break;
 
   case 112:
-#line 1243 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1250 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV->setSection((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -3446,7 +3453,7 @@ yyreduce:
     break;
 
   case 113:
-#line 1248 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1255 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val)))
       GEN_ERROR("Alignment must be a power of two");
@@ -3456,7 +3463,7 @@ yyreduce:
     break;
 
   case 118:
-#line 1264 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1271 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
     CHECK_FOR_ERROR
@@ -3464,7 +3471,7 @@ yyreduce:
     break;
 
   case 119:
-#line 1268 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1275 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType));
     CHECK_FOR_ERROR
@@ -3472,7 +3479,7 @@ yyreduce:
     break;
 
   case 120:
-#line 1272 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1279 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                             // Pointer type?
     if (*(yyvsp[-1].TypeVal) == Type::LabelTy)
       GEN_ERROR("Cannot form a pointer to a basic block");
@@ -3483,7 +3490,7 @@ yyreduce:
     break;
 
   case 121:
-#line 1279 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1286 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {            // Named types are also simple types...
     const Type* tmp = getTypeVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
@@ -3492,7 +3499,7 @@ yyreduce:
     break;
 
   case 122:
-#line 1284 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1291 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                   // Type UpReference
     if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range");
     OpaqueType *OT = OpaqueType::get();        // Use temporary placeholder
@@ -3504,14 +3511,16 @@ yyreduce:
     break;
 
   case 123:
-#line 1292 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1299 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Params;
     std::vector<FunctionType::ParameterAttributes> Attrs;
     Attrs.push_back((yyvsp[0].ParamAttrs));
     for (TypeWithAttrsList::iterator I=(yyvsp[-2].TypeWithAttrsList)->begin(), E=(yyvsp[-2].TypeWithAttrsList)->end(); I != E; ++I) {
-      Params.push_back(I->Ty->get());
-      if (I->Ty->get() != Type::VoidTy)
+      const Type *Ty = I->Ty->get();
+      delete I->Ty; I->Ty = 0;
+      Params.push_back(Ty);
+      if (Ty != Type::VoidTy)
         Attrs.push_back(I->Attrs);
     }
     bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
@@ -3526,14 +3535,16 @@ yyreduce:
     break;
 
   case 124:
-#line 1310 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1319 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Params;
     std::vector<FunctionType::ParameterAttributes> Attrs;
     Attrs.push_back((yyvsp[0].ParamAttrs));
     for (TypeWithAttrsList::iterator I=(yyvsp[-2].TypeWithAttrsList)->begin(), E=(yyvsp[-2].TypeWithAttrsList)->end(); I != E; ++I) {
-      Params.push_back(I->Ty->get());
-      if (I->Ty->get() != Type::VoidTy)
+      const Type* Ty = I->Ty->get();
+      delete I->Ty; I->Ty = 0;
+      Params.push_back(Ty);
+      if (Ty != Type::VoidTy)
         Attrs.push_back(I->Attrs);
     }
     bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
@@ -3547,7 +3558,7 @@ yyreduce:
     break;
 
   case 125:
-#line 1328 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1339 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {          // Sized array type?
     (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[-1].TypeVal), (unsigned)(yyvsp[-3].UInt64Val))));
     delete (yyvsp[-1].TypeVal);
@@ -3556,7 +3567,7 @@ yyreduce:
     break;
 
   case 126:
-#line 1333 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1344 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {          // Vector type?
      const llvm::Type* ElemTy = (yyvsp[-1].TypeVal)->get();
      if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val))
@@ -3572,7 +3583,7 @@ yyreduce:
     break;
 
   case 127:
-#line 1345 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1356 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                        // Structure type?
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-1].TypeList)->begin(),
@@ -3586,7 +3597,7 @@ yyreduce:
     break;
 
   case 128:
-#line 1355 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1366 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                                  // Empty structure type?
     (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>()));
     CHECK_FOR_ERROR
@@ -3594,7 +3605,7 @@ yyreduce:
     break;
 
   case 129:
-#line 1359 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1370 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-2].TypeList)->begin(),
@@ -3608,7 +3619,7 @@ yyreduce:
     break;
 
   case 130:
-#line 1369 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1380 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                         // Empty structure type?
     (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>(), true));
     CHECK_FOR_ERROR
@@ -3616,7 +3627,7 @@ yyreduce:
     break;
 
   case 131:
-#line 1376 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1387 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { 
     (yyval.TypeWithAttrs).Ty = (yyvsp[-1].TypeVal); 
     (yyval.TypeWithAttrs).Attrs = (yyvsp[0].ParamAttrs); 
@@ -3624,7 +3635,7 @@ yyreduce:
     break;
 
   case 132:
-#line 1383 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1394 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -3635,14 +3646,14 @@ yyreduce:
     break;
 
   case 133:
-#line 1390 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1401 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
   ;}
     break;
 
   case 134:
-#line 1395 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1406 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
     (yyval.TypeWithAttrsList)->push_back((yyvsp[0].TypeWithAttrs));
@@ -3651,7 +3662,7 @@ yyreduce:
     break;
 
   case 135:
-#line 1400 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1411 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeWithAttrsList)=(yyvsp[-2].TypeWithAttrsList))->push_back((yyvsp[0].TypeWithAttrs));
     CHECK_FOR_ERROR
@@ -3659,7 +3670,7 @@ yyreduce:
     break;
 
   case 137:
-#line 1408 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1419 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList)=(yyvsp[-2].TypeWithAttrsList);
     TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
@@ -3670,7 +3681,7 @@ yyreduce:
     break;
 
   case 138:
-#line 1415 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1426 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList;
     TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
@@ -3681,7 +3692,7 @@ yyreduce:
     break;
 
   case 139:
-#line 1422 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1433 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
     CHECK_FOR_ERROR
@@ -3689,24 +3700,26 @@ yyreduce:
     break;
 
   case 140:
-#line 1430 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1441 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeHolder>();
-    (yyval.TypeList)->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal);
+    (yyval.TypeList)->push_back(*(yyvsp[0].TypeVal)); 
+    delete (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 141:
-#line 1435 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1447 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
-    ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal);
+    ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(*(yyvsp[0].TypeVal)); 
+    delete (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 142:
-#line 1446 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1459 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -3738,7 +3751,7 @@ yyreduce:
     break;
 
   case 143:
-#line 1474 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1487 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -3758,7 +3771,7 @@ yyreduce:
     break;
 
   case 144:
-#line 1490 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1503 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -3791,7 +3804,7 @@ yyreduce:
     break;
 
   case 145:
-#line 1519 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1532 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -3823,7 +3836,7 @@ yyreduce:
     break;
 
   case 146:
-#line 1547 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1560 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal)->get());
     if (STy == 0)
@@ -3852,7 +3865,7 @@ yyreduce:
     break;
 
   case 147:
-#line 1572 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1585 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -3875,7 +3888,7 @@ yyreduce:
     break;
 
   case 148:
-#line 1591 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1604 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-5].TypeVal)->get());
     if (STy == 0)
@@ -3905,7 +3918,7 @@ yyreduce:
     break;
 
   case 149:
-#line 1617 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1630 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
@@ -3929,7 +3942,7 @@ yyreduce:
     break;
 
   case 150:
-#line 1637 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1650 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -3945,7 +3958,7 @@ yyreduce:
     break;
 
   case 151:
-#line 1649 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1662 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -3956,7 +3969,7 @@ yyreduce:
     break;
 
   case 152:
-#line 1656 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1669 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4026,7 +4039,7 @@ yyreduce:
     break;
 
   case 153:
-#line 1722 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1735 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4040,7 +4053,7 @@ yyreduce:
     break;
 
   case 154:
-#line 1732 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1745 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4054,7 +4067,7 @@ yyreduce:
     break;
 
   case 155:
-#line 1742 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1755 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {      // integral constants
     if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val)))
       GEN_ERROR("Constant value doesn't fit in type");
@@ -4064,7 +4077,7 @@ yyreduce:
     break;
 
   case 156:
-#line 1748 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1761 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
     uint32_t BitWidth = cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth();
     if ((yyvsp[0].APIntVal)->getBitWidth() > BitWidth) {
@@ -4078,7 +4091,7 @@ yyreduce:
     break;
 
   case 157:
-#line 1758 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1771 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {      // integral constants
     if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val)))
       GEN_ERROR("Constant value doesn't fit in type");
@@ -4088,7 +4101,7 @@ yyreduce:
     break;
 
   case 158:
-#line 1764 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1777 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
     uint32_t BitWidth = cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth();
     if ((yyvsp[0].APIntVal)->getBitWidth() > BitWidth) {
@@ -4102,7 +4115,7 @@ yyreduce:
     break;
 
   case 159:
-#line 1774 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1787 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                      // Boolean constants
     assert(cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth() == 1 && "Not Bool?");
     (yyval.ConstVal) = ConstantInt::getTrue();
@@ -4111,7 +4124,7 @@ yyreduce:
     break;
 
   case 160:
-#line 1779 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1792 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                     // Boolean constants
     assert(cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth() == 1 && "Not Bool?");
     (yyval.ConstVal) = ConstantInt::getFalse();
@@ -4120,7 +4133,7 @@ yyreduce:
     break;
 
   case 161:
-#line 1784 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1797 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                   // Float & Double constants
     if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].FPVal)))
       GEN_ERROR("Floating point constant invalid for type");
@@ -4130,7 +4143,7 @@ yyreduce:
     break;
 
   case 162:
-#line 1792 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1805 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4146,7 +4159,7 @@ yyreduce:
     break;
 
   case 163:
-#line 1804 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1817 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[-2].ConstVal)->getType()))
       GEN_ERROR("GetElementPtr requires a pointer operand");
@@ -4172,7 +4185,7 @@ yyreduce:
     break;
 
   case 164:
-#line 1826 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1839 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-5].ConstVal)->getType() != Type::Int1Ty)
       GEN_ERROR("Select condition must be of boolean type");
@@ -4184,7 +4197,7 @@ yyreduce:
     break;
 
   case 165:
-#line 1834 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1847 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("Binary operator types must match");
@@ -4194,7 +4207,7 @@ yyreduce:
     break;
 
   case 166:
-#line 1840 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1853 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("Logical operator types must match");
@@ -4209,7 +4222,7 @@ yyreduce:
     break;
 
   case 167:
-#line 1851 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1864 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("icmp operand types must match");
@@ -4218,7 +4231,7 @@ yyreduce:
     break;
 
   case 168:
-#line 1856 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1869 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("fcmp operand types must match");
@@ -4227,7 +4240,7 @@ yyreduce:
     break;
 
   case 169:
-#line 1861 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1874 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid extractelement operands");
@@ -4237,7 +4250,7 @@ yyreduce:
     break;
 
   case 170:
-#line 1867 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1880 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid insertelement operands");
@@ -4247,7 +4260,7 @@ yyreduce:
     break;
 
   case 171:
-#line 1873 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1886 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid shufflevector operands");
@@ -4257,7 +4270,7 @@ yyreduce:
     break;
 
   case 172:
-#line 1882 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1895 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
@@ -4265,7 +4278,7 @@ yyreduce:
     break;
 
   case 173:
-#line 1886 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1899 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ConstVector) = new std::vector<Constant*>();
     (yyval.ConstVector)->push_back((yyvsp[0].ConstVal));
@@ -4274,17 +4287,17 @@ yyreduce:
     break;
 
   case 174:
-#line 1894 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1907 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 175:
-#line 1894 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1907 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 176:
-#line 1905 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1918 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
@@ -4293,7 +4306,7 @@ yyreduce:
     break;
 
   case 177:
-#line 1910 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1923 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
@@ -4302,12 +4315,12 @@ yyreduce:
     break;
 
   case 180:
-#line 1923 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1936 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { CurFun.isDeclare = false; ;}
     break;
 
   case 181:
-#line 1923 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1936 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurFun.FunctionDone();
     CHECK_FOR_ERROR
@@ -4315,26 +4328,26 @@ yyreduce:
     break;
 
   case 182:
-#line 1927 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1940 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { CurFun.isDeclare = true; ;}
     break;
 
   case 183:
-#line 1927 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1940 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 184:
-#line 1930 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1943 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 185:
-#line 1933 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1946 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     // Emit an error if there are any unresolved types left.
     if (!CurModule.LateResolveTypes.empty()) {
@@ -4350,7 +4363,7 @@ yyreduce:
     break;
 
   case 186:
-#line 1945 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1958 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -4378,7 +4391,7 @@ yyreduce:
     break;
 
   case 187:
-#line 1969 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1982 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     ResolveTypeTo((yyvsp[-2].StrVal), (yyvsp[0].PrimType));
 
@@ -4393,7 +4406,7 @@ yyreduce:
     break;
 
   case 188:
-#line 1980 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 1993 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { 
     /* "Externally Visible" Linkage */
     if ((yyvsp[0].ConstVal) == 0) 
@@ -4405,14 +4418,14 @@ yyreduce:
     break;
 
   case 189:
-#line 1987 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2000 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 190:
-#line 1990 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2003 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[0].ConstVal) == 0) 
       GEN_ERROR("Global value initializer is not a constant");
@@ -4422,14 +4435,14 @@ yyreduce:
     break;
 
   case 191:
-#line 1995 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2008 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 192:
-#line 1998 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2011 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -4440,7 +4453,7 @@ yyreduce:
     break;
 
   case 193:
-#line 2004 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2017 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
     CHECK_FOR_ERROR
@@ -4448,21 +4461,21 @@ yyreduce:
     break;
 
   case 194:
-#line 2008 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2021 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { 
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 195:
-#line 2011 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2024 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 196:
-#line 2017 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2030 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
   char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
@@ -4478,7 +4491,7 @@ yyreduce:
     break;
 
   case 197:
-#line 2030 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2043 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -4486,7 +4499,7 @@ yyreduce:
     break;
 
   case 198:
-#line 2034 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2047 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -4494,7 +4507,7 @@ yyreduce:
     break;
 
   case 200:
-#line 2041 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2054 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
           CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
           free((yyvsp[0].StrVal));
@@ -4503,7 +4516,7 @@ yyreduce:
     break;
 
   case 201:
-#line 2046 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2059 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
           CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
           free((yyvsp[0].StrVal));
@@ -4512,14 +4525,14 @@ yyreduce:
     break;
 
   case 202:
-#line 2051 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2064 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
           CHECK_FOR_ERROR
         ;}
     break;
 
   case 203:
-#line 2060 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2073 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -4533,7 +4546,7 @@ yyreduce:
     break;
 
   case 204:
-#line 2070 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2083 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -4547,7 +4560,7 @@ yyreduce:
     break;
 
   case 205:
-#line 2081 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2094 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[0].ArgList);
     CHECK_FOR_ERROR
@@ -4555,7 +4568,7 @@ yyreduce:
     break;
 
   case 206:
-#line 2085 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2098 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[-2].ArgList);
     struct ArgListEntry E;
@@ -4568,7 +4581,7 @@ yyreduce:
     break;
 
   case 207:
-#line 2094 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2107 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = new ArgListType;
     struct ArgListEntry E;
@@ -4581,7 +4594,7 @@ yyreduce:
     break;
 
   case 208:
-#line 2103 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2116 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = 0;
     CHECK_FOR_ERROR
@@ -4589,7 +4602,7 @@ yyreduce:
     break;
 
   case 209:
-#line 2109 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2122 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   UnEscapeLexed((yyvsp[-6].StrVal));
   std::string FunctionName((yyvsp[-6].StrVal));
@@ -4703,7 +4716,7 @@ yyreduce:
     break;
 
   case 212:
-#line 2222 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2235 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = CurFun.CurrentFunction;
 
@@ -4715,7 +4728,7 @@ yyreduce:
     break;
 
   case 215:
-#line 2233 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2246 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   CHECK_FOR_ERROR
@@ -4723,7 +4736,7 @@ yyreduce:
     break;
 
   case 216:
-#line 2238 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2251 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     CurFun.CurrentFunction->setLinkage((yyvsp[-2].Linkage));
     CurFun.CurrentFunction->setVisibility((yyvsp[-1].Visibility));
@@ -4734,7 +4747,7 @@ yyreduce:
     break;
 
   case 217:
-#line 2250 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2263 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
@@ -4742,7 +4755,7 @@ yyreduce:
     break;
 
   case 218:
-#line 2254 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2267 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
@@ -4750,7 +4763,7 @@ yyreduce:
     break;
 
   case 219:
-#line 2259 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2272 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {    // A reference to a direct constant
     (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val));
     CHECK_FOR_ERROR
@@ -4758,7 +4771,7 @@ yyreduce:
     break;
 
   case 220:
-#line 2263 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2276 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val));
     CHECK_FOR_ERROR
@@ -4766,7 +4779,7 @@ yyreduce:
     break;
 
   case 221:
-#line 2267 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2280 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                     // Perhaps it's an FP constant?
     (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal));
     CHECK_FOR_ERROR
@@ -4774,7 +4787,7 @@ yyreduce:
     break;
 
   case 222:
-#line 2271 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2284 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantInt::getTrue());
     CHECK_FOR_ERROR
@@ -4782,7 +4795,7 @@ yyreduce:
     break;
 
   case 223:
-#line 2275 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2288 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantInt::getFalse());
     CHECK_FOR_ERROR
@@ -4790,7 +4803,7 @@ yyreduce:
     break;
 
   case 224:
-#line 2279 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2292 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createNull();
     CHECK_FOR_ERROR
@@ -4798,7 +4811,7 @@ yyreduce:
     break;
 
   case 225:
-#line 2283 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2296 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createUndef();
     CHECK_FOR_ERROR
@@ -4806,7 +4819,7 @@ yyreduce:
     break;
 
   case 226:
-#line 2287 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2300 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {     // A vector zero constant.
     (yyval.ValIDVal) = ValID::createZeroInit();
     CHECK_FOR_ERROR
@@ -4814,7 +4827,7 @@ yyreduce:
     break;
 
   case 227:
-#line 2291 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2304 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized packed vector
     const Type *ETy = (*(yyvsp[-1].ConstVector))[0]->getType();
     int NumElements = (yyvsp[-1].ConstVector)->size(); 
@@ -4843,7 +4856,7 @@ yyreduce:
     break;
 
   case 228:
-#line 2316 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2329 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
@@ -4851,7 +4864,7 @@ yyreduce:
     break;
 
   case 229:
-#line 2320 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2333 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     char *End = UnEscapeLexed((yyvsp[-2].StrVal), true);
     std::string AsmStr = std::string((yyvsp[-2].StrVal), End);
@@ -4865,7 +4878,7 @@ yyreduce:
     break;
 
   case 230:
-#line 2334 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2347 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {  // Is it an integer reference...?
     (yyval.ValIDVal) = ValID::createLocalID((yyvsp[0].UIntVal));
     CHECK_FOR_ERROR
@@ -4873,7 +4886,7 @@ yyreduce:
     break;
 
   case 231:
-#line 2338 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2351 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createGlobalID((yyvsp[0].UIntVal));
     CHECK_FOR_ERROR
@@ -4881,7 +4894,7 @@ yyreduce:
     break;
 
   case 232:
-#line 2342 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2355 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                   // Is it a named reference...?
     (yyval.ValIDVal) = ValID::createLocalName((yyvsp[0].StrVal));
     CHECK_FOR_ERROR
@@ -4889,7 +4902,7 @@ yyreduce:
     break;
 
   case 233:
-#line 2346 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2359 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                   // Is it a named reference...?
     (yyval.ValIDVal) = ValID::createGlobalName((yyvsp[0].StrVal));
     CHECK_FOR_ERROR
@@ -4897,7 +4910,7 @@ yyreduce:
     break;
 
   case 236:
-#line 2358 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2371 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4908,7 +4921,7 @@ yyreduce:
     break;
 
   case 237:
-#line 2367 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2380 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
     CHECK_FOR_ERROR
@@ -4916,7 +4929,7 @@ yyreduce:
     break;
 
   case 238:
-#line 2371 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2384 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { // Do not allow functions with 0 basic blocks   
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
     CHECK_FOR_ERROR
@@ -4924,7 +4937,7 @@ yyreduce:
     break;
 
   case 239:
-#line 2380 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2393 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal));
     CHECK_FOR_ERROR
@@ -4936,7 +4949,7 @@ yyreduce:
     break;
 
   case 240:
-#line 2389 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2402 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (CastInst *CI1 = dyn_cast<CastInst>((yyvsp[0].InstVal)))
       if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
@@ -4949,7 +4962,7 @@ yyreduce:
     break;
 
   case 241:
-#line 2398 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2411 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {          // Empty space between instruction lists
     (yyval.BasicBlockVal) = defineBBVal(ValID::createLocalID(CurFun.NextValNum));
     CHECK_FOR_ERROR
@@ -4957,7 +4970,7 @@ yyreduce:
     break;
 
   case 242:
-#line 2402 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2415 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {             // Labelled (named) basic block
     (yyval.BasicBlockVal) = defineBBVal(ValID::createLocalName((yyvsp[0].StrVal)));
     CHECK_FOR_ERROR
@@ -4965,7 +4978,7 @@ yyreduce:
     break;
 
   case 243:
-#line 2407 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2420 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {              // Return with a result...
     (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
@@ -4973,7 +4986,7 @@ yyreduce:
     break;
 
   case 244:
-#line 2411 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2424 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                                    // Return with no result...
     (yyval.TermInstVal) = new ReturnInst();
     CHECK_FOR_ERROR
@@ -4981,7 +4994,7 @@ yyreduce:
     break;
 
   case 245:
-#line 2415 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2428 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {                           // Unconditional Branch...
     BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
@@ -4990,7 +5003,7 @@ yyreduce:
     break;
 
   case 246:
-#line 2420 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2433 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {  
     assert(cast<IntegerType>((yyvsp[-7].PrimType))->getBitWidth() == 1 && "Not Bool?");
     BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal));
@@ -5004,7 +5017,7 @@ yyreduce:
     break;
 
   case 247:
-#line 2430 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2443 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-7].PrimType), (yyvsp[-6].ValIDVal));
     CHECK_FOR_ERROR
@@ -5027,7 +5040,7 @@ yyreduce:
     break;
 
   case 248:
-#line 2449 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2462 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-6].PrimType), (yyvsp[-5].ValIDVal));
     CHECK_FOR_ERROR
@@ -5040,7 +5053,7 @@ yyreduce:
     break;
 
   case 249:
-#line 2459 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2472 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
 
     // Handle the short syntax
@@ -5064,6 +5077,8 @@ yyreduce:
       PFTy = PointerType::get(Ty);
     }
 
+    delete (yyvsp[-11].TypeVal);
+
     Value *V = getVal(PFTy, (yyvsp[-10].ValIDVal));   // Get the function we're calling...
     CHECK_FOR_ERROR
     BasicBlock *Normal = getBBVal((yyvsp[-3].ValIDVal));
@@ -5110,7 +5125,7 @@ yyreduce:
     break;
 
   case 250:
-#line 2525 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2540 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnwindInst();
     CHECK_FOR_ERROR
@@ -5118,7 +5133,7 @@ yyreduce:
     break;
 
   case 251:
-#line 2529 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2544 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnreachableInst();
     CHECK_FOR_ERROR
@@ -5126,7 +5141,7 @@ yyreduce:
     break;
 
   case 252:
-#line 2536 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2551 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = (yyvsp[-5].JumpTable);
     Constant *V = cast<Constant>(getExistingVal((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
@@ -5141,7 +5156,7 @@ yyreduce:
     break;
 
   case 253:
-#line 2547 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2562 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
     Constant *V = cast<Constant>(getExistingVal((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
@@ -5157,7 +5172,7 @@ yyreduce:
     break;
 
   case 254:
-#line 2560 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2575 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     // Is this definition named?? if so, assign the name...
     setValueName((yyvsp[0].InstVal), (yyvsp[-1].StrVal));
@@ -5169,7 +5184,7 @@ yyreduce:
     break;
 
   case 255:
-#line 2570 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2585 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {    // Used for PHI nodes
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-5].TypeVal))->getDescription());
@@ -5184,7 +5199,7 @@ yyreduce:
     break;
 
   case 256:
-#line 2581 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2596 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.PHIList) = (yyvsp[-6].PHIList);
     Value* tmpVal = getVal((yyvsp[-6].PHIList)->front().first->getType(), (yyvsp[-3].ValIDVal));
@@ -5196,7 +5211,7 @@ yyreduce:
     break;
 
   case 257:
-#line 2591 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2606 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {    
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5204,33 +5219,35 @@ yyreduce:
     (yyval.ValueRefList) = new ValueRefList();
     ValueRefListEntry E; E.Attrs = (yyvsp[0].ParamAttrs); E.Val = getVal((yyvsp[-2].TypeVal)->get(), (yyvsp[-1].ValIDVal));
     (yyval.ValueRefList)->push_back(E);
+    delete (yyvsp[-2].TypeVal);
   ;}
     break;
 
   case 258:
-#line 2599 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2615 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
     (yyval.ValueRefList) = (yyvsp[-4].ValueRefList);
     ValueRefListEntry E; E.Attrs = (yyvsp[0].ParamAttrs); E.Val = getVal((yyvsp[-2].TypeVal)->get(), (yyvsp[-1].ValIDVal));
     (yyval.ValueRefList)->push_back(E);
+    delete (yyvsp[-2].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 259:
-#line 2607 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2624 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ValueRefList) = new ValueRefList(); ;}
     break;
 
   case 260:
-#line 2610 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2627 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ValueList) = new std::vector<Value*>(); ;}
     break;
 
   case 261:
-#line 2611 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2628 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValueList) = (yyvsp[-2].ValueList);
     (yyval.ValueList)->push_back((yyvsp[0].ValueVal));
@@ -5239,7 +5256,7 @@ yyreduce:
     break;
 
   case 262:
-#line 2618 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2635 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
@@ -5247,7 +5264,7 @@ yyreduce:
     break;
 
   case 263:
-#line 2622 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2639 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
@@ -5255,7 +5272,7 @@ yyreduce:
     break;
 
   case 264:
-#line 2627 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2644 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5280,7 +5297,7 @@ yyreduce:
     break;
 
   case 265:
-#line 2648 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2665 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5301,7 +5318,7 @@ yyreduce:
     break;
 
   case 266:
-#line 2665 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2682 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5314,11 +5331,12 @@ yyreduce:
     (yyval.InstVal) = CmpInst::create((yyvsp[-5].OtherOpVal), (yyvsp[-4].IPredicate), tmpVal1, tmpVal2);
     if ((yyval.InstVal) == 0)
       GEN_ERROR("icmp operator returned null");
+    delete (yyvsp[-3].TypeVal);
   ;}
     break;
 
   case 267:
-#line 2678 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2696 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5331,11 +5349,12 @@ yyreduce:
     (yyval.InstVal) = CmpInst::create((yyvsp[-5].OtherOpVal), (yyvsp[-4].FPredicate), tmpVal1, tmpVal2);
     if ((yyval.InstVal) == 0)
       GEN_ERROR("fcmp operator returned null");
+    delete (yyvsp[-3].TypeVal);
   ;}
     break;
 
   case 268:
-#line 2691 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2710 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -5351,7 +5370,7 @@ yyreduce:
     break;
 
   case 269:
-#line 2703 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2722 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[-4].ValueVal)->getType() != Type::Int1Ty)
       GEN_ERROR("select condition must be boolean");
@@ -5363,7 +5382,7 @@ yyreduce:
     break;
 
   case 270:
-#line 2711 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2730 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -5374,7 +5393,7 @@ yyreduce:
     break;
 
   case 271:
-#line 2718 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2737 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid extractelement operands");
@@ -5384,7 +5403,7 @@ yyreduce:
     break;
 
   case 272:
-#line 2724 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2743 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid insertelement operands");
@@ -5394,7 +5413,7 @@ yyreduce:
     break;
 
   case 273:
-#line 2730 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2749 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid shufflevector operands");
@@ -5404,7 +5423,7 @@ yyreduce:
     break;
 
   case 274:
-#line 2736 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2755 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     const Type *Ty = (yyvsp[0].PHIList)->front().first->getType();
     if (!Ty->isFirstClassType())
@@ -5423,7 +5442,7 @@ yyreduce:
     break;
 
   case 275:
-#line 2752 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2771 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
 
     // Handle the short syntax
@@ -5490,7 +5509,7 @@ yyreduce:
     break;
 
   case 276:
-#line 2815 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2834 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.InstVal) = (yyvsp[0].InstVal);
     CHECK_FOR_ERROR
@@ -5498,7 +5517,7 @@ yyreduce:
     break;
 
   case 277:
-#line 2820 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2839 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
@@ -5506,7 +5525,7 @@ yyreduce:
     break;
 
   case 278:
-#line 2824 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2843 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
@@ -5514,7 +5533,7 @@ yyreduce:
     break;
 
   case 279:
-#line 2831 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2850 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5525,7 +5544,7 @@ yyreduce:
     break;
 
   case 280:
-#line 2838 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2857 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
@@ -5537,7 +5556,7 @@ yyreduce:
     break;
 
   case 281:
-#line 2846 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2865 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5548,7 +5567,7 @@ yyreduce:
     break;
 
   case 282:
-#line 2853 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2872 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
@@ -5560,7 +5579,7 @@ yyreduce:
     break;
 
   case 283:
-#line 2861 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2880 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[0].ValueVal)->getType()))
       GEN_ERROR("Trying to free nonpointer type " + 
@@ -5571,7 +5590,7 @@ yyreduce:
     break;
 
   case 284:
-#line 2869 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2888 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5589,7 +5608,7 @@ yyreduce:
     break;
 
   case 285:
-#line 2883 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2902 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5610,7 +5629,7 @@ yyreduce:
     break;
 
   case 286:
-#line 2900 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2919 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5633,7 +5652,7 @@ yyreduce:
     }
 
 /* Line 1126 of yacc.c.  */
-#line 5637 "llvmAsmParser.tab.c"
+#line 5656 "llvmAsmParser.tab.c"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -5901,7 +5920,7 @@ yyreturn:
 }
 
 
-#line 2917 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
+#line 2936 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
 
 
 // common code from the two 'RunVMAsmParser' functions