diff --git a/lib/AsmParser/llvmAsmParser.cpp.cvs b/lib/AsmParser/llvmAsmParser.cpp.cvs
index 7335011..eb6f6d7 100644
--- a/lib/AsmParser/llvmAsmParser.cpp.cvs
+++ b/lib/AsmParser/llvmAsmParser.cpp.cvs
@@ -691,8 +691,10 @@
   }
 
   std::map<ValID, PATypeHolder>::iterator I =CurModule.LateResolveTypes.find(D);
-  if (I != CurModule.LateResolveTypes.end())
+  if (I != CurModule.LateResolveTypes.end()) {
+    D.destroy();
     return I->second;
+  }
 
   Type *Typ = OpaqueType::get();
   CurModule.LateResolveTypes.insert(std::make_pair(D, Typ));
@@ -1379,7 +1381,7 @@
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 978 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 980 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
 {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -1428,7 +1430,7 @@
   llvm::FCmpInst::Predicate         FPredicate;
 }
 /* Line 187 of yacc.c.  */
-#line 1432 "llvmAsmParser.tab.c"
+#line 1434 "llvmAsmParser.tab.c"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -1441,7 +1443,7 @@
 
 
 /* Line 216 of yacc.c.  */
-#line 1445 "llvmAsmParser.tab.c"
+#line 1447 "llvmAsmParser.tab.c"
 
 #ifdef short
 # undef short
@@ -1885,41 +1887,41 @@
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,  1144,  1144,  1144,  1144,  1144,  1144,  1144,  1144,  1144,
-    1144,  1145,  1145,  1145,  1145,  1145,  1145,  1146,  1146,  1146,
-    1146,  1146,  1146,  1147,  1147,  1147,  1147,  1147,  1147,  1150,
-    1150,  1151,  1151,  1152,  1152,  1153,  1153,  1154,  1154,  1158,
-    1158,  1159,  1159,  1160,  1160,  1161,  1161,  1162,  1162,  1163,
-    1163,  1164,  1164,  1165,  1166,  1169,  1169,  1169,  1170,  1170,
-    1172,  1173,  1177,  1181,  1186,  1192,  1192,  1194,  1195,  1200,
-    1206,  1207,  1208,  1209,  1210,  1211,  1215,  1216,  1217,  1221,
-    1222,  1223,  1224,  1228,  1229,  1230,  1234,  1235,  1236,  1237,
-    1238,  1242,  1243,  1244,  1247,  1248,  1249,  1250,  1251,  1252,
-    1253,  1260,  1261,  1262,  1263,  1264,  1265,  1266,  1267,  1268,
-    1269,  1273,  1274,  1279,  1280,  1281,  1284,  1285,  1291,  1292,
-    1293,  1294,  1295,  1296,  1297,  1298,  1299,  1300,  1303,  1304,
-    1310,  1311,  1318,  1319,  1325,  1326,  1335,  1343,  1344,  1349,
-    1350,  1351,  1356,  1369,  1369,  1369,  1369,  1369,  1369,  1369,
-    1372,  1376,  1380,  1387,  1392,  1400,  1435,  1466,  1471,  1481,
-    1491,  1495,  1505,  1512,  1521,  1528,  1533,  1538,  1545,  1546,
-    1553,  1560,  1568,  1574,  1586,  1614,  1630,  1657,  1685,  1711,
-    1731,  1757,  1777,  1789,  1796,  1862,  1872,  1882,  1893,  1906,
-    1917,  1931,  1938,  1945,  1963,  1975,  1996,  2004,  2010,  2021,
-    2026,  2031,  2036,  2041,  2047,  2053,  2059,  2067,  2078,  2082,
-    2090,  2090,  2093,  2093,  2096,  2108,  2129,  2134,  2142,  2143,
-    2147,  2147,  2151,  2151,  2154,  2157,  2181,  2193,  2192,  2204,
-    2203,  2213,  2212,  2223,  2263,  2266,  2272,  2282,  2286,  2291,
-    2293,  2298,  2303,  2312,  2322,  2333,  2337,  2346,  2355,  2360,
-    2509,  2509,  2511,  2520,  2520,  2522,  2527,  2539,  2543,  2548,
-    2552,  2556,  2561,  2566,  2570,  2574,  2578,  2582,  2586,  2590,
-    2612,  2634,  2640,  2653,  2665,  2670,  2682,  2688,  2692,  2702,
-    2706,  2710,  2715,  2722,  2722,  2728,  2737,  2742,  2747,  2751,
-    2760,  2769,  2782,  2791,  2795,  2803,  2823,  2827,  2832,  2843,
-    2862,  2871,  2975,  2979,  2986,  2997,  3010,  3019,  3032,  3043,
-    3053,  3064,  3072,  3082,  3089,  3092,  3093,  3101,  3107,  3116,
-    3120,  3125,  3141,  3158,  3170,  3182,  3196,  3210,  3222,  3243,
-    3250,  3256,  3262,  3268,  3283,  3393,  3398,  3402,  3409,  3416,
-    3426,  3433,  3443,  3451,  3465,  3482,  3496,  3511,  3526
+       0,  1146,  1146,  1146,  1146,  1146,  1146,  1146,  1146,  1146,
+    1146,  1147,  1147,  1147,  1147,  1147,  1147,  1148,  1148,  1148,
+    1148,  1148,  1148,  1149,  1149,  1149,  1149,  1149,  1149,  1152,
+    1152,  1153,  1153,  1154,  1154,  1155,  1155,  1156,  1156,  1160,
+    1160,  1161,  1161,  1162,  1162,  1163,  1163,  1164,  1164,  1165,
+    1165,  1166,  1166,  1167,  1168,  1171,  1171,  1171,  1172,  1172,
+    1174,  1175,  1179,  1183,  1188,  1194,  1194,  1196,  1197,  1202,
+    1208,  1209,  1210,  1211,  1212,  1213,  1217,  1218,  1219,  1223,
+    1224,  1225,  1226,  1230,  1231,  1232,  1236,  1237,  1238,  1239,
+    1240,  1244,  1245,  1246,  1249,  1250,  1251,  1252,  1253,  1254,
+    1255,  1262,  1263,  1264,  1265,  1266,  1267,  1268,  1269,  1270,
+    1271,  1275,  1276,  1281,  1282,  1283,  1286,  1287,  1293,  1294,
+    1295,  1296,  1297,  1298,  1299,  1300,  1301,  1302,  1305,  1306,
+    1312,  1313,  1320,  1321,  1327,  1328,  1337,  1345,  1346,  1351,
+    1352,  1353,  1358,  1371,  1371,  1371,  1371,  1371,  1371,  1371,
+    1374,  1378,  1382,  1389,  1394,  1402,  1437,  1468,  1473,  1483,
+    1493,  1497,  1507,  1514,  1523,  1530,  1535,  1540,  1547,  1548,
+    1555,  1562,  1570,  1576,  1588,  1616,  1632,  1659,  1687,  1713,
+    1733,  1759,  1779,  1791,  1798,  1864,  1874,  1884,  1895,  1908,
+    1919,  1933,  1940,  1947,  1965,  1977,  1998,  2006,  2012,  2023,
+    2028,  2033,  2038,  2043,  2049,  2055,  2061,  2069,  2080,  2084,
+    2092,  2092,  2095,  2095,  2098,  2110,  2131,  2136,  2144,  2145,
+    2149,  2149,  2153,  2153,  2156,  2159,  2183,  2195,  2194,  2206,
+    2205,  2215,  2214,  2225,  2265,  2268,  2274,  2284,  2288,  2293,
+    2295,  2300,  2305,  2314,  2324,  2335,  2339,  2348,  2357,  2362,
+    2511,  2511,  2513,  2522,  2522,  2524,  2529,  2541,  2545,  2550,
+    2554,  2558,  2563,  2568,  2572,  2576,  2580,  2584,  2588,  2592,
+    2614,  2636,  2642,  2655,  2667,  2672,  2684,  2690,  2694,  2704,
+    2708,  2712,  2717,  2724,  2724,  2730,  2739,  2744,  2749,  2753,
+    2762,  2771,  2784,  2793,  2797,  2805,  2825,  2829,  2834,  2845,
+    2864,  2873,  2977,  2981,  2988,  2999,  3012,  3021,  3034,  3045,
+    3055,  3066,  3074,  3084,  3091,  3094,  3095,  3103,  3109,  3118,
+    3122,  3127,  3143,  3160,  3172,  3184,  3198,  3212,  3224,  3245,
+    3252,  3258,  3264,  3270,  3285,  3395,  3400,  3404,  3411,  3418,
+    3428,  3435,  3445,  3453,  3467,  3484,  3498,  3513,  3528
 };
 #endif
 
