From 66728ef3d20b3d05a1e7478b286a164c50c510ad Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Tue, 20 Mar 2007 01:13:36 +0000 Subject: [PATCH] Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35199 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AsmParser/llvmAsmParser.cpp.cvs | 569 ++++++++++++++-------------- lib/AsmParser/llvmAsmParser.h.cvs | 2 +- lib/AsmParser/llvmAsmParser.y.cvs | 31 +- 3 files changed, 320 insertions(+), 282 deletions(-) diff --git a/lib/AsmParser/llvmAsmParser.cpp.cvs b/lib/AsmParser/llvmAsmParser.cpp.cvs index 361027cf4b5..73903c14aca 100644 --- a/lib/AsmParser/llvmAsmParser.cpp.cvs +++ b/lib/AsmParser/llvmAsmParser.cpp.cvs @@ -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 Params; std::vector 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 Params; std::vector 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 Elements; for (std::list::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())); 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 Elements; for (std::list::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(), 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(); - (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((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((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((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((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((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((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((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(); (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((yyvsp[0].InstVal))) if (CastInst *CI2 = dyn_cast(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((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(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 >(); Constant *V = cast(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(); ;} 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((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" 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 diff --git a/lib/AsmParser/llvmAsmParser.h.cvs b/lib/AsmParser/llvmAsmParser.h.cvs index 38945b99557..f71bb5f870c 100644 --- a/lib/AsmParser/llvmAsmParser.h.cvs +++ b/lib/AsmParser/llvmAsmParser.h.cvs @@ -299,7 +299,7 @@ #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; diff --git a/lib/AsmParser/llvmAsmParser.y.cvs b/lib/AsmParser/llvmAsmParser.y.cvs index aac87d6c6b3..8427bcccdee 100644 --- a/lib/AsmParser/llvmAsmParser.y.cvs +++ b/lib/AsmParser/llvmAsmParser.y.cvs @@ -513,9 +513,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"); @@ -1294,8 +1301,10 @@ Types std::vector Attrs; Attrs.push_back($5); for (TypeWithAttrsList::iterator I=$3->begin(), E=$3->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; @@ -1312,8 +1321,10 @@ Types std::vector Attrs; Attrs.push_back($5); for (TypeWithAttrsList::iterator I=$3->begin(), E=$3->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; @@ -1429,11 +1440,13 @@ ArgTypeListI // TypeListI : Types { $$ = new std::list(); - $$->push_back(*$1); delete $1; + $$->push_back(*$1); + delete $1; CHECK_FOR_ERROR } | TypeListI ',' Types { - ($$=$1)->push_back(*$3); delete $3; + ($$=$1)->push_back(*$3); + delete $3; CHECK_FOR_ERROR }; @@ -2479,6 +2492,8 @@ BBTerminatorInst : RET ResolvedVal { // Return with a result... PFTy = PointerType::get(Ty); } + delete $3; + Value *V = getVal(PFTy, $4); // Get the function we're calling... CHECK_FOR_ERROR BasicBlock *Normal = getBBVal($11); @@ -2595,6 +2610,7 @@ ValueRefList : Types ValueRef OptParamAttrs { $$ = new ValueRefList(); ValueRefListEntry E; E.Attrs = $3; E.Val = getVal($1->get(), $2); $$->push_back(E); + delete $1; } | ValueRefList ',' Types ValueRef OptParamAttrs { if (!UpRefs.empty()) @@ -2602,6 +2618,7 @@ ValueRefList : Types ValueRef OptParamAttrs { $$ = $1; ValueRefListEntry E; E.Attrs = $5; E.Val = getVal($3->get(), $4); $$->push_back(E); + delete $3; CHECK_FOR_ERROR } | /*empty*/ { $$ = new ValueRefList(); }; @@ -2674,6 +2691,7 @@ InstVal : ArithmeticOps Types ValueRef ',' ValueRef { $$ = CmpInst::create($1, $2, tmpVal1, tmpVal2); if ($$ == 0) GEN_ERROR("icmp operator returned null"); + delete $3; } | FCMP FPredicates Types ValueRef ',' ValueRef { if (!UpRefs.empty()) @@ -2687,6 +2705,7 @@ InstVal : ArithmeticOps Types ValueRef ',' ValueRef { $$ = CmpInst::create($1, $2, tmpVal1, tmpVal2); if ($$ == 0) GEN_ERROR("fcmp operator returned null"); + delete $3; } | CastOps ResolvedVal TO Types { if (!UpRefs.empty()) -- 2.34.1