2082, 2103, 2108, 2116, 2117, 2121, 2121, 2125, 2125, 2128,
2131, 2155, 2167, 2166, 2178, 2177, 2187, 2186, 2197, 2237,
2240, 2246, 2256, 2260, 2265, 2267, 2272, 2277, 2286, 2296,
2082, 2103, 2108, 2116, 2117, 2121, 2121, 2125, 2125, 2128,
2131, 2155, 2167, 2166, 2178, 2177, 2187, 2186, 2197, 2237,
2240, 2246, 2256, 2260, 2265, 2267, 2272, 2277, 2286, 2296,
- 2307, 2311, 2320, 2329, 2334, 2466, 2466, 2468, 2477, 2477,
- 2479, 2484, 2496, 2500, 2505, 2509, 2513, 2518, 2523, 2527,
- 2531, 2535, 2539, 2543, 2547, 2569, 2591, 2597, 2610, 2622,
- 2627, 2639, 2645, 2649, 2659, 2663, 2667, 2672, 2679, 2679,
- 2685, 2694, 2699, 2704, 2708, 2717, 2726, 2739, 2748, 2752,
- 2760, 2780, 2784, 2789, 2800, 2819, 2828, 2914, 2918, 2925,
- 2936, 2949, 2958, 2971, 2982, 2992, 3003, 3011, 3021, 3028,
- 3031, 3032, 3040, 3046, 3055, 3059, 3064, 3080, 3097, 3109,
- 3121, 3135, 3149, 3161, 3182, 3189, 3195, 3201, 3207, 3222,
- 3312, 3317, 3321, 3328, 3335, 3345, 3352, 3362, 3370, 3384,
- 3401, 3415, 3430, 3445
+ 2307, 2311, 2320, 2329, 2334, 2485, 2485, 2487, 2496, 2496,
+ 2498, 2503, 2515, 2519, 2524, 2528, 2532, 2537, 2542, 2546,
+ 2550, 2554, 2558, 2562, 2566, 2588, 2610, 2616, 2629, 2641,
+ 2646, 2658, 2664, 2668, 2678, 2682, 2686, 2691, 2698, 2698,
+ 2704, 2713, 2718, 2723, 2727, 2736, 2745, 2758, 2767, 2771,
+ 2779, 2799, 2803, 2808, 2819, 2838, 2847, 2951, 2955, 2962,
+ 2973, 2986, 2995, 3008, 3019, 3029, 3040, 3048, 3058, 3065,
+ 3068, 3069, 3077, 3083, 3092, 3096, 3101, 3117, 3134, 3146,
+ 3158, 3172, 3186, 3198, 3219, 3226, 3232, 3238, 3244, 3259,
+ 3369, 3374, 3378, 3385, 3392, 3402, 3409, 3419, 3427, 3441,
+ 3458, 3472, 3487, 3502
- if ((yyvsp[(7) - (11)].Attributes) != Attribute::None)
- Attrs.push_back(AttributeWithIndex::get(0, (yyvsp[(7) - (11)].Attributes)));
+ //FIXME : In 3.0, stop accepting zext, sext and inreg as optional function
+ //attributes.
+ Attributes RetAttrs = 0;
+ if ((yyvsp[(7) - (11)].Attributes) != Attribute::None) {
+ if ((yyvsp[(7) - (11)].Attributes) & Attribute::ZExt) {
+ RetAttrs = RetAttrs | Attribute::ZExt;
+ (yyvsp[(7) - (11)].Attributes) = (yyvsp[(7) - (11)].Attributes) ^ Attribute::ZExt;
+ }
+ if ((yyvsp[(7) - (11)].Attributes) & Attribute::SExt) {
+ RetAttrs = RetAttrs | Attribute::SExt;
+ (yyvsp[(7) - (11)].Attributes) = (yyvsp[(7) - (11)].Attributes) ^ Attribute::SExt;
+ }
+ if ((yyvsp[(7) - (11)].Attributes) & Attribute::InReg) {
+ RetAttrs = RetAttrs | Attribute::InReg;
+ (yyvsp[(7) - (11)].Attributes) = (yyvsp[(7) - (11)].Attributes) ^ Attribute::InReg;
+ }
+ if (RetAttrs != Attribute::None)
+ Attrs.push_back(AttributeWithIndex::get(0, RetAttrs));
+ }
- if ((yyvsp[(8) - (14)].Attributes) != Attribute::None)
- Attrs.push_back(AttributeWithIndex::get(0, (yyvsp[(8) - (14)].Attributes)));
-
+ //FIXME : In 3.0, stop accepting zext, sext and inreg as optional function
+ //attributes.
+ Attributes RetAttrs = 0;
+ if ((yyvsp[(8) - (14)].Attributes) != Attribute::None) {
+ if ((yyvsp[(8) - (14)].Attributes) & Attribute::ZExt) {
+ RetAttrs = RetAttrs | Attribute::ZExt;
+ (yyvsp[(8) - (14)].Attributes) = (yyvsp[(8) - (14)].Attributes) ^ Attribute::ZExt;
+ }
+ if ((yyvsp[(8) - (14)].Attributes) & Attribute::SExt) {
+ RetAttrs = RetAttrs | Attribute::SExt;
+ (yyvsp[(8) - (14)].Attributes) = (yyvsp[(8) - (14)].Attributes) ^ Attribute::SExt;
+ }
+ if ((yyvsp[(8) - (14)].Attributes) & Attribute::InReg) {
+ RetAttrs = RetAttrs | Attribute::InReg;
+ (yyvsp[(8) - (14)].Attributes) = (yyvsp[(8) - (14)].Attributes) ^ Attribute::InReg;
+ }
+ if (RetAttrs != Attribute::None)
+ Attrs.push_back(AttributeWithIndex::get(0, RetAttrs));
+ }
+
- if ((yyvsp[(8) - (8)].Attributes) != Attribute::None)
- Attrs.push_back(AttributeWithIndex::get(0, (yyvsp[(8) - (8)].Attributes)));
+ //FIXME : In 3.0, stop accepting zext, sext and inreg as optional function
+ //attributes.
+ Attributes RetAttrs = 0;
+ if ((yyvsp[(8) - (8)].Attributes) != Attribute::None) {
+ if ((yyvsp[(8) - (8)].Attributes) & Attribute::ZExt) {
+ RetAttrs = RetAttrs | Attribute::ZExt;
+ (yyvsp[(8) - (8)].Attributes) = (yyvsp[(8) - (8)].Attributes) ^ Attribute::ZExt;
+ }
+ if ((yyvsp[(8) - (8)].Attributes) & Attribute::SExt) {
+ RetAttrs = RetAttrs | Attribute::SExt;
+ (yyvsp[(8) - (8)].Attributes) = (yyvsp[(8) - (8)].Attributes) ^ Attribute::SExt;
+ }
+ if ((yyvsp[(8) - (8)].Attributes) & Attribute::InReg) {
+ RetAttrs = RetAttrs | Attribute::InReg;
+ (yyvsp[(8) - (8)].Attributes) = (yyvsp[(8) - (8)].Attributes) ^ Attribute::InReg;
+ }
+ if (RetAttrs != Attribute::None)
+ Attrs.push_back(AttributeWithIndex::get(0, RetAttrs));
+ }
+