@@ -3645,152 +3647,152 @@
   switch (yyn)
     {
         case 29:
-#line 1150 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1152 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
     break;
 
   case 30:
-#line 1150 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1152 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
     break;
 
   case 31:
-#line 1151 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1153 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
     break;
 
   case 32:
-#line 1151 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1153 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
     break;
 
   case 33:
-#line 1152 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1154 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
     break;
 
   case 34:
-#line 1152 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1154 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
     break;
 
   case 35:
-#line 1153 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1155 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
     break;
 
   case 36:
-#line 1153 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1155 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
     break;
 
   case 37:
-#line 1154 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1156 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
     break;
 
   case 38:
-#line 1154 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1156 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
     break;
 
   case 39:
-#line 1158 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1160 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
     break;
 
   case 40:
-#line 1158 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1160 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
     break;
 
   case 41:
-#line 1159 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1161 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
     break;
 
   case 42:
-#line 1159 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1161 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
     break;
 
   case 43:
-#line 1160 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1162 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
     break;
 
   case 44:
-#line 1160 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1162 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
     break;
 
   case 45:
-#line 1161 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1163 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
     break;
 
   case 46:
-#line 1161 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1163 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
     break;
 
   case 47:
-#line 1162 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1164 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
     break;
 
   case 48:
-#line 1162 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1164 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
     break;
 
   case 49:
-#line 1163 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1165 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
     break;
 
   case 50:
-#line 1163 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1165 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
     break;
 
   case 51:
-#line 1164 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1166 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
     break;
 
   case 52:
-#line 1164 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1166 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
     break;
 
   case 53:
-#line 1165 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1167 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
     break;
 
   case 54:
-#line 1166 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1168 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
     break;
 
   case 59:
-#line 1170 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1172 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 60:
-#line 1172 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1174 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal)=(yyvsp[(3) - (4)].UInt64Val); ;}
     break;
 
   case 61:
-#line 1173 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1175 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal)=0; ;}
     break;
 
   case 62:
-#line 1177 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1179 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
     CHECK_FOR_ERROR
@@ -3798,7 +3800,7 @@
     break;
 
   case 63:
-#line 1181 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1183 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = 0;
     CHECK_FOR_ERROR
@@ -3806,7 +3808,7 @@
     break;
 
   case 64:
-#line 1186 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1188 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[(1) - (2)].UIntVal);
   CHECK_FOR_ERROR
@@ -3814,7 +3816,7 @@
     break;
 
   case 68:
-#line 1195 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1197 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = 0;
     CHECK_FOR_ERROR
@@ -3822,7 +3824,7 @@
     break;
 
   case 69:
-#line 1200 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1202 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
     CHECK_FOR_ERROR
@@ -3830,157 +3832,157 @@
     break;
 
   case 70:
-#line 1206 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1208 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 71:
-#line 1207 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1209 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 72:
-#line 1208 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1210 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
   case 73:
-#line 1209 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1211 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
     break;
 
   case 74:
-#line 1210 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1212 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 75:
-#line 1211 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1213 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::CommonLinkage; ;}
     break;
 
   case 76:
-#line 1215 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1217 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 77:
-#line 1216 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1218 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 78:
-#line 1217 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1219 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 79:
-#line 1221 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1223 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::DefaultVisibility;   ;}
     break;
 
   case 80:
-#line 1222 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1224 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::DefaultVisibility;   ;}
     break;
 
   case 81:
-#line 1223 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1225 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::HiddenVisibility;    ;}
     break;
 
   case 82:
-#line 1224 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1226 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::ProtectedVisibility; ;}
     break;
 
   case 83:
-#line 1228 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1230 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 84:
-#line 1229 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1231 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 85:
-#line 1230 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1232 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 86:
-#line 1234 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1236 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 87:
-#line 1235 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1237 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 88:
-#line 1236 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1238 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
   case 89:
-#line 1237 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1239 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 90:
-#line 1238 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1240 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 91:
-#line 1242 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1244 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 92:
-#line 1243 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1245 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 93:
-#line 1244 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1246 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 94:
-#line 1247 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1249 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 95:
-#line 1248 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1250 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
   case 96:
-#line 1249 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1251 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::Fast; ;}
     break;
 
   case 97:
-#line 1250 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1252 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::Cold; ;}
     break;
 
   case 98:
-#line 1251 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1253 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
     break;
 
   case 99:
-#line 1252 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1254 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
     break;
 
   case 100:
-#line 1253 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1255 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
                    if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) != (yyvsp[(2) - (2)].UInt64Val))
                      GEN_ERROR("Calling conv too large");
@@ -3990,176 +3992,176 @@
     break;
 
   case 101:
-#line 1260 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1262 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ZExt;      ;}
     break;
 
   case 102:
-#line 1261 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1263 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ZExt;      ;}
     break;
 
   case 103:
-#line 1262 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1264 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::SExt;      ;}
     break;
 
   case 104:
-#line 1263 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1265 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::SExt;      ;}
     break;
 
   case 105:
-#line 1264 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1266 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::InReg;     ;}
     break;
 
   case 106:
-#line 1265 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1267 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::StructRet; ;}
     break;
 
   case 107:
-#line 1266 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1268 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::NoAlias;   ;}
     break;
 
   case 108:
-#line 1267 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1269 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ByVal;     ;}
     break;
 
   case 109:
-#line 1268 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1270 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::Nest;      ;}
     break;
 
   case 110:
-#line 1269 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1271 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) =
                           Attribute::constructAlignmentFromInt((yyvsp[(2) - (2)].UInt64Val));    ;}
     break;
 
   case 111:
-#line 1273 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1275 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::None; ;}
     break;
 
   case 112:
-#line 1274 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1276 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
                 (yyval.Attributes) = (yyvsp[(1) - (2)].Attributes) | (yyvsp[(2) - (2)].Attributes);
               ;}
     break;
 
   case 113:
-#line 1279 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1281 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::InReg;     ;}
     break;
 
   case 114:
-#line 1280 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1282 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ZExt;     ;}
     break;
 
   case 115:
-#line 1281 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1283 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::SExt;     ;}
     break;
 
   case 116:
-#line 1284 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1286 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::None; ;}
     break;
 
   case 117:
-#line 1285 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1287 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
                (yyval.Attributes) = (yyvsp[(1) - (2)].Attributes) | (yyvsp[(2) - (2)].Attributes);
              ;}
     break;
 
   case 118:
-#line 1291 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1293 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::NoReturn; ;}
     break;
 
   case 119:
-#line 1292 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1294 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::NoUnwind; ;}
     break;
 
   case 120:
-#line 1293 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1295 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::InReg;     ;}
     break;
 
   case 121:
-#line 1294 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1296 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ZExt;     ;}
     break;
 
   case 122:
-#line 1295 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1297 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::SExt;     ;}
     break;
 
   case 123:
-#line 1296 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1298 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ReadNone; ;}
     break;
 
   case 124:
-#line 1297 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1299 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ReadOnly; ;}
     break;
 
   case 125:
-#line 1298 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1300 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::NoInline; ;}
     break;
 
   case 126:
-#line 1299 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1301 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::AlwaysInline; ;}
     break;
 
   case 127:
-#line 1300 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1302 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::OptimizeForSize; ;}
     break;
 
   case 128:
-#line 1303 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1305 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::None; ;}
     break;
 
   case 129:
-#line 1304 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1306 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
                 (yyval.Attributes) = (yyvsp[(1) - (2)].Attributes) | (yyvsp[(2) - (2)].Attributes);
               ;}
     break;
 
   case 130:
-#line 1310 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1312 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 131:
-#line 1311 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1313 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
                 (yyval.StrVal) = (yyvsp[(2) - (2)].StrVal);
               ;}
     break;
 
   case 132:
-#line 1318 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1320 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 133:
-#line 1319 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1321 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[(2) - (2)].UInt64Val);
   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -4169,12 +4171,12 @@
     break;
 
   case 134:
-#line 1325 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1327 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 135:
-#line 1326 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1328 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[(3) - (3)].UInt64Val);
   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -4184,7 +4186,7 @@
     break;
 
   case 136:
-#line 1335 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1337 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   for (unsigned i = 0, e = (yyvsp[(2) - (2)].StrVal)->length(); i != e; ++i)
     if ((*(yyvsp[(2) - (2)].StrVal))[i] == '"' || (*(yyvsp[(2) - (2)].StrVal))[i] == '\\')
@@ -4195,27 +4197,27 @@
     break;
 
   case 137:
-#line 1343 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1345 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 138:
-#line 1344 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1346 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = (yyvsp[(1) - (1)].StrVal); ;}
     break;
 
   case 139:
-#line 1349 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1351 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {;}
     break;
 
   case 140:
-#line 1350 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1352 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {;}
     break;
 
   case 141:
-#line 1351 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1353 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV->setSection(*(yyvsp[(1) - (1)].StrVal));
     delete (yyvsp[(1) - (1)].StrVal);
@@ -4224,7 +4226,7 @@
     break;
 
   case 142:
-#line 1356 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1358 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(2) - (2)].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[(2) - (2)].UInt64Val)))
       GEN_ERROR("Alignment must be a power of two");
@@ -4234,7 +4236,7 @@
     break;
 
   case 150:
-#line 1372 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1374 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
     CHECK_FOR_ERROR
@@ -4242,7 +4244,7 @@
     break;
 
   case 151:
-#line 1376 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1378 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType));
     CHECK_FOR_ERROR
@@ -4250,7 +4252,7 @@
     break;
 
   case 152:
-#line 1380 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1382 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                             // Pointer type?
     if (*(yyvsp[(1) - (3)].TypeVal) == Type::LabelTy)
       GEN_ERROR("Cannot form a pointer to a basic block");
@@ -4261,7 +4263,7 @@
     break;
 
   case 153:
-#line 1387 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1389 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {            // Named types are also simple types...
     const Type* tmp = getTypeVal((yyvsp[(1) - (1)].ValIDVal));
     CHECK_FOR_ERROR
@@ -4270,7 +4272,7 @@
     break;
 
   case 154:
-#line 1392 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1394 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                   // Type UpReference
     if ((yyvsp[(2) - (2)].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range");
     OpaqueType *OT = OpaqueType::get();        // Use temporary placeholder
@@ -4282,7 +4284,7 @@
     break;
 
   case 155:
-#line 1400 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1402 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // Allow but ignore attributes on function types; this permits auto-upgrade.
     // FIXME: remove in LLVM 3.0.
@@ -4321,7 +4323,7 @@
     break;
 
   case 156:
-#line 1435 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1437 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // Allow but ignore attributes on function types; this permits auto-upgrade.
     // FIXME: remove in LLVM 3.0.
@@ -4355,7 +4357,7 @@
     break;
 
   case 157:
-#line 1466 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1468 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {          // Sized array type?
     (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[(4) - (5)].TypeVal), (yyvsp[(2) - (5)].UInt64Val))));
     delete (yyvsp[(4) - (5)].TypeVal);
@@ -4364,7 +4366,7 @@
     break;
 
   case 158:
-#line 1471 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1473 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {          // Vector type?
      const llvm::Type* ElemTy = (yyvsp[(4) - (5)].TypeVal)->get();
      if ((unsigned)(yyvsp[(2) - (5)].UInt64Val) != (yyvsp[(2) - (5)].UInt64Val))
@@ -4378,7 +4380,7 @@
     break;
 
   case 159:
-#line 1481 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1483 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                        // Structure type?
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[(2) - (3)].TypeList)->begin(),
@@ -4392,7 +4394,7 @@
     break;
 
   case 160:
-#line 1491 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1493 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                                  // Empty structure type?
     (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>()));
     CHECK_FOR_ERROR
@@ -4400,7 +4402,7 @@
     break;
 
   case 161:
-#line 1495 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1497 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[(3) - (5)].TypeList)->begin(),
@@ -4414,7 +4416,7 @@
     break;
 
   case 162:
-#line 1505 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1507 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                         // Empty structure type?
     (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>(), true));
     CHECK_FOR_ERROR
@@ -4422,7 +4424,7 @@
     break;
 
   case 163:
-#line 1512 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1514 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // Allow but ignore attributes on function types; this permits auto-upgrade.
     // FIXME: remove in LLVM 3.0.
@@ -4432,7 +4434,7 @@
     break;
 
   case 164:
-#line 1521 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1523 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (1)].TypeVal))->getDescription());
@@ -4443,14 +4445,14 @@
     break;
 
   case 165:
-#line 1528 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1530 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
   ;}
     break;
 
   case 166:
-#line 1533 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1535 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
     (yyval.TypeWithAttrsList)->push_back((yyvsp[(1) - (1)].TypeWithAttrs));
@@ -4459,7 +4461,7 @@
     break;
 
   case 167:
-#line 1538 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1540 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList))->push_back((yyvsp[(3) - (3)].TypeWithAttrs));
     CHECK_FOR_ERROR
@@ -4467,7 +4469,7 @@
     break;
 
   case 169:
-#line 1546 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1548 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList);
     TypeWithAttrs TWA; TWA.Attrs = Attribute::None;
@@ -4478,7 +4480,7 @@
     break;
 
   case 170:
-#line 1553 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1555 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList;
     TypeWithAttrs TWA; TWA.Attrs = Attribute::None;
@@ -4489,7 +4491,7 @@
     break;
 
   case 171:
-#line 1560 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1562 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
     CHECK_FOR_ERROR
@@ -4497,7 +4499,7 @@
     break;
 
   case 172:
-#line 1568 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1570 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeHolder>();
     (yyval.TypeList)->push_back(*(yyvsp[(1) - (1)].TypeVal));
@@ -4507,7 +4509,7 @@
     break;
 
   case 173:
-#line 1574 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1576 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeList)=(yyvsp[(1) - (3)].TypeList))->push_back(*(yyvsp[(3) - (3)].TypeVal));
     delete (yyvsp[(3) - (3)].TypeVal);
@@ -4516,7 +4518,7 @@
     break;
 
   case 174:
-#line 1586 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1588 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (4)].TypeVal))->getDescription());
@@ -4548,7 +4550,7 @@
     break;
 
   case 175:
-#line 1614 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1616 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
@@ -4568,7 +4570,7 @@
     break;
 
   case 176:
-#line 1630 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1632 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
@@ -4599,7 +4601,7 @@
     break;
 
   case 177:
-#line 1657 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1659 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (4)].TypeVal))->getDescription());
@@ -4631,7 +4633,7 @@
     break;
 
   case 178:
-#line 1685 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1687 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[(1) - (4)].TypeVal)->get());
     if (STy == 0)
@@ -4661,7 +4663,7 @@
     break;
 
   case 179:
-#line 1711 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1713 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
@@ -4685,7 +4687,7 @@
     break;
 
   case 180:
-#line 1731 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1733 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[(1) - (6)].TypeVal)->get());
     if (STy == 0)
@@ -4715,7 +4717,7 @@
     break;
 
   case 181:
-#line 1757 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1759 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (5)].TypeVal))->getDescription());
@@ -4739,7 +4741,7 @@
     break;
 
   case 182:
-#line 1777 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1779 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -4755,7 +4757,7 @@
     break;
 
   case 183:
-#line 1789 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1791 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -4766,7 +4768,7 @@
     break;
 
   case 184:
-#line 1796 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1798 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -4836,7 +4838,7 @@
     break;
 
   case 185:
-#line 1862 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1864 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -4850,7 +4852,7 @@
     break;
 
   case 186:
-#line 1872 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1874 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -4864,7 +4866,7 @@
     break;
 
   case 187:
-#line 1882 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1884 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // integral constants
     if (IntegerType *IT = dyn_cast<IntegerType>((yyvsp[(1) - (2)].TypeVal)->get())) {
       if (!ConstantInt::isValueValidForType(IT, (yyvsp[(2) - (2)].SInt64Val)))
@@ -4879,7 +4881,7 @@
     break;
 
   case 188:
-#line 1893 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1895 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
     if (IntegerType *IT = dyn_cast<IntegerType>((yyvsp[(1) - (2)].TypeVal)->get())) {
       if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > IT->getBitWidth())
@@ -4896,7 +4898,7 @@
     break;
 
   case 189:
-#line 1906 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1908 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // integral constants
     if (IntegerType *IT = dyn_cast<IntegerType>((yyvsp[(1) - (2)].TypeVal)->get())) {
       if (!ConstantInt::isValueValidForType(IT, (yyvsp[(2) - (2)].UInt64Val)))
@@ -4911,7 +4913,7 @@
     break;
 
   case 190:
-#line 1917 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1919 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
     if (IntegerType *IT = dyn_cast<IntegerType>((yyvsp[(1) - (2)].TypeVal)->get())) {
       if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > IT->getBitWidth())
@@ -4929,7 +4931,7 @@
     break;
 
   case 191:
-#line 1931 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1933 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                      // Boolean constants
     if ((yyvsp[(1) - (2)].TypeVal)->get() != Type::Int1Ty)
       GEN_ERROR("Constant true must have type i1");
@@ -4940,7 +4942,7 @@
     break;
 
   case 192:
-#line 1938 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1940 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                     // Boolean constants
     if ((yyvsp[(1) - (2)].TypeVal)->get() != Type::Int1Ty)
       GEN_ERROR("Constant false must have type i1");
@@ -4951,7 +4953,7 @@
     break;
 
   case 193:
-#line 1945 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1947 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                   // Floating point constants
     if (!ConstantFP::isValueValidForType((yyvsp[(1) - (2)].TypeVal)->get(), *(yyvsp[(2) - (2)].FPVal)))
       GEN_ERROR("Floating point constant invalid for type");
@@ -4971,7 +4973,7 @@
     break;
 
   case 194:
-#line 1963 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1965 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) - (6)].TypeVal))->getDescription());
@@ -4987,7 +4989,7 @@
     break;
 
   case 195:
-#line 1975 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1977 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[(3) - (5)].ConstVal)->getType()))
       GEN_ERROR("GetElementPtr requires a pointer operand");
@@ -5012,7 +5014,7 @@
     break;
 
   case 196:
-#line 1996 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 1998 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(3) - (8)].ConstVal)->getType() != Type::Int1Ty)
       GEN_ERROR("Select condition must be of boolean type");
@@ -5024,7 +5026,7 @@
     break;
 
   case 197:
-#line 2004 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2006 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType())
       GEN_ERROR("Binary operator types must match");
@@ -5034,7 +5036,7 @@
     break;
 
   case 198:
-#line 2010 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2012 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType())
       GEN_ERROR("Logical operator types must match");
@@ -5049,7 +5051,7 @@
     break;
 
   case 199:
-#line 2021 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2023 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
       GEN_ERROR("icmp operand types must match");
@@ -5058,7 +5060,7 @@
     break;
 
   case 200:
-#line 2026 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2028 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
       GEN_ERROR("fcmp operand types must match");
@@ -5067,7 +5069,7 @@
     break;
 
   case 201:
-#line 2031 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2033 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
       GEN_ERROR("vicmp operand types must match");
@@ -5076,7 +5078,7 @@
     break;
 
   case 202:
-#line 2036 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2038 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
       GEN_ERROR("vfcmp operand types must match");
@@ -5085,7 +5087,7 @@
     break;
 
   case 203:
-#line 2041 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2043 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)))
       GEN_ERROR("Invalid extractelement operands");
@@ -5095,7 +5097,7 @@
     break;
 
   case 204:
-#line 2047 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2049 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)))
       GEN_ERROR("Invalid insertelement operands");
@@ -5105,7 +5107,7 @@
     break;
 
   case 205:
-#line 2053 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2055 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)))
       GEN_ERROR("Invalid shufflevector operands");
@@ -5115,7 +5117,7 @@
     break;
 
   case 206:
-#line 2059 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2061 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<StructType>((yyvsp[(3) - (5)].ConstVal)->getType()) && !isa<ArrayType>((yyvsp[(3) - (5)].ConstVal)->getType()))
       GEN_ERROR("ExtractValue requires an aggregate operand");
@@ -5127,7 +5129,7 @@
     break;
 
   case 207:
-#line 2067 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2069 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<StructType>((yyvsp[(3) - (7)].ConstVal)->getType()) && !isa<ArrayType>((yyvsp[(3) - (7)].ConstVal)->getType()))
       GEN_ERROR("InsertValue requires an aggregate operand");
@@ -5139,7 +5141,7 @@
     break;
 
   case 208:
-#line 2078 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2080 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.ConstVector) = (yyvsp[(1) - (3)].ConstVector))->push_back((yyvsp[(3) - (3)].ConstVal));
     CHECK_FOR_ERROR
@@ -5147,7 +5149,7 @@
     break;
 
   case 209:
-#line 2082 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2084 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ConstVector) = new std::vector<Constant*>();
     (yyval.ConstVector)->push_back((yyvsp[(1) - (1)].ConstVal));
@@ -5156,27 +5158,27 @@
     break;
 
   case 210:
-#line 2090 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2092 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 211:
-#line 2090 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2092 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 212:
-#line 2093 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2095 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 213:
-#line 2093 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2095 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 214:
-#line 2096 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2098 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const Type* VTy = (yyvsp[(1) - (2)].TypeVal)->get();
     Value *V = getVal(VTy, (yyvsp[(2) - (2)].ValIDVal));
@@ -5192,7 +5194,7 @@
     break;
 
   case 215:
-#line 2108 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2110 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     Constant *Val = (yyvsp[(3) - (6)].ConstVal);
     const Type *DestTy = (yyvsp[(5) - (6)].TypeVal)->get();
@@ -5208,7 +5210,7 @@
     break;
 
   case 216:
-#line 2129 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2131 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
@@ -5217,7 +5219,7 @@
     break;
 
   case 217:
-#line 2134 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2136 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
@@ -5226,12 +5228,12 @@
     break;
 
   case 220:
-#line 2147 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2149 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { CurFun.isDeclare = false; ;}
     break;
 
   case 221:
-#line 2147 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2149 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurFun.FunctionDone();
     CHECK_FOR_ERROR
@@ -5239,26 +5241,26 @@
     break;
 
   case 222:
-#line 2151 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2153 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { CurFun.isDeclare = true; ;}
     break;
 
   case 223:
-#line 2151 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2153 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 224:
-#line 2154 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2156 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 225:
-#line 2157 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2159 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (3)].TypeVal))->getDescription());
@@ -5286,7 +5288,7 @@
     break;
 
   case 226:
-#line 2181 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2183 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     ResolveTypeTo((yyvsp[(1) - (3)].StrVal), (yyvsp[(3) - (3)].PrimType));
 
@@ -5301,7 +5303,7 @@
     break;
 
   case 227:
-#line 2193 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2195 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     /* "Externally Visible" Linkage */
     if ((yyvsp[(5) - (6)].ConstVal) == 0)
@@ -5313,14 +5315,14 @@
     break;
 
   case 228:
-#line 2200 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2202 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 229:
-#line 2204 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2206 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(6) - (7)].ConstVal) == 0)
       GEN_ERROR("Global value initializer is not a constant");
@@ -5330,14 +5332,14 @@
     break;
 
   case 230:
-#line 2209 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2211 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 231:
-#line 2213 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2215 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(6) - (7)].TypeVal))->getDescription());
@@ -5348,7 +5350,7 @@
     break;
 
   case 232:
-#line 2219 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2221 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
     CHECK_FOR_ERROR
@@ -5356,7 +5358,7 @@
     break;
 
   case 233:
-#line 2223 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2225 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     std::string Name;
     if ((yyvsp[(1) - (5)].StrVal)) {
@@ -5400,21 +5402,21 @@
     break;
 
   case 234:
-#line 2263 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2265 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 235:
-#line 2266 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2268 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
   case 236:
-#line 2272 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2274 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
   if (AsmSoFar.empty())
@@ -5427,7 +5429,7 @@
     break;
 
   case 237:
-#line 2282 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2284 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setTargetTriple(*(yyvsp[(3) - (3)].StrVal));
     delete (yyvsp[(3) - (3)].StrVal);
@@ -5435,7 +5437,7 @@
     break;
 
   case 238:
-#line 2286 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2288 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setDataLayout(*(yyvsp[(3) - (3)].StrVal));
     delete (yyvsp[(3) - (3)].StrVal);
@@ -5443,7 +5445,7 @@
     break;
 
   case 240:
-#line 2293 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2295 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
           CurModule.CurrentModule->addLibrary(*(yyvsp[(3) - (3)].StrVal));
           delete (yyvsp[(3) - (3)].StrVal);
@@ -5452,7 +5454,7 @@
     break;
 
   case 241:
-#line 2298 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2300 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
           CurModule.CurrentModule->addLibrary(*(yyvsp[(1) - (1)].StrVal));
           delete (yyvsp[(1) - (1)].StrVal);
@@ -5461,14 +5463,14 @@
     break;
 
   case 242:
-#line 2303 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2305 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
           CHECK_FOR_ERROR
         ;}
     break;
 
   case 243:
-#line 2312 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2314 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (5)].TypeVal))->getDescription());
@@ -5482,7 +5484,7 @@
     break;
 
   case 244:
-#line 2322 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2324 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
@@ -5496,7 +5498,7 @@
     break;
 
   case 245:
-#line 2333 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2335 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[(1) - (1)].ArgList);
     CHECK_FOR_ERROR
@@ -5504,7 +5506,7 @@
     break;
 
   case 246:
-#line 2337 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2339 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[(1) - (3)].ArgList);
     struct ArgListEntry E;
@@ -5517,7 +5519,7 @@
     break;
 
   case 247:
-#line 2346 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2348 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = new ArgListType;
     struct ArgListEntry E;
@@ -5530,7 +5532,7 @@
     break;
 
   case 248:
-#line 2355 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2357 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = 0;
     CHECK_FOR_ERROR
@@ -5538,7 +5540,7 @@
     break;
 
   case 249:
-#line 2361 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2363 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   std::string FunctionName(*(yyvsp[(4) - (11)].StrVal));
   delete (yyvsp[(4) - (11)].StrVal);  // Free strdup'd memory!
@@ -5689,7 +5691,7 @@
     break;
 
   case 252:
-#line 2511 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2513 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = CurFun.CurrentFunction;
 
@@ -5701,7 +5703,7 @@
     break;
 
   case 255:
-#line 2522 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2524 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
   CHECK_FOR_ERROR
@@ -5709,7 +5711,7 @@
     break;
 
   case 256:
-#line 2527 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2529 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurFun.CurrentFunction->setLinkage((yyvsp[(1) - (3)].Linkage));
     CurFun.CurrentFunction->setVisibility((yyvsp[(2) - (3)].Visibility));
@@ -5720,7 +5722,7 @@
     break;
 
   case 257:
-#line 2539 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2541 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
@@ -5728,7 +5730,7 @@
     break;
 
   case 258:
-#line 2543 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2545 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
@@ -5736,7 +5738,7 @@
     break;
 
   case 259:
-#line 2548 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2550 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {    // A reference to a direct constant
     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].SInt64Val));
     CHECK_FOR_ERROR
@@ -5744,7 +5746,7 @@
     break;
 
   case 260:
-#line 2552 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2554 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].UInt64Val));
     CHECK_FOR_ERROR
@@ -5752,7 +5754,7 @@
     break;
 
   case 261:
-#line 2556 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2558 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
     (yyval.ValIDVal) = ValID::create(*(yyvsp[(1) - (1)].APIntVal), true);
     delete (yyvsp[(1) - (1)].APIntVal);
@@ -5761,7 +5763,7 @@
     break;
 
   case 262:
-#line 2561 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2563 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
     (yyval.ValIDVal) = ValID::create(*(yyvsp[(1) - (1)].APIntVal), false);
     delete (yyvsp[(1) - (1)].APIntVal);
@@ -5770,7 +5772,7 @@
     break;
 
   case 263:
-#line 2566 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2568 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                     // Perhaps it's an FP constant?
     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].FPVal));
     CHECK_FOR_ERROR
@@ -5778,7 +5780,7 @@
     break;
 
   case 264:
-#line 2570 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2572 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantInt::getTrue());
     CHECK_FOR_ERROR
@@ -5786,7 +5788,7 @@
     break;
 
   case 265:
-#line 2574 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2576 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantInt::getFalse());
     CHECK_FOR_ERROR
@@ -5794,7 +5796,7 @@
     break;
 
   case 266:
-#line 2578 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2580 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createNull();
     CHECK_FOR_ERROR
@@ -5802,7 +5804,7 @@
     break;
 
   case 267:
-#line 2582 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2584 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createUndef();
     CHECK_FOR_ERROR
@@ -5810,7 +5812,7 @@
     break;
 
   case 268:
-#line 2586 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2588 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {     // A vector zero constant.
     (yyval.ValIDVal) = ValID::createZeroInit();
     CHECK_FOR_ERROR
@@ -5818,7 +5820,7 @@
     break;
 
   case 269:
-#line 2590 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2592 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized packed vector
     const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType();
     unsigned NumElements = (yyvsp[(2) - (3)].ConstVector)->size();
@@ -5844,7 +5846,7 @@
     break;
 
   case 270:
-#line 2612 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2614 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType();
     uint64_t NumElements = (yyvsp[(2) - (3)].ConstVector)->size();
@@ -5870,7 +5872,7 @@
     break;
 
   case 271:
-#line 2634 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2636 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // Use undef instead of an array because it's inconvenient to determine
     // the element type at this point, there being no elements to examine.
@@ -5880,7 +5882,7 @@
     break;
 
   case 272:
-#line 2640 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2642 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     uint64_t NumElements = (yyvsp[(2) - (2)].StrVal)->length();
     const Type *ETy = Type::Int8Ty;
@@ -5897,7 +5899,7 @@
     break;
 
   case 273:
-#line 2653 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2655 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Elements((yyvsp[(2) - (3)].ConstVector)->size());
     for (unsigned i = 0, e = (yyvsp[(2) - (3)].ConstVector)->size(); i != e; ++i)
@@ -5913,7 +5915,7 @@
     break;
 
   case 274:
-#line 2665 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2667 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = StructType::get(std::vector<const Type*>());
     (yyval.ValIDVal) = ValID::create(ConstantStruct::get(STy, std::vector<Constant*>()));
@@ -5922,7 +5924,7 @@
     break;
 
   case 275:
-#line 2670 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2672 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Elements((yyvsp[(3) - (5)].ConstVector)->size());
     for (unsigned i = 0, e = (yyvsp[(3) - (5)].ConstVector)->size(); i != e; ++i)
@@ -5938,7 +5940,7 @@
     break;
 
   case 276:
-#line 2682 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2684 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = StructType::get(std::vector<const Type*>(),
                                             /*isPacked=*/true);
@@ -5948,7 +5950,7 @@
     break;
 
   case 277:
-#line 2688 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2690 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].ConstVal));
     CHECK_FOR_ERROR
@@ -5956,7 +5958,7 @@
     break;
 
   case 278:
-#line 2692 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2694 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createInlineAsm(*(yyvsp[(3) - (5)].StrVal), *(yyvsp[(5) - (5)].StrVal), (yyvsp[(2) - (5)].BoolVal));
     delete (yyvsp[(3) - (5)].StrVal);
@@ -5966,7 +5968,7 @@
     break;
 
   case 279:
-#line 2702 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2704 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {  // Is it an integer reference...?
     (yyval.ValIDVal) = ValID::createLocalID((yyvsp[(1) - (1)].UIntVal));
     CHECK_FOR_ERROR
@@ -5974,7 +5976,7 @@
     break;
 
   case 280:
-#line 2706 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2708 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createGlobalID((yyvsp[(1) - (1)].UIntVal));
     CHECK_FOR_ERROR
@@ -5982,7 +5984,7 @@
     break;
 
   case 281:
-#line 2710 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2712 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                   // Is it a named reference...?
     (yyval.ValIDVal) = ValID::createLocalName(*(yyvsp[(1) - (1)].StrVal));
     delete (yyvsp[(1) - (1)].StrVal);
@@ -5991,7 +5993,7 @@
     break;
 
   case 282:
-#line 2715 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2717 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                   // Is it a named reference...?
     (yyval.ValIDVal) = ValID::createGlobalName(*(yyvsp[(1) - (1)].StrVal));
     delete (yyvsp[(1) - (1)].StrVal);
@@ -6000,7 +6002,7 @@
     break;
 
   case 285:
-#line 2728 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2730 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -6011,7 +6013,7 @@
     break;
 
   case 286:
-#line 2737 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2739 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValueList) = new std::vector<Value *>();
     (yyval.ValueList)->push_back((yyvsp[(1) - (1)].ValueVal));
@@ -6020,7 +6022,7 @@
     break;
 
   case 287:
-#line 2742 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2744 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.ValueList)=(yyvsp[(1) - (3)].ValueList))->push_back((yyvsp[(3) - (3)].ValueVal));
     CHECK_FOR_ERROR
@@ -6028,7 +6030,7 @@
     break;
 
   case 288:
-#line 2747 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2749 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
     CHECK_FOR_ERROR
@@ -6036,7 +6038,7 @@
     break;
 
   case 289:
-#line 2751 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2753 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Do not allow functions with 0 basic blocks
     (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
     CHECK_FOR_ERROR
@@ -6044,7 +6046,7 @@
     break;
 
   case 290:
-#line 2760 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2762 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     setValueName((yyvsp[(3) - (3)].TermInstVal), (yyvsp[(2) - (3)].StrVal));
     CHECK_FOR_ERROR
@@ -6056,7 +6058,7 @@
     break;
 
   case 291:
-#line 2769 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2771 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   CHECK_FOR_ERROR
   int ValNum = InsertValue((yyvsp[(3) - (3)].TermInstVal));
@@ -6071,7 +6073,7 @@
     break;
 
   case 292:
-#line 2782 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2784 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (CastInst *CI1 = dyn_cast<CastInst>((yyvsp[(2) - (2)].InstVal)))
       if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
@@ -6084,7 +6086,7 @@
     break;
 
   case 293:
-#line 2791 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2793 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {          // Empty space between instruction lists
     (yyval.BasicBlockVal) = defineBBVal(ValID::createLocalID(CurFun.NextValNum));
     CHECK_FOR_ERROR
@@ -6092,7 +6094,7 @@
     break;
 
   case 294:
-#line 2795 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2797 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {             // Labelled (named) basic block
     (yyval.BasicBlockVal) = defineBBVal(ValID::createLocalName(*(yyvsp[(1) - (1)].StrVal)));
     delete (yyvsp[(1) - (1)].StrVal);
@@ -6102,7 +6104,7 @@
     break;
 
   case 295:
-#line 2803 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2805 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Return with a result...
     ValueList &VL = *(yyvsp[(2) - (2)].ValueList);
     assert(!VL.empty() && "Invalid ret operands!");
@@ -6126,7 +6128,7 @@
     break;
 
   case 296:
-#line 2823 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2825 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                                    // Return with no result...
     (yyval.TermInstVal) = ReturnInst::Create();
     CHECK_FOR_ERROR
@@ -6134,7 +6136,7 @@
     break;
 
   case 297:
-#line 2827 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2829 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {                           // Unconditional Branch...
     BasicBlock* tmpBB = getBBVal((yyvsp[(3) - (3)].ValIDVal));
     CHECK_FOR_ERROR
@@ -6143,7 +6145,7 @@
     break;
 
   case 298:
-#line 2832 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2834 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (cast<IntegerType>((yyvsp[(2) - (9)].PrimType))->getBitWidth() != 1)
       GEN_ERROR("Branch condition must have type i1");
@@ -6158,7 +6160,7 @@
     break;
 
   case 299:
-#line 2843 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2845 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[(2) - (9)].PrimType), (yyvsp[(3) - (9)].ValIDVal));
     CHECK_FOR_ERROR
@@ -6181,7 +6183,7 @@
     break;
 
   case 300:
-#line 2862 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2864 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[(2) - (8)].PrimType), (yyvsp[(3) - (8)].ValIDVal));
     CHECK_FOR_ERROR
@@ -6194,7 +6196,7 @@
     break;
 
   case 301:
-#line 2872 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2874 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
 
     // Handle the short syntax
@@ -6301,7 +6303,7 @@
     break;
 
   case 302:
-#line 2975 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2977 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnwindInst();
     CHECK_FOR_ERROR
@@ -6309,7 +6311,7 @@
     break;
 
   case 303:
-#line 2979 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2981 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnreachableInst();
     CHECK_FOR_ERROR
@@ -6317,7 +6319,7 @@
     break;
 
   case 304:
-#line 2986 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2988 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = (yyvsp[(1) - (6)].JumpTable);
     Constant *V = cast<Constant>(getExistingVal((yyvsp[(2) - (6)].PrimType), (yyvsp[(3) - (6)].ValIDVal)));
@@ -6332,7 +6334,7 @@
     break;
 
   case 305:
-#line 2997 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2999 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
     Constant *V = cast<Constant>(getExistingVal((yyvsp[(1) - (5)].PrimType), (yyvsp[(2) - (5)].ValIDVal)));
@@ -6348,7 +6350,7 @@
     break;
 
   case 306:
-#line 3010 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3012 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // Is this definition named?? if so, assign the name...
     setValueName((yyvsp[(2) - (2)].InstVal), (yyvsp[(1) - (2)].StrVal));
@@ -6360,7 +6362,7 @@
     break;
 
   case 307:
-#line 3019 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3021 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
     int ValNum = InsertValue((yyvsp[(2) - (2)].InstVal));
@@ -6375,7 +6377,7 @@
     break;
 
   case 308:
-#line 3032 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3034 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {    // Used for PHI nodes
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (6)].TypeVal))->getDescription());
@@ -6390,7 +6392,7 @@
     break;
 
   case 309:
-#line 3043 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3045 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.PHIList) = (yyvsp[(1) - (7)].PHIList);
     Value* tmpVal = getVal((yyvsp[(1) - (7)].PHIList)->front().first->getType(), (yyvsp[(4) - (7)].ValIDVal));
@@ -6402,7 +6404,7 @@
     break;
 
   case 310:
-#line 3053 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3055 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // FIXME: Remove trailing OptAttributes in LLVM 3.0, it was a mistake in 2.0
     if (!UpRefs.empty())
@@ -6417,7 +6419,7 @@
     break;
 
   case 311:
-#line 3064 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3066 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // FIXME: Remove trailing OptAttributes in LLVM 3.0, it was a mistake in 2.0
     // Labels are only valid in ASMs
@@ -6429,7 +6431,7 @@
     break;
 
   case 312:
-#line 3072 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3074 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // FIXME: Remove trailing OptAttributes in LLVM 3.0, it was a mistake in 2.0
     if (!UpRefs.empty())
@@ -6443,7 +6445,7 @@
     break;
 
   case 313:
-#line 3082 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3084 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // FIXME: Remove trailing OptAttributes in LLVM 3.0, it was a mistake in 2.0
     (yyval.ParamList) = (yyvsp[(1) - (6)].ParamList);
@@ -6454,17 +6456,17 @@
     break;
 
   case 314:
-#line 3089 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3091 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ParamList) = new ParamList(); ;}
     break;
 
   case 315:
-#line 3092 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3094 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ValueList) = new std::vector<Value*>(); ;}
     break;
 
   case 316:
-#line 3093 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3095 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValueList) = (yyvsp[(1) - (3)].ValueList);
     (yyval.ValueList)->push_back((yyvsp[(3) - (3)].ValueVal));
@@ -6473,7 +6475,7 @@
     break;
 
   case 317:
-#line 3101 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3103 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ConstantList) = new std::vector<unsigned>();
     if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) != (yyvsp[(2) - (2)].UInt64Val))
@@ -6483,7 +6485,7 @@
     break;
 
   case 318:
-#line 3107 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3109 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ConstantList) = (yyvsp[(1) - (3)].ConstantList);
     if ((unsigned)(yyvsp[(3) - (3)].UInt64Val) != (yyvsp[(3) - (3)].UInt64Val))
@@ -6494,7 +6496,7 @@
     break;
 
   case 319:
-#line 3116 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3118 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
@@ -6502,7 +6504,7 @@
     break;
 
   case 320:
-#line 3120 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3122 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
@@ -6510,7 +6512,7 @@
     break;
 
   case 321:
-#line 3125 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3127 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (5)].TypeVal))->getDescription());
@@ -6530,7 +6532,7 @@
     break;
 
   case 322:
-#line 3141 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3143 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (5)].TypeVal))->getDescription());
@@ -6551,7 +6553,7 @@
     break;
 
   case 323:
-#line 3158 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3160 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (6)].TypeVal))->getDescription());
@@ -6567,7 +6569,7 @@
     break;
 
   case 324:
-#line 3170 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3172 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (6)].TypeVal))->getDescription());
@@ -6583,7 +6585,7 @@
     break;
 
   case 325:
-#line 3182 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3184 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (6)].TypeVal))->getDescription());
@@ -6601,7 +6603,7 @@
     break;
 
   case 326:
-#line 3196 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3198 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (6)].TypeVal))->getDescription());
@@ -6619,7 +6621,7 @@
     break;
 
   case 327:
-#line 3210 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3212 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(4) - (4)].TypeVal))->getDescription());
@@ -6635,7 +6637,7 @@
     break;
 
   case 328:
-#line 3222 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3224 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (isa<VectorType>((yyvsp[(2) - (6)].ValueVal)->getType())) {
       // vector select
@@ -6660,7 +6662,7 @@
     break;
 
   case 329:
-#line 3243 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3245 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(4) - (4)].TypeVal))->getDescription());
@@ -6671,7 +6673,7 @@
     break;
 
   case 330:
-#line 3250 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3252 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[(2) - (4)].ValueVal), (yyvsp[(4) - (4)].ValueVal)))
       GEN_ERROR("Invalid extractelement operands");
@@ -6681,7 +6683,7 @@
     break;
 
   case 331:
-#line 3256 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3258 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal)))
       GEN_ERROR("Invalid insertelement operands");
@@ -6691,7 +6693,7 @@
     break;
 
   case 332:
-#line 3262 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3264 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal)))
       GEN_ERROR("Invalid shufflevector operands");
@@ -6701,7 +6703,7 @@
     break;
 
   case 333:
-#line 3268 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3270 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const Type *Ty = (yyvsp[(2) - (2)].PHIList)->front().first->getType();
     if (!Ty->isFirstClassType())
@@ -6720,7 +6722,7 @@
     break;
 
   case 334:
-#line 3284 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3286 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
 
     // Handle the short syntax
@@ -6833,7 +6835,7 @@
     break;
 
   case 335:
-#line 3393 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3395 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.InstVal) = (yyvsp[(1) - (1)].InstVal);
     CHECK_FOR_ERROR
@@ -6841,7 +6843,7 @@
     break;
 
   case 336:
-#line 3398 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3400 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
@@ -6849,7 +6851,7 @@
     break;
 
   case 337:
-#line 3402 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3404 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
@@ -6857,7 +6859,7 @@
     break;
 
   case 338:
-#line 3409 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3411 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (3)].TypeVal))->getDescription());
@@ -6868,7 +6870,7 @@
     break;
 
   case 339:
-#line 3416 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3418 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (6)].TypeVal))->getDescription());
@@ -6882,7 +6884,7 @@
     break;
 
   case 340:
-#line 3426 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3428 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (3)].TypeVal))->getDescription());
@@ -6893,7 +6895,7 @@
     break;
 
   case 341:
-#line 3433 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3435 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (6)].TypeVal))->getDescription());
@@ -6907,7 +6909,7 @@
     break;
 
   case 342:
-#line 3443 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3445 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[(2) - (2)].ValueVal)->getType()))
       GEN_ERROR("Trying to free nonpointer type " +
@@ -6918,7 +6920,7 @@
     break;
 
   case 343:
-#line 3451 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3453 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (5)].TypeVal))->getDescription());
@@ -6936,7 +6938,7 @@
     break;
 
   case 344:
-#line 3465 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3467 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) - (7)].TypeVal))->getDescription());
@@ -6957,7 +6959,7 @@
     break;
 
   case 345:
-#line 3482 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3484 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (5)].TypeVal))->getDescription());
@@ -6975,7 +6977,7 @@
     break;
 
   case 346:
-#line 3496 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3498 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (4)].TypeVal))->getDescription());
@@ -6994,7 +6996,7 @@
     break;
 
   case 347:
-#line 3511 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3513 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (4)].TypeVal))->getDescription());
@@ -7013,7 +7015,7 @@
     break;
 
   case 348:
-#line 3526 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3528 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (7)].TypeVal))->getDescription());
@@ -7035,7 +7037,7 @@
 
 
 /* Line 1267 of yacc.c.  */
-#line 7039 "llvmAsmParser.tab.c"
+#line 7041 "llvmAsmParser.tab.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -7249,7 +7251,7 @@
 }
 
 
-#line 3545 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3547 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
 
 
 // common code from the two 'RunVMAsmParser' functions
diff --git a/lib/AsmParser/llvmAsmParser.h.cvs b/lib/AsmParser/llvmAsmParser.h.cvs
index 89f2c4c..eb34cc0 100644
--- a/lib/AsmParser/llvmAsmParser.h.cvs
+++ b/lib/AsmParser/llvmAsmParser.h.cvs
@@ -360,7 +360,7 @@
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 978 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 980 "/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
 {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
diff --git a/lib/AsmParser/llvmAsmParser.y.cvs b/lib/AsmParser/llvmAsmParser.y.cvs
index 9b29cdd..54694d7 100644
--- a/lib/AsmParser/llvmAsmParser.y.cvs
+++ b/lib/AsmParser/llvmAsmParser.y.cvs
@@ -307,8 +307,10 @@
   }
 
   std::map<ValID, PATypeHolder>::iterator I =CurModule.LateResolveTypes.find(D);
-  if (I != CurModule.LateResolveTypes.end())
+  if (I != CurModule.LateResolveTypes.end()) {
+    D.destroy();
     return I->second;
+  }
 
   Type *Typ = OpaqueType::get();
   CurModule.LateResolveTypes.insert(std::make_pair(D, Typ));
