llvm.org GIT mirror llvm / dc02467
Fix PR1146: parameter attributes are longer part of the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8 Duncan Sands 11 years ago
51 changed file(s) with 6397 addition(s) and 5263 deletion(s). Raw diff Collapse all Expand all
763763

The return type and each parameter of a function type may have a set of

764764 parameter attributes associated with them. Parameter attributes are
765765 used to communicate additional information about the result or parameters of
766 a function. Parameter attributes are considered to be part of the function
767 type so two functions types that differ only by the parameter attributes
768 are different function types.

766 a function. Parameter attributes are considered to be part of the function,
767 not of the function type, so functions with different parameter attributes
768 can have the same function type.

769769
770770

Parameter attributes are simple keywords that follow the type specified. If

771771 multiple parameter attributes are needed, they are space separated. For
773773
774774
775775

                  
                
776 %someFunc = i16 (i8 signext %someParam) zeroext
777 %someFunc = i16 (i8 zeroext %someParam) zeroext
778
779
780
781

Note that the two function types above are unique because the parameter has

782 a different attribute (signext in the first one, zeroext in
783 the second). Also note that the attribute for the function result
784 (zeroext) comes immediately after the argument list.

776 declare i32 @printf(i8* noalias , ...) nounwind
777 declare i32 @atoi(i8*) nounwind readonly
778
779
780
781

Note that any attributes for the function result (nounwind,

782 readonly) come immediately after the argument list.

785783
786784

Currently, only the following parameter attributes are defined:

787785
3030 class VectorValType;
3131 class IntegerValType;
3232 class APInt;
33 class ParamAttrsList;
3433
3534 class DerivedType : public Type {
3635 friend class Type;
139138 class FunctionType : public DerivedType {
140139 friend class TypeMap;
141140 bool isVarArgs;
142 const ParamAttrsList *ParamAttrs;
143141
144142 FunctionType(const FunctionType &); // Do not implement
145143 const FunctionType &operator=(const FunctionType &); // Do not implement
146144 FunctionType(const Type *Result, const std::vector &Params,
147 bool IsVarArgs, const ParamAttrsList *Attrs = 0);
145 bool IsVarArgs);
148146
149147 public:
150148 /// FunctionType::get - This static method is the primary way of constructing
153151 static FunctionType *get(
154152 const Type *Result, ///< The result type
155153 const std::vector &Params, ///< The types of the parameters
156 bool isVarArg, ///< Whether this is a variable argument length function
157 const ParamAttrsList *Attrs = 0
158 ///< Indicates the parameter attributes to use, if any. The 0th entry
159 ///< in the list refers to the return type. Parameters are numbered
160 ///< starting at 1. This argument must be on the heap and FunctionType
161 ///< owns it after its passed here.
154 bool isVarArg ///< Whether this is a variable argument length function
162155 );
163156
164157 inline bool isVarArg() const { return isVarArgs; }
175168 /// requires. This does not consider varargs.
176169 ///
177170 unsigned getNumParams() const { return NumContainedTys - 1; }
178
179 bool isStructReturn() const;
180
181 /// The parameter attributes for the \p ith parameter are returned. The 0th
182 /// parameter refers to the return type of the function.
183 /// @returns The ParameterAttributes for the \p ith parameter.
184 /// @brief Get the attributes for a parameter
185 const ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
186171
187172 // Implement the AbstractTypeUser interface.
188173 virtual void refineAbstractType(const DerivedType *OldTy, const Type *NewTy);
6767 BasicBlockListType BasicBlocks; ///< The basic blocks
6868 mutable ArgumentListType ArgumentList; ///< The formal arguments
6969 ValueSymbolTable *SymTab; ///< Symbol table of args/instructions
70 ParamAttrsList *ParamAttrs; ///< Parameter attributes
70 const ParamAttrsList *ParamAttrs; ///< Parameter attributes
7171
7272 // The Calling Convention is stored in Value::SubclassData.
7373 /*unsigned CallingConvention;*/
149149 /// Sets the parameter attributes for this Function. To construct a
150150 /// ParamAttrsList, see ParameterAttributes.h
151151 /// @brief Set the parameter attributes.
152 void setParamAttrs(ParamAttrsList *attrs);
152 void setParamAttrs(const ParamAttrsList *attrs);
153
154 /// @brief Determine if the function returns a structure.
155 bool isStructReturn() const;
153156
154157 /// deleteBody - This method deletes the body of the function, and converts
155158 /// the linkage to external.
835835 ///
836836
837837 class CallInst : public Instruction {
838 ParamAttrsList *ParamAttrs; ///< parameter attributes for call
838 const ParamAttrsList *ParamAttrs; ///< parameter attributes for call
839839 CallInst(const CallInst &CI);
840840 void init(Value *Func, Value* const *Params, unsigned NumParams);
841841 void init(Value *Func, Value *Actual1, Value *Actual2);
915915 /// parameter attributes information, if any.
916916 /// @returns 0 if no attributes have been set.
917917 /// @brief Get the parameter attributes.
918 ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
918 const ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
919919
920920 /// Sets the parameter attributes for this CallInst. To construct a
921921 /// ParamAttrsList, see ParameterAttributes.h
922922 /// @brief Set the parameter attributes.
923 void setParamAttrs(ParamAttrsList *attrs);
923 void setParamAttrs(const ParamAttrsList *attrs);
924
925 /// @brief Determine if the call returns a structure.
926 bool isStructReturn() const;
924927
925928 /// getCalledFunction - Return the function being called by this instruction
926929 /// if it is a direct call. If it is a call through a function pointer,
16191622 /// calling convention of the call.
16201623 ///
16211624 class InvokeInst : public TerminatorInst {
1622 ParamAttrsList *ParamAttrs;
1625 const ParamAttrsList *ParamAttrs;
16231626 InvokeInst(const InvokeInst &BI);
16241627 void init(Value *Fn, BasicBlock *IfNormal, BasicBlock *IfException,
16251628 Value* const *Args, unsigned NumArgs);
16901693 /// parameter attributes information, if any.
16911694 /// @returns 0 if no attributes have been set.
16921695 /// @brief Get the parameter attributes.
1693 ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
1696 const ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
16941697
16951698 /// Sets the parameter attributes for this InvokeInst. To construct a
16961699 /// ParamAttrsList, see ParameterAttributes.h
16971700 /// @brief Set the parameter attributes.
1698 void setParamAttrs(ParamAttrsList *attrs);
1701 void setParamAttrs(const ParamAttrsList *attrs);
1702
1703 /// @brief Determine if the call returns a structure.
1704 bool isStructReturn() const;
16991705
17001706 /// getCalledFunction - Return the function called, or null if this is an
17011707 /// indirect function invocation.
7676 /// with a parameter index.
7777 /// @brief ParameterAttributes with a parameter index.
7878 struct ParamAttrsWithIndex {
79 uint16_t attrs; ///< The attributes that are set, |'d together
79 uint16_t attrs; ///< The attributes that are set, or'd together
8080 uint16_t index; ///< Index of the parameter for which the attributes apply
8181
8282 static ParamAttrsWithIndex get(uint16_t idx, uint16_t attrs) {
218218 /// @brief Return the number of parameter attributes this type has.
219219 unsigned size() const { return attrs.size(); }
220220
221 /// @brief Return the number of references to this ParamAttrsList.
222 unsigned numRefs() const { return refCount; }
223
224 /// @}
225 /// @name Mutators
226 /// @{
227 public:
221228 /// Classes retaining references to ParamAttrsList objects should call this
222229 /// method to increment the reference count. This ensures that the
223230 /// ParamAttrsList object will not disappear until the class drops it.
2626
2727 class CallInst;
2828 class InvokeInst;
29 class ParamAttrsList;
2930
3031 class CallSite {
3132 Instruction *I;
5556 /// call.
5657 unsigned getCallingConv() const;
5758 void setCallingConv(unsigned CC);
59
60 /// getParamAttrs/setParamAttrs - get or set the parameter attributes of
61 /// the call.
62 const ParamAttrsList *getParamAttrs() const;
63 void setParamAttrs(const ParamAttrsList *PAL);
5864
5965 /// getType - Return the type of the instruction that generated this call site
6066 ///
267267
268268 static bool isNoAliasArgument(const Argument *Arg) {
269269 const Function *Func = Arg->getParent();
270 const ParamAttrsList *Attr = Func->getFunctionType()->getParamAttrs();
270 const ParamAttrsList *Attr = Func->getParamAttrs();
271271 if (Attr) {
272272 unsigned Idx = 1;
273273 for (Function::const_arg_iterator I = Func->arg_begin(),
838838 return UnknownModRefBehavior;
839839 }
840840
841 const ParamAttrsList *Attrs = F->getFunctionType()->getParamAttrs();
841 const ParamAttrsList *Attrs = F->getParamAttrs();
842842 if (Attrs && Attrs->paramHasAttr(0, ParamAttr::ReadNone))
843843 return DoesNotAccessMemory;
844844 if (Attrs && Attrs->paramHasAttr(0, ParamAttr::ReadOnly))
213213 NOALIAS = 395,
214214 BYVAL = 396,
215215 NEST = 397,
216 CONST = 398,
217 PURE = 399,
216 READNONE = 398,
217 READONLY = 399,
218218 DEFAULT = 400,
219219 HIDDEN = 401,
220220 PROTECTED = 402
361361 #define NOALIAS 395
362362 #define BYVAL 396
363363 #define NEST 397
364 #define CONST 398
365 #define PURE 399
364 #define READNONE 398
365 #define READONLY 399
366366 #define DEFAULT 400
367367 #define HIDDEN 401
368368 #define PROTECTED 402
371371
372372
373373 /* Copy the first part of user declarations. */
374 #line 14 "/llvm/lib/AsmParser/llvmAsmParser.y"
374 #line 14 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
375375
376376 #include "ParserInternals.h"
377377 #include "llvm/CallingConv.h"
390390 #include
391391 #include
392392 #include
393 #ifndef NDEBUG
394 #define YYDEBUG 1
395 #endif
396393
397394 // The following is a gross hack. In order to rid the libAsmParser library of
398395 // exceptions, we have to have a way of getting the yyparse function to go into
412409 int yyerror(const char *ErrorMsg); // Forward declarations to prevent "implicit
413410 int yylex(); // declaration" of xxx warnings.
414411 int yyparse();
415
416 namespace llvm {
417 std::string CurFilename;
418 #if YYDEBUG
419 static cl::opt
420 Debug("debug-yacc", cl::desc("Print yacc debug state changes"),
421 cl::Hidden, cl::init(false));
422 #endif
423 }
424412 using namespace llvm;
425413
426414 static Module *ParserResult;
874862 // Remember where this forward reference came from. FIXME, shouldn't we try
875863 // to recycle these things??
876864 CurModule.PlaceHolderInfo.insert(std::make_pair(V, std::make_pair(ID,
877 llvmAsmlineno)));
865 LLLgetLineNo())));
878866
879867 if (inFunctionScope())
880868 InsertValue(V, CurFun.LateResolveValues);
13061294 //
13071295 static Module* RunParser(Module * M);
13081296
1309 Module *llvm::RunVMAsmParser(const std::string &Filename, FILE *F) {
1310 set_scan_file(F);
1311
1312 CurFilename = Filename;
1313 return RunParser(new Module(CurFilename));
1314 }
1315
1316 Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
1317 set_scan_string(AsmString);
1318
1319 CurFilename = "from_memory";
1320 if (M == NULL) {
1321 return RunParser(new Module (CurFilename));
1322 } else {
1323 return RunParser(M);
1324 }
1297 Module *llvm::RunVMAsmParser(llvm::MemoryBuffer *MB) {
1298 InitLLLexer(MB);
1299 Module *M = RunParser(new Module(LLLgetFilename()));
1300 FreeLexer();
1301 return M;
13251302 }
13261303
13271304
13461323
13471324 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
13481325 typedef union YYSTYPE
1349 #line 968 "/llvm/lib/AsmParser/llvmAsmParser.y"
1326 #line 945 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
13501327 {
13511328 llvm::Module *ModuleVal;
13521329 llvm::Function *FunctionVal;
13931370 llvm::ICmpInst::Predicate IPredicate;
13941371 llvm::FCmpInst::Predicate FPredicate;
13951372 }
1396 /* Line 193 of yacc.c. */
1397 #line 1399 "llvmAsmParser.tab.c"
1373 /* Line 187 of yacc.c. */
1374 #line 1376 "llvmAsmParser.tab.c"
13981375 YYSTYPE;
13991376 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
14001377 # define YYSTYPE_IS_DECLARED 1
14071384
14081385
14091386 /* Line 216 of yacc.c. */
1410 #line 1412 "llvmAsmParser.tab.c"
1387 #line 1389 "llvmAsmParser.tab.c"
14111388
14121389 #ifdef short
14131390 # undef short
14571434 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
14581435
14591436 #ifndef YY_
1460 # if defined YYENABLE_NLS && YYENABLE_NLS
1437 # if YYENABLE_NLS
14611438 # if ENABLE_NLS
14621439 # include /* INFRINGES ON USER NAME SPACE */
14631440 # define YY_(msgid) dgettext ("bison-runtime", msgid)
16221599 /* YYFINAL -- State number of the termination state. */
16231600 #define YYFINAL 43
16241601 /* YYLAST -- Last index in YYTABLE. */
1625 #define YYLAST 1754
1602 #define YYLAST 1816
16261603
16271604 /* YYNTOKENS -- Number of terminals. */
16281605 #define YYNTOKENS 162
16311608 /* YYNRULES -- Number of rules. */
16321609 #define YYNRULES 314
16331610 /* YYNRULES -- Number of states. */
1634 #define YYNSTATES 602
1611 #define YYNSTATES 608
16351612
16361613 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
16371614 #define YYUNDEFTOK 2
17191696 690, 692, 694, 696, 700, 702, 708, 710, 712, 714,
17201697 716, 718, 720, 723, 726, 729, 733, 736, 737, 739,
17211698 742, 745, 749, 759, 769, 778, 793, 795, 797, 804,
1722 810, 813, 820, 828, 832, 836, 842, 848, 849, 850,
1723 854, 857, 859, 865, 871, 878, 885, 890, 897, 902,
1724 907, 914, 921, 924, 933, 935, 937, 938, 942, 949,
1725 953, 960, 963, 969, 977
1699 810, 813, 820, 828, 833, 838, 845, 852, 853, 854,
1700 858, 861, 863, 869, 875, 882, 889, 894, 901, 906,
1701 911, 918, 925, 928, 937, 939, 941, 942, 946, 953,
1702 957, 964, 967, 973, 981
17261703 };
17271704
17281705 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
17511728 135, -1, 117, -1, 134, -1, 118, -1, 137, -1,
17521729 138, -1, 140, -1, 141, -1, 142, -1, -1, 184,
17531730 183, -1, 136, -1, 139, -1, 135, -1, 134, -1,
1754 144, -1, 143, -1, -1, 186, 185, -1, -1, 53,
1731 143, -1, 144, -1, -1, 186, 185, -1, -1, 53,
17551732 4, -1, -1, 149, 53, 4, -1, 34, 22, -1,
17561733 -1, 189, -1, -1, 149, 192, 191, -1, 189, -1,
17571734 53, 4, -1, 11, -1, 12, -1, 13, -1, 16,
18101787 17, 229, -1, 71, -1, 72, -1, 235, 168, 227,
18111788 149, 17, 229, -1, 168, 227, 149, 17, 229, -1,
18121789 172, 241, -1, 194, 154, 229, 149, 229, 156, -1,
1813 237, 149, 154, 229, 149, 229, 156, -1, 194, 229,
1814 184, -1, 17, 229, 184, -1, 238, 149, 194, 229,
1815 184, -1, 238, 149, 17, 229, 184, -1, -1, -1,
1816 239, 149, 230, -1, 56, 55, -1, 55, -1, 163,
1817 194, 229, 149, 229, -1, 164, 194, 229, 149, 229,
1818 -1, 88, 166, 194, 229, 149, 229, -1, 89, 167,
1819 194, 229, 149, 229, -1, 165, 230, 38, 194, -1,
1820 129, 230, 149, 230, 149, 230, -1, 130, 230, 149,
1821 194, -1, 131, 230, 149, 230, -1, 132, 230, 149,
1822 230, 149, 230, -1, 133, 230, 149, 230, 149, 230,
1823 -1, 128, 237, -1, 240, 182, 196, 229, 152, 238,
1824 153, 186, -1, 243, -1, 36, -1, -1, 110, 194,
1825 188, -1, 110, 194, 149, 11, 229, 188, -1, 111,
1826 194, 188, -1, 111, 194, 149, 11, 229, 188, -1,
1827 112, 230, -1, 242, 113, 194, 229, 188, -1, 242,
1828 114, 230, 149, 194, 229, 188, -1, 115, 194, 229,
1829 239, -1
1790 237, 149, 154, 229, 149, 229, 156, -1, 194, 184,
1791 229, 184, -1, 17, 184, 229, 184, -1, 238, 149,
1792 194, 184, 229, 184, -1, 238, 149, 17, 184, 229,
1793 184, -1, -1, -1, 239, 149, 230, -1, 56, 55,
1794 -1, 55, -1, 163, 194, 229, 149, 229, -1, 164,
1795 194, 229, 149, 229, -1, 88, 166, 194, 229, 149,
1796 229, -1, 89, 167, 194, 229, 149, 229, -1, 165,
1797 230, 38, 194, -1, 129, 230, 149, 230, 149, 230,
1798 -1, 130, 230, 149, 194, -1, 131, 230, 149, 230,
1799 -1, 132, 230, 149, 230, 149, 230, -1, 133, 230,
1800 149, 230, 149, 230, -1, 128, 237, -1, 240, 182,
1801 196, 229, 152, 238, 153, 186, -1, 243, -1, 36,
1802 -1, -1, 110, 194, 188, -1, 110, 194, 149, 11,
1803 229, 188, -1, 111, 194, 188, -1, 111, 194, 149,
1804 11, 229, 188, -1, 112, 230, -1, 242, 113, 194,
1805 229, 188, -1, 242, 114, 230, 149, 194, 229, 188,
1806 -1, 115, 194, 229, 239, -1
18301807 };
18311808
18321809 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
18331810 static const yytype_uint16 yyrline[] =
18341811 {
1835 0, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
1836 1128, 1129, 1129, 1129, 1129, 1129, 1129, 1130, 1130, 1130,
1837 1130, 1130, 1130, 1131, 1131, 1131, 1131, 1131, 1131, 1134,
1838 1134, 1135, 1135, 1136, 1136, 1137, 1137, 1138, 1138, 1142,
1839 1142, 1143, 1143, 1144, 1144, 1145, 1145, 1146, 1146, 1147,
1840 1147, 1148, 1148, 1149, 1150, 1155, 1156, 1156, 1156, 1156,
1841 1156, 1158, 1158, 1158, 1159, 1159, 1163, 1167, 1172, 1172,
1842 1174, 1175, 1180, 1186, 1187, 1188, 1189, 1190, 1194, 1195,
1843 1196, 1200, 1201, 1202, 1203, 1207, 1208, 1209, 1213, 1214,
1844 1215, 1216, 1217, 1221, 1222, 1223, 1226, 1227, 1228, 1229,
1845 1230, 1231, 1232, 1239, 1240, 1241, 1242, 1243, 1244, 1245,
1846 1246, 1247, 1250, 1251, 1256, 1257, 1258, 1259, 1260, 1261,
1847 1264, 1265, 1272, 1273, 1279, 1280, 1288, 1296, 1297, 1302,
1848 1303, 1304, 1309, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
1849 1325, 1329, 1333, 1340, 1345, 1353, 1383, 1414, 1419, 1429,
1850 1439, 1443, 1453, 1460, 1467, 1474, 1479, 1484, 1491, 1492,
1851 1499, 1506, 1514, 1520, 1532, 1560, 1576, 1603, 1631, 1657,
1852 1677, 1703, 1723, 1735, 1742, 1808, 1818, 1828, 1834, 1844,
1853 1850, 1860, 1865, 1870, 1883, 1895, 1917, 1925, 1931, 1942,
1854 1947, 1952, 1958, 1964, 1973, 1977, 1985, 1985, 1988, 1988,
1855 1991, 2003, 2024, 2029, 2037, 2038, 2042, 2042, 2046, 2046,
1856 2049, 2052, 2076, 2087, 2087, 2098, 2097, 2107, 2106, 2117,
1857 2157, 2160, 2166, 2176, 2180, 2185, 2187, 2192, 2197, 2206,
1858 2216, 2227, 2231, 2240, 2249, 2254, 2375, 2375, 2377, 2386,
1859 2386, 2388, 2393, 2405, 2409, 2414, 2418, 2422, 2426, 2430,
1860 2434, 2438, 2442, 2446, 2471, 2475, 2485, 2489, 2493, 2498,
1861 2505, 2505, 2511, 2520, 2524, 2533, 2542, 2551, 2555, 2562,
1862 2566, 2570, 2575, 2585, 2604, 2613, 2693, 2697, 2704, 2715,
1863 2728, 2738, 2749, 2759, 2768, 2774, 2783, 2789, 2792, 2793,
1864 2800, 2804, 2809, 2825, 2842, 2856, 2870, 2882, 2890, 2897,
1865 2903, 2909, 2915, 2930, 3015, 3020, 3024, 3031, 3038, 3046,
1866 3053, 3061, 3069, 3083, 3100
1812 0, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
1813 1105, 1106, 1106, 1106, 1106, 1106, 1106, 1107, 1107, 1107,
1814 1107, 1107, 1107, 1108, 1108, 1108, 1108, 1108, 1108, 1111,
1815 1111, 1112, 1112, 1113, 1113, 1114, 1114, 1115, 1115, 1119,
1816 1119, 1120, 1120, 1121, 1121, 1122, 1122, 1123, 1123, 1124,
1817 1124, 1125, 1125, 1126, 1127, 1132, 1133, 1133, 1133, 1133,
1818 1133, 1135, 1135, 1135, 1136, 1136, 1140, 1144, 1149, 1149,
1819 1151, 1152, 1157, 1163, 1164, 1165, 1166, 1167, 1171, 1172,
1820 1173, 1177, 1178, 1179, 1180, 1184, 1185, 1186, 1190, 1191,
1821 1192, 1193, 1194, 1198, 1199, 1200, 1203, 1204, 1205, 1206,
1822 1207, 1208, 1209, 1216, 1217, 1218, 1219, 1220, 1221, 1222,
1823 1223, 1224, 1227, 1228, 1233, 1234, 1235, 1236, 1237, 1238,
1824 1241, 1242, 1249, 1250, 1256, 1257, 1265, 1273, 1274, 1279,
1825 1280, 1281, 1286, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
1826 1302, 1306, 1310, 1317, 1322, 1330, 1348, 1366, 1371, 1381,
1827 1391, 1395, 1405, 1412, 1421, 1428, 1433, 1438, 1445, 1446,
1828 1453, 1460, 1468, 1474, 1486, 1514, 1530, 1557, 1585, 1611,
1829 1631, 1657, 1677, 1689, 1696, 1762, 1772, 1782, 1788, 1798,
1830 1804, 1814, 1819, 1824, 1837, 1849, 1871, 1879, 1885, 1896,
1831 1901, 1906, 1912, 1918, 1927, 1931, 1939, 1939, 1942, 1942,
1832 1945, 1957, 1978, 1983, 1991, 1992, 1996, 1996, 2000, 2000,
1833 2003, 2006, 2030, 2041, 2041, 2052, 2051, 2061, 2060, 2071,
1834 2111, 2114, 2120, 2130, 2134, 2139, 2141, 2146, 2151, 2160,
1835 2170, 2181, 2185, 2194, 2203, 2208, 2338, 2338, 2340, 2349,
1836 2349, 2351, 2356, 2368, 2372, 2377, 2381, 2385, 2389, 2393,
1837 2397, 2401, 2405, 2409, 2434, 2438, 2448, 2452, 2456, 2461,
1838 2468, 2468, 2474, 2483, 2487, 2496, 2505, 2514, 2518, 2525,
1839 2529, 2533, 2538, 2548, 2567, 2576, 2660, 2664, 2671, 2682,
1840 2695, 2705, 2716, 2726, 2737, 2745, 2755, 2762, 2765, 2766,
1841 2773, 2777, 2782, 2798, 2815, 2829, 2843, 2855, 2863, 2870,
1842 2876, 2882, 2888, 2903, 2994, 2999, 3003, 3010, 3017, 3025,
1843 3032, 3040, 3048, 3062, 3079
18671844 };
18681845 #endif
18691846
18931870 "FPEXT", "BITCAST", "UITOFP", "SITOFP", "FPTOUI", "FPTOSI", "INTTOPTR",
18941871 "PTRTOINT", "PHI_TOK", "SELECT", "VAARG", "EXTRACTELEMENT",
18951872 "INSERTELEMENT", "SHUFFLEVECTOR", "SIGNEXT", "ZEROEXT", "NORETURN",
1896 "INREG", "SRET", "NOUNWIND", "NOALIAS", "BYVAL", "NEST", "CONST", "PURE",
1897 "DEFAULT", "HIDDEN", "PROTECTED", "'='", "','", "'*'", "'\\\\'", "'('",
1898 "')'", "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'", "'c'", "$accept",
1899 "ArithmeticOps", "LogicalOps", "CastOps", "IPredicates", "FPredicates",
1900 "IntType", "FPType", "LocalName", "OptLocalName", "OptLocalAssign",
1901 "GlobalName", "OptGlobalAssign", "GlobalAssign", "GVInternalLinkage",
1902 "GVExternalLinkage", "GVVisibilityStyle", "FunctionDeclareLinkage",
1903 "FunctionDefineLinkage", "AliasLinkage", "OptCallingConv", "ParamAttr",
1904 "OptParamAttrs", "FuncAttr", "OptFuncAttrs", "OptAlign", "OptCAlign",
1905 "SectionString", "OptSection", "GlobalVarAttributes",
1906 "GlobalVarAttribute", "PrimType", "Types", "ArgType", "ResultTypes",
1907 "ArgTypeList", "ArgTypeListI", "TypeListI", "ConstVal", "ConstExpr",
1908 "ConstVector", "GlobalType", "ThreadLocal", "AliaseeRef", "Module",
1909 "DefinitionList", "Definition", "@1", "@2", "@3", "@4", "@5", "AsmBlock",
1910 "TargetDefinition", "LibrariesDefinition", "LibList", "ArgListH",
1911 "ArgList", "FunctionHeaderH", "BEGIN", "FunctionHeader", "END",
1912 "Function", "FunctionProto", "OptSideEffect", "ConstValueRef",
1913 "SymbolicValueRef", "ValueRef", "ResolvedVal", "BasicBlockList",
1914 "BasicBlock", "InstructionList", "BBTerminatorInst", "JumpTable", "Inst",
1915 "PHIList", "ParamList", "IndexList", "OptTailCall", "InstVal",
1916 "OptVolatile", "MemoryInst", 0
1873 "INREG", "SRET", "NOUNWIND", "NOALIAS", "BYVAL", "NEST", "READNONE",
1874 "READONLY", "DEFAULT", "HIDDEN", "PROTECTED", "'='", "','", "'*'",
1875 "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'",
1876 "'c'", "$accept", "ArithmeticOps", "LogicalOps", "CastOps",
1877 "IPredicates", "FPredicates", "IntType", "FPType", "LocalName",
1878 "OptLocalName", "OptLocalAssign", "GlobalName", "OptGlobalAssign",
1879 "GlobalAssign", "GVInternalLinkage", "GVExternalLinkage",
1880 "GVVisibilityStyle", "FunctionDeclareLinkage", "FunctionDefineLinkage",
1881 "AliasLinkage", "OptCallingConv", "ParamAttr", "OptParamAttrs",
1882 "FuncAttr", "OptFuncAttrs", "OptAlign", "OptCAlign", "SectionString",
1883 "OptSection", "GlobalVarAttributes", "GlobalVarAttribute", "PrimType",
1884 "Types", "ArgType", "ResultTypes", "ArgTypeList", "ArgTypeListI",
1885 "TypeListI", "ConstVal", "ConstExpr", "ConstVector", "GlobalType",
1886 "ThreadLocal", "AliaseeRef", "Module", "DefinitionList", "Definition",
1887 "@1", "@2", "@3", "@4", "@5", "AsmBlock", "TargetDefinition",
1888 "LibrariesDefinition", "LibList", "ArgListH", "ArgList",
1889 "FunctionHeaderH", "BEGIN", "FunctionHeader", "END", "Function",
1890 "FunctionProto", "OptSideEffect", "ConstValueRef", "SymbolicValueRef",
1891 "ValueRef", "ResolvedVal", "BasicBlockList", "BasicBlock",
1892 "InstructionList", "BBTerminatorInst", "JumpTable", "Inst", "PHIList",
1893 "ParamList", "IndexList", "OptTailCall", "InstVal", "OptVolatile",
1894 "MemoryInst", 0
19171895 };
19181896 #endif
19191897
20101988 1, 1, 1, 3, 1, 5, 1, 1, 1, 1,
20111989 1, 1, 2, 2, 2, 3, 2, 0, 1, 2,
20121990 2, 3, 9, 9, 8, 14, 1, 1, 6, 5,
2013 2, 6, 7, 3, 3, 5, 5, 0, 0, 3,
1991 2, 6, 7, 4, 4, 6, 6, 0, 0, 3,
20141992 2, 1, 5, 5, 6, 6, 4, 6, 4, 4,
20151993 6, 6, 2, 8, 1, 1, 0, 3, 6, 3,
20161994 6, 2, 5, 7, 4
20612039 254, 261, 260, 262, 0, 271, 0, 0, 0, 0,
20622040 0, 307, 0, 309, 288, 0, 0, 0, 0, 0,
20632041 0, 0, 0, 0, 0, 0, 0, 0, 117, 116,
2064 114, 115, 119, 118, 121, 216, 218, 0, 0, 0,
2042 114, 115, 118, 119, 121, 216, 218, 0, 0, 0,
20652043 288, 0, 0, 0, 0, 0, 164, 150, 162, 0,
20662044 167, 168, 0, 0, 0, 0, 0, 131, 129, 233,
20672045 112, 231, 0, 244, 0, 0, 0, 0, 0, 0,
20732051 0, 0, 0, 0, 292, 293, 287, 0, 312, 0,
20742052 201, 0, 0, 185, 0, 0, 0, 0, 170, 0,
20752053 0, 0, 64, 230, 232, 112, 127, 0, 0, 0,
2076 139, 0, 0, 294, 295, 308, 310, 289, 0, 0,
2054 112, 112, 0, 294, 295, 308, 310, 289, 0, 0,
20772055 297, 300, 301, 0, 124, 0, 0, 0, 191, 0,
20782056 0, 187, 188, 184, 65, 128, 122, 255, 0, 0,
2079 112, 112, 0, 120, 281, 0, 120, 313, 189, 190,
2057 0, 0, 0, 120, 281, 0, 120, 313, 189, 190,
20802058 0, 0, 0, 229, 0, 235, 0, 274, 0, 0,
2081 284, 283, 139, 0, 0, 282, 303, 186, 192, 193,
2082 123, 272, 0, 273, 0, 112, 112, 0, 0, 0,
2083 286, 285, 0, 0, 0, 0, 279, 0, 0, 278,
2084 0, 275
2059 104, 106, 112, 112, 112, 112, 0, 282, 303, 186,
2060 192, 193, 123, 272, 0, 273, 0, 284, 283, 0,
2061 0, 0, 0, 0, 112, 112, 0, 0, 0, 286,
2062 285, 0, 279, 0, 0, 278, 0, 275
20852063 };
20862064
20872065 /* YYDEFGOTO[NTERM-NUM]. */
21002078
21012079 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
21022080 STATE-NUM. */
2103 #define YYPACT_NINF -549
2081 #define YYPACT_NINF -546
21042082 static const yytype_int16 yypact[] =
21052083 {
2106 322, -549, -549, -549, -549, -549, -549, -549, -18, -120,
2107 6, -117, 62, -60, 224, -549, 111, 464, -549, 103,
2108 184, -12, -7, -549, 21, 133, -549, 1309, -549, -549,
2109 -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
2110 140, 140, 211, -549, -549, -549, -549, 140, -549, -549,
2111 -549, -549, -549, 140, 139, -549, -14, 157, 174, 182,
2112 -549, -549, -549, -549, -549, 60, -549, -549, -549, -549,
2113 -549, -549, -549, -549, 215, 233, 2, 526, -549, -549,
2114 -549, 150, -549, 178, 178, 269, -549, 14, 274, 274,
2115 -549, -549, 134, -549, -549, -549, -549, -549, -549, -549,
2116 -23, 54, -549, 97, 105, 993, 60, -549, 150, -125,
2117 -549, 54, 14, 14, -549, -549, 1093, -549, -549, 1340,
2118 260, -549, -549, -549, -549, -549, 1358, -549, -17, 1584,
2119 -549, 251, -549, -549, 150, -549, 128, 146, 1380, 1380,
2120 145, -106, 1380, -549, 151, 1340, 1380, 60, 155, 150,
2121 231, -549, 101, 303, 305, 308, 312, 315, 229, 320,
2122 808, -549, -549, 187, -549, -549, -549, -549, -549, 275,
2123 1423, 85, 321, 274, -549, -549, -549, -549, -549, -549,
2124 -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
2125 -549, 461, 481, 1380, 1380, 1380, 1380, -549, -549, -549,
2126 -549, -549, -549, -549, -549, -549, -549, -549, -549, 1380,
2127 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, -549, 274,
2128 -549, 110, -549, -549, -85, 1116, -549, -2, -33, -549,
2129 173, 150, -549, -549, 150, 1093, -549, -549, -549, -549,
2130 -549, -549, -549, -549, -549, -549, -549, 461, 481, 191,
2131 198, 199, 203, 204, 1156, 1534, 1033, 335, 206, 207,
2132 208, -549, -549, 217, 223, -549, 60, 649, -549, 785,
2133 785, -549, 785, 1358, -549, -549, -549, -549, -549, -549,
2134 -549, -549, -549, -549, 1380, -549, -549, -549, -549, -549,
2135 -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
2136 -549, 1380, 107, 113, -549, 649, 26, 218, 236, 237,
2137 238, 239, 240, 649, 649, 340, 1358, 1380, 1380, -549,
2138 -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
2139 -549, 162, -549, -549, -549, 162, 217, 217, 344, 242,
2140 243, 1340, 1340, 1340, 1340, 1340, -549, -549, -9, 1073,
2141 -50, -549, -63, -549, 1340, 1340, 1340, -11, -549, 1187,
2142 -549, -549, -549, -549, -549, -549, -549, -549, 333, 1340,
2143 -549, -549, -549, -549, 247, -549, 248, 785, 649, 649,
2144 7, -549, 34, -549, -549, 785, 244, 1380, 1380, 1380,
2145 1380, 1380, 256, 257, 1380, 785, 649, 258, -549, -549,
2146 -549, -549, -549, -549, -549, -549, -549, 1380, 1340, 1340,
2147 -549, 261, 264, 267, 268, 1340, -549, 263, 808, -51,
2148 -549, -549, 270, 273, 362, 396, 419, -549, 217, -549,
2149 150, 276, 271, -549, 405, -48, 411, 412, 280, 284,
2150 287, 785, 433, 785, 289, 290, 785, 293, 150, -549,
2151 294, 295, 785, 785, 150, 296, 297, 1380, 90, 298,
2152 300, 13, 1340, 1340, 1340, 1340, -549, -549, 299, 1340,
2153 1340, 1380, -549, -549, -549, -3, 1269, -549, 304, -549,
2154 785, 785, 1577, 785, 785, 297, -549, 297, 1380, 785,
2155 306, 1380, 1380, 1380, -549, -549, 1577, 401, -549, 649,
2156 -549, 1340, 1340, -549, 309, 310, 319, 323, -549, 316,
2157 318, 126, -549, -549, -549, 150, 38, 437, 324, 307,
2158 785, 649, 44, -549, -549, -549, -549, -549, 325, 785,
2159 -549, -549, -549, 53, 297, 327, 332, 1340, -549, 1340,
2160 1340, -549, -549, -549, -3, -549, 421, -549, 460, 1,
2161 -549, -549, 1595, -549, -549, 334, -549, -549, -549, -549,
2162 336, 338, 339, -549, 489, -549, 785, -549, 945, 3,
2163 -85, -85, 785, 649, 86, -549, 162, -549, -549, -549,
2164 -549, -549, 347, -549, 945, -549, -549, 484, 485, 356,
2165 -85, -85, 785, 785, 492, 439, -549, 785, 494, -549,
2166 785, -549
2084 47, -546, -546, -546, -546, -546, -546, -546, -17, -95,
2085 52, -90, 86, 14, 183, -546, 135, 1758, -546, -10,
2086 64, 18, 33, -546, 5, 180, -546, 1341, -546, -546,
2087 -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
2088 76, 76, 59, -546, -546, -546, -546, 76, -546, -546,
2089 -546, -546, -546, 76, 193, -546, 13, 202, 224, 233,
2090 -546, -546, -546, -546, -546, 111, -546, -546, -546, -546,
2091 -546, -546, -546, -546, 260, 261, 1, 378, -546, -546,
2092 -546, -7, -546, 231, 231, 150, -546, 55, 309, 309,
2093 -546, -546, 100, -546, -546, -546, -546, -546, -546, -546,
2094 -99, 1088, -546, 116, 122, 988, 111, -546, -7, -106,
2095 -546, 1088, 55, 55, -546, -546, 1142, -546, -546, 1359,
2096 274, -546, -546, -546, -546, -546, 1414, -546, -18, 1624,
2097 -546, 257, -546, -546, -7, -546, 131, 128, 1454, 1454,
2098 129, -105, 1454, -546, 136, 1359, 1454, 111, 141, -7,
2099 237, -546, 214, 279, 285, 289, 291, 294, 145, 299,
2100 803, -546, -546, 103, -546, -546, -546, -546, -546, 254,
2101 1512, 57, 301, 309, -546, -546, -546, -546, -546, -546,
2102 -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
2103 -546, 596, 646, 1454, 1454, 1454, 1454, -546, -546, -546,
2104 -546, -546, -546, -546, -546, -546, -546, -546, -546, 1454,
2105 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, -546, 309,
2106 -546, 61, -546, -546, 132, 1182, -546, -57, -69, -546,
2107 155, -7, -546, -546, -7, 1142, -546, -546, -546, -546,
2108 -546, -546, -546, -546, -546, -546, -546, 596, 646, 162,
2109 163, 164, 166, 167, 1242, 1530, 1028, 303, 169, 174,
2110 179, -546, -546, 185, 191, -546, 111, 644, -546, 780,
2111 780, -546, 780, 1414, -546, -546, -546, -546, -546, -546,
2112 -546, -546, -546, -546, 1454, -546, -546, -546, -546, -546,
2113 -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
2114 -546, 1454, 30, 48, -546, 644, -21, 197, 199, 203,
2115 204, 205, 206, 644, 644, 313, 1414, 1454, 1454, -546,
2116 -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
2117 -546, 201, -546, -546, -546, 201, 185, 185, 320, 207,
2118 208, 1359, 1359, 1359, 1359, 1359, -546, -546, -65, 1068,
2119 -86, -546, -104, -546, 1359, 1359, 1359, -20, -546, 1261,
2120 -546, -546, -546, -546, -546, -546, -546, -546, 273, 1359,
2121 -546, -546, -546, -546, 217, -546, 218, 780, 644, 644,
2122 8, -546, 11, -546, -546, 780, 221, 1454, 1454, 1454,
2123 1454, 1454, 227, 234, 1454, 780, 644, 235, -546, -546,
2124 -546, -546, -546, -546, -546, -546, -546, 1454, 1359, 1359,
2125 -546, 247, 258, 263, 265, 1359, -546, 259, 803, -101,
2126 -546, -546, 269, 270, 344, 398, 419, -546, 185, -546,
2127 -7, 276, 275, -546, 404, -76, 412, 413, 282, 288,
2128 292, 780, 440, 780, 297, 300, 780, 302, -7, -546,
2129 304, 308, 780, 780, -7, 306, 310, 1454, -35, 311,
2130 314, -73, 1359, 1359, 1359, 1359, -546, -546, 315, 1359,
2131 1359, 1454, -546, -546, -546, 298, 1301, -546, 319, -546,
2132 780, 780, 1570, 780, 780, 310, -546, 310, 1454, 780,
2133 322, 1454, 1454, 1454, -546, -546, 1570, 399, -546, 644,
2134 -546, 1359, 1359, -546, 323, 316, 325, 327, -546, 324,
2135 326, 60, -546, -546, -546, -7, 3, 460, 334, 330,
2136 82, -7, -13, -546, -546, -546, -546, -546, 332, 780,
2137 -546, -546, -546, 12, 310, 336, 337, 1359, -546, 1359,
2138 1359, -546, -546, -546, 298, -546, 438, -546, 475, -4,
2139 493, 493, 1610, -546, -546, 338, -546, -546, -546, -546,
2140 342, 345, 346, -546, 501, -546, 780, -546, 940, 2,
2141 354, 355, -546, -546, 82, -7, 72, -546, 201, -546,
2142 -546, -546, -546, -546, 359, -546, 940, 132, 132, 493,
2143 493, 492, 494, 361, -546, -546, 780, 780, 497, 132,
2144 132, 450, -546, 780, 505, -546, 780, -546
21672145 };
21682146
21692147 /* YYPGOTO[NTERM-NUM]. */
21702148 static const yytype_int16 yypgoto[] =
21712149 {
2172 -549, 383, 384, 385, 272, 277, -170, -549, 0, -24,
2173 429, 8, -549, -549, -549, -549, 42, -549, -549, -549,
2174 -160, -549, -421, -549, -228, -549, -293, 11, -549, -310,
2175 -549, -549, -26, 341, -121, -549, 418, 425, -61, -157,
2176 -226, 9, 205, 326, -549, -549, 515, -549, -549, -549,
2177 -549, -549, -549, -549, -549, -549, -549, -549, 446, -549,
2178 -549, -549, -549, -549, -549, -548, -69, 121, -173, -549,
2179 491, -549, -549, -549, -549, -549, 67, 158, -549, -549,
2180 -549, -549
2150 -546, 394, 395, 396, 280, 283, -170, -546, 0, -16,
2151 444, 15, -546, -546, -546, -546, -1, -546, -546, -546,
2152 -157, -546, -418, -546, -229, -546, -292, 23, -546, -307,
2153 -546, -546, -26, 305, -120, -546, 429, 436, -59, -156,
2154 -235, 126, 168, 307, -546, -546, 526, -546, -546, -546,
2155 -546, -546, -546, -546, -546, -546, -546, -546, 456, -546,
2156 -546, -546, -546, -546, -546, -545, -142, 108, -186, -546,
2157 490, -546, -546, -546, -546, -546, 51, 138, -546, -546,
2158 -546, -546
21812159 };
21822160
21832161 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
21872165 #define YYTABLE_NINF -204
21882166 static const yytype_int16 yytable[] =
21892167 {
2190 11, 81, 272, 261, 335, 163, 104, 90, 13, 475,
2191 383, 164, 271, 273, 271, 93, 1, 11, 441, 3,
2192 582, 5, 304, 425, 142, 13, 405, 406, 24, 350,
2193 352, 26, 319, 320, 21, 143, 589, 308, 309, 310,
2194 311, 312, 426, 142, 315, 443, 117, 118, 22, 321,
2195 322, 108, 323, 324, 230, 325, 326, 327, 161, 316,
2196 442, 63, 64, 25, 106, 66, 67, 68, 69, 70,
2197 71, 72, 425, 1, 2, 134, 3, 4, 5, 108,
2198 27, 236, 83, 84, 233, 134, 415, 442, 28, 88,
2199 149, 262, 11, 133, 544, 89, 269, 421, 415, 415,
2200 149, 415, 270, 73, -55, -55, -55, -55, 420, 468,
2201 479, 43, 227, 228, 319, 320, 231, 110, 474, 111,
2202 234, 145, 146, 419, 587, 333, 131, 237, 238, 570,
2203 571, 321, 322, 132, 323, 324, 57, 325, 326, 327,
2204 415, 58, 165, 435, 267, 397, 94, 416, 110, 45,
2205 111, 46, 377, 1, 332, 61, 3, 567, 5, 583,
2206 90, 105, 488, 498, 590, 591, 503, 302, 303, 267,
2207 305, 264, 398, 399, 400, 59, 110, 401, 111, 97,
2208 385, 402, 403, 306, 267, 267, 267, 267, 267, 313,
2209 314, 267, 525, 552, 526, 395, 98, 553, 372, 134,
2210 372, 372, 552, 372, 99, 74, 556, 2, 75, 149,
2211 4, 76, 101, 77, 447, 86, 449, 450, 451, 102,
2212 398, 399, 400, 317, 318, 401, 49, 50, 51, 402,
2213 403, 52, 239, 240, 241, 242, 372, 103, 63, 64,
2214 110, 557, 111, 500, 372, 372, 85, 149, 86, 516,
2215 1, 2, 138, 3, 4, 5, 380, 110, 378, 111,
2216 139, 261, 382, 110, 162, 111, 29, 30, 31, 32,
2217 33, 34, 35, 223, 36, 379, 110, 225, 111, 543,
2218 410, 411, 412, 413, 414, 37, 38, 39, 112, 113,
2219 149, 396, 267, 422, 423, 424, 398, 399, 400, 226,
2220 110, 401, 111, 229, 232, 402, 403, 235, 372, 372,
2221 372, 114, -56, 115, -57, 527, 372, -60, 530, 531,
2222 532, -59, -203, 418, -58, 574, 372, 372, 576, 243,
2223 265, 334, 271, 430, 120, 121, 122, 123, 124, 125,
2224 -67, 1, 2, 341, 3, 4, 5, 459, 460, 262,
2225 342, 343, 6, 7, 466, 344, 345, 353, 354, 355,
2226 356, 267, 448, 267, 267, 267, 357, 386, 454, 37,
2227 38, 39, 372, 8, 372, 359, 9, 372, 394, 568,
2228 10, 458, 407, 372, 372, 387, 388, 389, 390, 391,
2229 374, 375, 433, 376, 408, 409, 436, 437, 446, 584,
2230 471, 504, 505, 506, 507, 452, 453, 457, 509, 510,
2231 462, 372, 372, 463, 372, 372, 464, 465, 472, 469,
2232 372, 467, 470, 473, 477, 476, 384, 478, 480, 481,
2233 372, 499, 482, 483, 392, 393, 484, 486, 488, 489,
2234 535, 536, 491, 492, 493, 511, 497, 501, 496, 502,
2235 515, 372, 372, 517, 442, 529, 521, 508, 537, 547,
2236 372, 549, 267, 538, -202, 267, 267, 267, 539, 541,
2237 521, 542, 540, 548, 564, 512, 560, 566, 561, 562,
2238 558, 554, -67, 1, 2, 559, 3, 4, 5, 577,
2239 575, 578, 579, 580, 6, 7, 588, 372, 438, 439,
2240 440, 592, 593, 372, 372, 594, 445, 285, 286, 597,
2241 598, 600, 215, 216, 217, 8, 455, 456, 9, 339,
2242 563, 129, 10, 372, 372, 340, 573, 545, 372, 144,
2243 141, 372, 44, 63, 64, 128, 106, 66, 67, 68,
2244 69, 70, 71, 72, 512, 1, 2, 96, 3, 4,
2245 5, 274, 275, 276, 277, 278, 279, 280, 281, 282,
2246 283, 338, 485, 533, 487, 0, 330, 490, 461, 0,
2247 0, 0, 0, 494, 495, 73, 0, 287, 288, 289,
2248 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
2249 300, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2250 0, 518, 519, 0, 523, 524, 0, 0, 0, 0,
2251 528, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2252 534, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2168 11, 81, 272, 335, 261, 104, 163, 271, 236, 304,
2169 164, 383, 475, 271, 425, 13, 273, 11, 262, 441,
2170 350, 352, 443, 584, 308, 309, 310, 311, 312, 405,
2171 406, 315, 13, 426, 90, 21, 45, 425, 46, 83,
2172 84, 593, 93, 142, 142, 415, 88, -203, 415, 22,
2173 131, 108, 89, 24, 143, 230, 421, 132, 26, 468,
2174 161, 442, 316, 415, 442, -67, 1, 2, 269, 3,
2175 4, 5, 420, 415, 270, 134, 488, 6, 7, 108,
2176 503, 110, 479, 111, 415, 134, 233, 117, 118, 333,
2177 149, 416, 11, 110, 85, 111, 86, 544, 8, 332,
2178 149, 9, 550, 551, 27, 10, 49, 50, 51, 25,
2179 591, 52, 227, 228, 419, 110, 231, 111, 500, 1,
2180 234, 474, 3, 2, 5, 372, 4, 372, 372, 110,
2181 372, 111, 397, 385, 435, 43, 552, 398, 399, 400,
2182 553, 165, 401, 110, 267, 111, 402, 403, 239, 240,
2183 241, 242, 567, 377, 587, 588, 589, 590, 585, 59,
2184 105, 552, 28, 372, 498, 556, 57, 302, 303, 267,
2185 305, 372, 372, 94, 317, 318, 599, 600, 264, 380,
2186 110, 58, 111, 306, 267, 267, 267, 267, 267, 313,
2187 314, 267, 114, 525, 115, 526, 395, 382, 110, 134,
2188 111, 447, 61, 449, 450, 451, 398, 399, 400, 149,
2189 110, 401, 111, 543, 90, 402, 403, -55, -55, -55,
2190 -55, 37, 38, 39, 97, 29, 30, 31, 32, 33,
2191 34, 35, -139, 36, -139, 372, 372, 372, 145, 146,
2192 237, 238, 557, 372, 63, 64, 98, 149, 516, 319,
2193 320, 112, 113, 372, 372, 99, 1, 2, 378, 3,
2194 4, 5, 261, 101, 102, 103, 321, 322, 86, 323,
2195 324, 138, 325, 326, 327, 379, 262, 139, 162, 223,
2196 225, 226, 410, 411, 412, 413, 414, 229, -56, 232,
2197 149, 396, 267, 235, -57, 422, 423, 424, -60, 372,
2198 -59, 372, 527, -58, 372, 530, 531, 532, 243, 265,
2199 372, 372, 271, 334, 341, 342, 343, 1, 344, 345,
2200 3, 354, 5, 418, 576, 353, 355, 578, 37, 38,
2201 39, 356, 433, 430, 357, 398, 399, 400, 372, 372,
2202 401, 372, 372, 359, 402, 403, 386, 372, 387, 459,
2203 460, 394, 388, 389, 390, 391, 466, 372, 407, 408,
2204 409, 267, 448, 267, 267, 267, 436, 437, 454, 120,
2205 121, 122, 123, 124, 125, 446, 452, 374, 375, 568,
2206 376, 458, 471, 453, 457, 63, 64, 372, 106, 66,
2207 67, 68, 69, 70, 71, 72, 462, 1, 2, 586,
2208 3, 4, 5, 504, 505, 506, 507, 463, 372, 372,
2209 509, 510, 464, 384, 465, 319, 320, 467, 469, 470,
2210 472, 392, 393, 473, 372, 476, 478, 73, 477, 480,
2211 481, 499, 321, 322, 482, 323, 324, 483, 325, 326,
2212 327, 484, 535, 536, 486, 511, 488, 372, 372, 489,
2213 515, 491, 442, 492, 372, 372, 521, 493, 496, 497,
2214 501, 372, 267, 502, 372, 267, 267, 267, 517, 538,
2215 521, 529, 537, 508, 539, 512, 540, 541, 560, 542,
2216 561, 562, 547, 548, 549, 438, 439, 440, 554, 558,
2217 559, 564, 566, 445, 577, 579, 360, 361, 580, 581,
2218 63, 64, 362, 455, 456, 582, -18, -19, 592, 596,
2219 598, 597, 1, 2, 603, 3, 4, 5, 363, 364,
2220 365, 604, 606, 215, 216, 217, 575, 339, 563, 74,
2221 330, 340, 75, 366, 367, 76, 129, 77, 107, 545,
2222 144, 141, 338, 44, 512, 128, 96, 533, 461, 485,
2223 368, 487, 0, 0, 490, 0, 0, 0, 0, 0,
2224 494, 495, 0, 0, 0, 0, 176, 177, 178, 179,
2225 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2226 190, 247, 248, 0, 0, 0, 0, 0, 518, 519,
2227 0, 523, 524, 0, 0, 0, 0, 528, 0, 0,
2228 0, 0, 0, 0, 0, 0, 0, 534, 249, 197,
2229 570, 571, 200, 201, 202, 203, 204, 205, 206, 207,
2230 208, 0, 250, 0, 251, 252, 253, 321, 322, 0,
2231 323, 324, 0, 325, 326, 327, 0, 555, 0, 0,
2232 0, 0, 0, 0, 0, 0, 0, 360, 361, 0,
2233 369, 63, 64, 362, 0, 0, 0, 0, 572, 573,
2234 0, 0, 0, 1, 2, 0, 3, 4, 5, 363,
2235 364, 365, 285, 286, 583, 0, 0, 0, 0, 0,
2236 0, 0, 0, 0, 366, 367, 274, 275, 276, 277,
2237 278, 279, 280, 281, 282, 283, 0, 594, 595, 0,
2238 0, 368, 0, 0, 601, 602, 0, 0, 0, 0,
2239 0, 605, 0, 0, 607, 0, 0, 176, 177, 178,
2240 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
2241 189, 190, 247, 248, 0, 0, 0, 0, 0, 0,
2242 0, 0, 287, 288, 289, 290, 291, 292, 293, 294,
2243 295, 296, 297, 298, 299, 300, 0, 0, 0, 249,
2244 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2245 207, 208, 0, 250, 0, 251, 252, 253, 0, 0,
2246 0, 0, 0, 360, 361, 0, 0, 63, 64, 362,
2247 0, 0, 0, 0, 110, 0, 111, 0, 0, 1,
2248 2, 369, 3, 4, 5, 363, 364, 365, 0, 0,
2249 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
2250 366, 367, 1, 2, 0, 3, 4, 5, 244, 0,
2251 0, 0, 0, 0, 0, 0, 0, 368, 0, 0,
2252 0, 0, 0, 245, 246, 0, 0, 0, 0, 0,
2253 0, 0, 0, 176, 177, 178, 179, 180, 181, 182,
2254 183, 184, 185, 186, 187, 188, 189, 190, 247, 248,
2255 0, 0, 0, 0, 0, 0, 176, 177, 178, 179,
2256 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2257 190, 247, 248, 0, 0, 249, 197, 198, 199, 200,
2258 201, 202, 203, 204, 205, 206, 207, 208, 0, 250,
2259 0, 251, 252, 253, 0, 0, 0, 0, 249, 197,
2260 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
2261 208, 0, 250, 0, 251, 252, 253, 369, 0, 0,
2262 0, 0, 0, 360, 361, 0, 0, 0, 0, 362,
2263 0, 0, 0, 110, 0, 111, 0, 254, 0, 0,
2264 255, 0, 256, 0, 257, 363, 364, 365, 0, 0,
22532265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 550, 551, 0, 0, 0, 0, 0, 0, 0,
2255 555, 0, 360, 361, 0, 0, 63, 64, 362, 0,
2256 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
2257 0, 3, 4, 5, 363, 364, 365, 74, 0, 0,
2258 75, 0, 0, 76, 0, 77, 107, 581, 0, 366,
2259 367, 0, 0, 585, 586, 0, 0, 0, 0, 0,
2260 0, 0, 0, 0, 0, 0, 368, 0, 0, 0,
2261 0, 0, 0, 595, 596, 0, 0, 0, 599, 0,
2262 0, 601, 176, 177, 178, 179, 180, 181, 182, 183,
2263 184, 185, 186, 187, 188, 189, 190, 247, 248, 0,
2266 366, 367, 0, 0, 0, 0, 0, 0, 0, 0,
2267 0, 0, 0, 0, 0, 63, 64, 368, 106, 66,
2268 67, 68, 69, 70, 71, 72, 0, 1, 2, 0,
2269 3, 4, 5, 176, 177, 178, 179, 180, 181, 182,
2270 183, 184, 185, 186, 187, 188, 189, 190, 247, 248,
2271 0, 0, 0, 0, 0, 63, 64, 73, 106, 152,
2272 153, 154, 155, 156, 157, 72, 0, 1, 2, 0,
2273 3, 4, 5, 0, 0, 249, 197, 198, 199, 200,
2274 201, 202, 203, 204, 205, 206, 207, 208, 0, 250,
2275 0, 251, 252, 253, 0, 63, 64, 73, 106, 152,
2276 153, 154, 155, 156, 157, 72, 0, 1, 2, 0,
2277 3, 4, 5, 0, 0, 63, 64, 369, 106, 66,
2278 67, 68, 69, 70, 71, 72, 0, 1, 2, 0,
2279 3, 4, 5, 0, 0, 0, 0, 73, 0, 0,
2280 0, 0, 0, 0, 0, 0, 0, 133, 0, 0,
2281 0, 0, 0, 0, 0, 0, 0, 73, 0, 74,
2282 0, 0, 75, 0, 0, 76, 0, 77, 140, 63,
2283 64, 0, 147, 66, 67, 68, 69, 70, 71, 72,
2284 0, 1, 2, 0, 3, 4, 5, 0, 0, 0,
2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
2286 0, 0, 75, 0, 0, 76, 0, 77, 351, 63,
2287 64, 73, 106, 66, 67, 68, 69, 70, 71, 72,
2288 0, 1, 2, 0, 3, 4, 5, 0, 0, 0,
2289 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
2290 0, 329, 75, 0, 0, 76, 0, 77, 417, 0,
2291 0, 73, 0, 0, 0, 0, 0, 0, 0, 74,
2292 0, 0, 75, 0, 0, 76, 0, 77, 0, 63,
2293 64, 0, 106, 152, 153, 154, 155, 156, 157, 72,
2294 0, 1, 2, 148, 3, 4, 5, 0, 63, 64,
2295 0, 106, 66, 67, 68, 69, 70, 71, 72, 0,
2296 1, 2, 0, 3, 4, 5, 0, 0, 0, 0,
2297 0, 73, 0, 74, 0, 0, 75, 0, 0, 76,
2298 429, 77, 0, 0, 0, 0, 0, 0, 63, 64,
2299 73, 106, 66, 67, 68, 69, 70, 71, 72, 0,
2300 1, 2, 0, 3, 4, 5, 0, 0, 0, 0,
2301 0, 0, 0, 74, 0, 0, 75, 0, 0, 76,
2302 514, 77, 0, 0, 0, 0, 0, 0, 63, 64,
2303 73, 65, 66, 67, 68, 69, 70, 71, 72, 0,
2304 1, 2, 0, 3, 4, 5, 63, 64, 0, 106,
2305 152, 153, 154, 155, 156, 157, 72, 0, 1, 2,
2306 0, 3, 4, 5, 0, 0, 0, 0, 0, 0,
2307 73, 0, 0, 74, 0, 0, 75, 0, 346, 76,
2308 0, 77, 0, 0, 0, 0, 0, 0, 73, 0,
2309 0, 0, 74, 0, 0, 75, 0, 0, 76, 0,
2310 77, 63, 64, 0, 147, 66, 67, 68, 69, 70,
2311 71, 72, 0, 1, 2, 0, 3, 4, 5, 0,
22642312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2313 0, 0, 74, 0, 0, 75, 0, 0, 76, 0,
2314 77, 63, 64, 73, 106, 66, 67, 68, 69, 70,
2315 71, 72, 0, 1, 2, 0, 3, 4, 5, 0,
22652316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2266 0, 0, 0, 0, 249, 197, 198, 199, 200, 201,
2267 202, 203, 204, 205, 206, 207, 208, 0, 250, 0,
2268 251, 252, 253, 0, 0, 0, 0, 0, 360, 361,
2269 0, 0, 63, 64, 362, 0, 0, 0, 0, 110,
2270 0, 111, 0, 0, 1, 2, 369, 3, 4, 5,
2271 363, 364, 365, 0, 0, 63, 64, 0, 0, 0,
2272 0, 0, 0, 0, 0, 366, 367, 1, 2, 0,
2273 3, 4, 5, 244, 0, 0, 0, 0, 0, 0,
2274 0, 0, 368, 0, 0, 0, 0, 0, 245, 246,
2275 0, 0, 0, 0, 0, 0, 0, 0, 176, 177,
2276 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2277 188, 189, 190, 247, 248, 0, 0, 0, 0, 0,
2278 0, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2279 185, 186, 187, 188, 189, 190, 247, 248, 0, 0,
2280 249, 197, 198, 199, 200, 201, 202, 203, 204, 205,
2281 206, 207, 208, 0, 250, 0, 251, 252, 253, 0,
2282 0, 0, 0, 249, 197, 198, 199, 200, 201, 202,
2283 203, 204, 205, 206, 207, 208, 0, 250, 0, 251,
2284 252, 253, 369, 0, 0, 0, 0, 0, 360, 361,
2285 0, 0, 0, 0, 362, 0, 0, 0, 110, 0,
2286 111, 0, 254, 0, 0, 255, 0, 256, 0, 257,
2287 363, 364, 365, 0, 0, 0, 0, 0, 0, 0,
2288 0, 0, 0, 0, 0, 366, 367, 0, 0, 0,
2317 0, 0, 74, 0, 0, 75, 0, 0, 76, 0,
2318 77, 0, 0, 73, 0, 0, 0, 0, 0, 0,
2319 74, 0, 0, 75, 0, 0, 76, 0, 77, 63,
2320 64, 0, 266, 66, 67, 68, 69, 70, 71, 72,
2321 0, 1, 2, 0, 3, 4, 5, 63, 64, 0,
2322 106, 152, 153, 154, 155, 156, 157, 72, 0, 1,
2323 2, 0, 3, 4, 5, 0, 0, 0, 0, 0,
2324 0, 73, 0, 0, 0, 74, 0, 0, 75, 0,
2325 0, 76, 0, 77, 0, 0, 0, 63, 64, 73,
2326 106, 66, 67, 68, 69, 70, 71, 520, 0, 1,
2327 2, 0, 3, 4, 5, 0, 0, 0, 0, 0,
2328 0, 0, 0, 0, 0, 74, 0, 0, 75, 0,
2329 0, 76, 0, 77, 0, 0, 0, 63, 64, 73,
2330 106, 66, 67, 68, 69, 70, 71, 574, 0, 1,
2331 2, 0, 3, 4, 5, 0, 0, 0, 0, 0,
22892332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2290 63, 64, 368, 106, 66, 67, 68, 69, 70, 71,
2291 72, 0, 1, 2, 0, 3, 4, 5, 176, 177,
2292 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2293 188, 189, 190, 247, 248, 0, 0, 0, 0, 0,
2294 63, 64, 73, 106, 152, 153, 154, 155, 156, 157,
2295 72, 0, 1, 2, 0, 3, 4, 5, 0, 0,
2296 249, 197, 198, 199, 200, 201, 202, 203, 204, 205,
2297 206, 207, 208, 0, 250, 0, 251, 252, 253, 0,
2298 63, 64, 73, 106, 152, 153, 154, 155, 156, 157,
2299 72, 0, 1, 2, 0, 3, 4, 5, 0, 0,
2300 63, 64, 369, 147, 66, 67, 68, 69, 70, 71,
2301 72, 0, 1, 2, 0, 3, 4, 5, 0, 0,
2302 0, 0, 73, 63, 64, 0, 106, 66, 67, 68,
2303 69, 70, 71, 72, 0, 1, 2, 0, 3, 4,
2304 5, 0, 73, 0, 74, 0, 0, 75, 0, 0,
2305 76, 0, 77, 140, 0, 329, 0, 0, 0, 0,
2306 0, 0, 0, 63, 64, 73, 106, 152, 153, 154,
2307 155, 156, 157, 72, 0, 1, 2, 0, 3, 4,
2308 5, 0, 0, 0, 74, 0, 0, 75, 0, 0,
2309 76, 0, 77, 351, 63, 64, 0, 106, 66, 67,
2310 68, 69, 70, 71, 72, 73, 1, 2, 0, 3,
2311 4, 5, 0, 0, 148, 0, 0, 0, 0, 0,
2312 0, 0, 0, 0, 74, 0, 429, 75, 0, 0,
2313 76, 0, 77, 417, 0, 0, 73, 0, 0, 0,
2314 0, 0, 0, 0, 74, 0, 0, 75, 0, 0,
2315 76, 0, 77, 0, 0, 0, 0, 0, 0, 0,
2316 0, 0, 0, 0, 0, 0, 0, 74, 0, 0,
2317 75, 0, 0, 76, 0, 77, 63, 64, 0, 106,
2318 66, 67, 68, 69, 70, 71, 72, 0, 1, 2,
2319 0, 3, 4, 5, 0, 0, 0, 0, 0, 0,
2320 0, 0, 0, 0, 0, 0, 0, 74, 514, 0,
2321 75, 0, 346, 76, 0, 77, 63, 64, 73, 65,
2322 66, 67, 68, 69, 70, 71, 72, 0, 1, 2,
2323 0, 3, 4, 5, 0, 0, 0, 0, 74, 0,
2324 0, 75, 0, 0, 76, 0, 77, 63, 64, 0,
2325 106, 152, 153, 154, 155, 156, 157, 72, 73, 1,
2326 2, 0, 3, 4, 5, 63, 64, 0, 147, 66,
2327 67, 68, 69, 70, 71, 72, 0, 1, 2, 0,
2328 3, 4, 5, 0, 0, 0, 0, 63, 64, 73,
2329 106, 66, 67, 68, 69, 70, 71, 72, 0, 1,
2330 2, 0, 3, 4, 5, 0, 0, 73, 0, 0,
2331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2332 74, 0, 0, 75, 0, 0, 76, 0, 77, 73,
2333 63, 64, 0, 266, 66, 67, 68, 69, 70, 71,
2334 72, 0, 1, 2, 0, 3, 4, 5, 0, 0,
2335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2336 74, 0, 0, 75, 0, 0, 76, 0, 77, 0,
2337 0, 0, 73, 0, 0, 0, 0, 0, 0, 0,
2338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2339 0, 74, 0, 0, 75, 0, 0, 76, 0, 77,
2340 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
2341 0, 0, 75, 0, 0, 76, 0, 77, 0, 0,
2342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2343 0, 74, 0, 0, 75, 0, 0, 76, 0, 77,
2344 0, 63, 64, 0, 106, 152, 153, 154, 155, 156,
2345 157, 72, 0, 1, 2, 0, 3, 4, 5, 0,
2346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2347 0, 0, 0, 0, 74, 0, 0, 75, 0, 0,
2348 76, 0, 77, 73, 63, 64, 0, 106, 66, 67,
2349 68, 69, 70, 71, 520, 0, 1, 2, 0, 3,
2350 4, 5, 63, 64, 0, 106, 66, 67, 68, 69,
2351 70, 71, 572, 0, 1, 2, 0, 3, 4, 5,
2352 167, 0, 0, 0, 0, 0, 73, 0, 0, 0,
2353 0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
2354 169, 0, 0, 0, 73, 0, 0, 0, 0, 0,
2333 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
2334 167, 0, 0, 74, 0, 0, 75, 0, 0, 76,
2335 0, 77, 0, 0, 0, 0, 0, 0, 0, 168,
2336 169, 74, 0, 0, 75, 0, 0, 76, 0, 349,
23552337 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
23562338 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
23572339 189, 190, 191, 192, 0, 0, 0, 0, 0, 0,
2358 0, 0, 0, 0, 0, 74, 0, 0, 75, 0,
2359 0, 76, 0, 349, 193, 194, 195, 0, 0, 196,
2340 0, 74, 0, 0, 75, 0, 0, 76, 0, 77,
2341 0, 0, 0, 0, 193, 194, 195, 0, 0, 196,
23602342 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2361 207, 208, 209, 210, 211, 212, 213, 214, 0, 0,
2362 0, 0, 0, 0, 0, 0, 0, 0, 74, 0,
2363 0, 75, 0, 0, 76, 0, 77, 0, 0, 0,
2364 0, 0, 0, 0, 0, 0, 74, 0, 0, 75,
2365 0, 0, 76, 0, 77
2343 207, 208, 209, 210, 211, 212, 213, 214, -202, 0,
2344 0, 74, 0, 0, 75, 0, 0, 76, 0, 77,
2345 0, 0, 0, 0, 0, 0, -67, 1, 2, 0,
2346 3, 4, 5, 0, 0, 0, 0, 0, 6, 7,
2347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2348 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
2349 0, 0, 9, 0, 0, 0, 10
23662350 };
23672351
23682352 static const yytype_int16 yycheck[] =
23692353 {
2370 0, 27, 172, 160, 232, 126, 4, 21, 0, 430,
2371 303, 28, 11, 173, 11, 29, 19, 17, 11, 22,
2372 568, 24, 195, 34, 149, 17, 336, 337, 148, 255,
2373 256, 148, 117, 118, 52, 160, 584, 210, 211, 212,
2374 213, 214, 53, 149, 217, 11, 32, 33, 66, 134,
2375 135, 77, 137, 138, 160, 140, 141, 142, 119, 219,
2376 53, 7, 8, 57, 10, 11, 12, 13, 14, 15,
2377 16, 17, 34, 19, 20, 101, 22, 23, 24, 105,
2378 18, 150, 40, 41, 145, 111, 149, 53, 148, 47,
2379 116, 160, 92, 39, 515, 53, 11, 160, 149, 149,
2380 126, 149, 17, 49, 3, 4, 5, 6, 158, 160,
2381 158, 0, 138, 139, 117, 118, 142, 150, 428, 152,
2382 146, 112, 113, 349, 38, 158, 149, 26, 27, 550,
2383 551, 134, 135, 156, 137, 138, 148, 140, 141, 142,
2384 149, 148, 159, 369, 170, 318, 160, 156, 150, 46,
2385 152, 48, 273, 19, 156, 22, 22, 156, 24, 156,
2386 21, 159, 149, 456, 585, 586, 153, 193, 194, 195,
2387 196, 163, 134, 135, 136, 154, 150, 139, 152, 22,
2388 154, 143, 144, 209, 210, 211, 212, 213, 214, 215,
2389 216, 217, 485, 149, 487, 316, 22, 153, 267, 225,
2390 269, 270, 149, 272, 22, 151, 153, 20, 154, 235,
2391 23, 157, 152, 159, 387, 37, 389, 390, 391, 4,
2392 134, 135, 136, 113, 114, 139, 42, 43, 44, 143,
2393 144, 47, 3, 4, 5, 6, 305, 4, 7, 8,
2394 150, 534, 152, 153, 313, 314, 35, 273, 37, 477,
2395 19, 20, 155, 22, 23, 24, 149, 150, 284, 152,
2396 155, 418, 149, 150, 4, 152, 42, 43, 44, 45,
2397 46, 47, 48, 22, 50, 301, 150, 149, 152, 153,
2398 341, 342, 343, 344, 345, 145, 146, 147, 83, 84,
2399 316, 317, 318, 354, 355, 356, 134, 135, 136, 153,
2400 150, 139, 152, 158, 153, 143, 144, 152, 377, 378,
2401 379, 42, 9, 44, 9, 488, 385, 9, 491, 492,
2402 493, 9, 0, 349, 9, 553, 395, 396, 556, 9,
2403 55, 158, 11, 359, 60, 61, 62, 63, 64, 65,
2404 18, 19, 20, 152, 22, 23, 24, 408, 409, 418,
2405 152, 152, 30, 31, 415, 152, 152, 22, 152, 152,
2406 152, 387, 388, 389, 390, 391, 149, 149, 394, 145,
2407 146, 147, 441, 51, 443, 152, 54, 446, 38, 549,
2408 58, 407, 38, 452, 453, 149, 149, 149, 149, 149,
2409 269, 270, 59, 272, 152, 152, 149, 149, 154, 569,
2410 38, 462, 463, 464, 465, 149, 149, 149, 469, 470,
2411 149, 480, 481, 149, 483, 484, 149, 149, 22, 149,
2412 489, 158, 149, 4, 153, 149, 305, 22, 17, 17,
2413 499, 457, 152, 149, 313, 314, 149, 4, 149, 149,
2414 501, 502, 149, 149, 149, 471, 149, 149, 152, 149,
2415 476, 520, 521, 149, 53, 149, 482, 158, 149, 22,
2416 529, 154, 488, 153, 0, 491, 492, 493, 149, 153,
2417 496, 153, 149, 149, 53, 475, 537, 17, 539, 540,
2418 153, 156, 18, 19, 20, 153, 22, 23, 24, 153,
2419 156, 153, 153, 4, 30, 31, 149, 566, 377, 378,
2420 379, 17, 17, 572, 573, 149, 385, 26, 27, 17,
2421 71, 17, 129, 129, 129, 51, 395, 396, 54, 247,
2422 544, 92, 58, 592, 593, 248, 552, 516, 597, 111,
2423 105, 600, 17, 7, 8, 89, 10, 11, 12, 13,
2424 14, 15, 16, 17, 544, 19, 20, 56, 22, 23,
2425 24, 90, 91, 92, 93, 94, 95, 96, 97, 98,
2426 99, 235, 441, 496, 443, -1, 225, 446, 410, -1,
2427 -1, -1, -1, 452, 453, 49, -1, 96, 97, 98,
2428 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
2429 109, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2430 -1, 480, 481, -1, 483, 484, -1, -1, -1, -1,
2431 489, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2432 499, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2354 0, 27, 172, 232, 160, 4, 126, 11, 150, 195,
2355 28, 303, 430, 11, 34, 0, 173, 17, 160, 11,
2356 255, 256, 11, 568, 210, 211, 212, 213, 214, 336,
2357 337, 217, 17, 53, 21, 52, 46, 34, 48, 40,
2358 41, 586, 29, 149, 149, 149, 47, 0, 149, 66,
2359 149, 77, 53, 148, 160, 160, 160, 156, 148, 160,
2360 119, 53, 219, 149, 53, 18, 19, 20, 11, 22,
2361 23, 24, 158, 149, 17, 101, 149, 30, 31, 105,
2362 153, 150, 158, 152, 149, 111, 145, 32, 33, 158,
2363 116, 156, 92, 150, 35, 152, 37, 515, 51, 156,
2364 126, 54, 520, 521, 18, 58, 42, 43, 44, 57,
2365 38, 47, 138, 139, 349, 150, 142, 152, 153, 19,
2366 146, 428, 22, 20, 24, 267, 23, 269, 270, 150,
2367 272, 152, 318, 154, 369, 0, 149, 134, 135, 136,
2368 153, 159, 139, 150, 170, 152, 143, 144, 3, 4,
2369 5, 6, 156, 273, 572, 573, 574, 575, 156, 154,
2370 159, 149, 148, 305, 456, 153, 148, 193, 194, 195,
2371 196, 313, 314, 160, 113, 114, 594, 595, 163, 149,
2372 150, 148, 152, 209, 210, 211, 212, 213, 214, 215,
2373 216, 217, 42, 485, 44, 487, 316, 149, 150, 225,
2374 152, 387, 22, 389, 390, 391, 134, 135, 136, 235,
2375 150, 139, 152, 153, 21, 143, 144, 3, 4, 5,
2376 6, 145, 146, 147, 22, 42, 43, 44, 45, 46,
2377 47, 48, 150, 50, 152, 377, 378, 379, 112, 113,
2378 26, 27, 534, 385, 7, 8, 22, 273, 477, 117,
2379 118, 83, 84, 395, 396, 22, 19, 20, 284, 22,
2380 23, 24, 418, 152, 4, 4, 134, 135, 37, 137,
2381 138, 155, 140, 141, 142, 301, 418, 155, 4, 22,
2382 149, 153, 341, 342, 343, 344, 345, 158, 9, 153,
2383 316, 317, 318, 152, 9, 354, 355, 356, 9, 441,
2384 9, 443, 488, 9, 446, 491, 492, 493, 9, 55,
2385 452, 453, 11, 158, 152, 152, 152, 19, 152, 152,
2386 22, 152, 24, 349, 553, 22, 152, 556, 145, 146,
2387 147, 152, 59, 359, 149, 134, 135, 136, 480, 481,
2388 139, 483, 484, 152, 143, 144, 149, 489, 149, 408,
2389 409, 38, 149, 149, 149, 149, 415, 499, 38, 152,
2390 152, 387, 388, 389, 390, 391, 149, 149, 394, 60,
2391 61, 62, 63, 64, 65, 154, 149, 269, 270, 549,
2392 272, 407, 38, 149, 149, 7, 8, 529, 10, 11,
2393 12, 13, 14, 15, 16, 17, 149, 19, 20, 569,
2394 22, 23, 24, 462, 463, 464, 465, 149, 550, 551,
2395 469, 470, 149, 305, 149, 117, 118, 158, 149, 149,
2396 22, 313, 314, 4, 566, 149, 22, 49, 153, 17,
2397 17, 457, 134, 135, 152, 137, 138, 149, 140, 141,
2398 142, 149, 501, 502, 4, 471, 149, 589, 590, 149,
2399 476, 149, 53, 149, 596, 597, 482, 149, 152, 149,
2400 149, 603, 488, 149, 606, 491, 492, 493, 149, 153,
2401 496, 149, 149, 158, 149, 475, 149, 153, 537, 153,
2402 539, 540, 22, 149, 154, 377, 378, 379, 156, 153,
2403 153, 53, 17, 385, 156, 153, 3, 4, 153, 153,
2404 7, 8, 9, 395, 396, 4, 152, 152, 149, 17,
2405 149, 17, 19, 20, 17, 22, 23, 24, 25, 26,
2406 27, 71, 17, 129, 129, 129, 552, 247, 544, 151,
2407 225, 248, 154, 40, 41, 157, 92, 159, 160, 516,
2408 111, 105, 235, 17, 544, 89, 56, 496, 410, 441,
2409 57, 443, -1, -1, 446, -1, -1, -1, -1, -1,
2410 452, 453, -1, -1, -1, -1, 73, 74, 75, 76,
2411 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2412 87, 88, 89, -1, -1, -1, -1, -1, 480, 481,
2413 -1, 483, 484, -1, -1, -1, -1, 489, -1, -1,
2414 -1, -1, -1, -1, -1, -1, -1, 499, 115, 116,
2415 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2416 127, -1, 129, -1, 131, 132, 133, 134, 135, -1,
2417 137, 138, -1, 140, 141, 142, -1, 529, -1, -1,
2418 -1, -1, -1, -1, -1, -1, -1, 3, 4, -1,
2419 157, 7, 8, 9, -1, -1, -1, -1, 550, 551,
2420 -1, -1, -1, 19, 20, -1, 22, 23, 24, 25,
2421 26, 27, 26, 27, 566, -1, -1, -1, -1, -1,
2422 -1, -1, -1, -1, 40, 41, 90, 91, 92, 93,
2423 94, 95, 96, 97, 98, 99, -1, 589, 590, -1,
2424 -1, 57, -1, -1, 596, 597, -1, -1, -1, -1,
2425 -1, 603, -1, -1, 606, -1, -1, 73, 74, 75,
2426 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2427 86, 87, 88, 89, -1, -1, -1, -1, -1, -1,
2428 -1, -1, 96, 97, 98, 99, 100, 101, 102, 103,
2429 104, 105, 106, 107, 108, 109, -1, -1, -1, 115,
2430 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2431 126, 127, -1, 129, -1, 131, 132, 133, -1, -1,
2432 -1, -1, -1, 3, 4, -1, -1, 7, 8, 9,
2433 -1, -1, -1, -1, 150, -1, 152, -1, -1, 19,
2434 20, 157, 22, 23, 24, 25, 26, 27, -1, -1,
2435 7, 8, -1, -1, -1, -1, -1, -1, -1, -1,
2436 40, 41, 19, 20, -1, 22, 23, 24, 25, -1,
2437 -1, -1, -1, -1, -1, -1, -1, 57, -1, -1,
2438 -1, -1, -1, 40, 41, -1, -1, -1, -1, -1,
2439 -1, -1, -1, 73, 74, 75, 76, 77, 78, 79,
2440 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2441 -1, -1, -1, -1, -1, -1, 73, 74, 75, 76,
2442 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2443 87, 88, 89, -1, -1, 115, 116, 117, 118, 119,
2444 120, 121, 122, 123, 124, 125, 126, 127, -1, 129,
2445 -1, 131, 132, 133, -1, -1, -1, -1, 115, 116,
2446 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2447 127, -1, 129, -1, 131, 132, 133, 157, -1, -1,
2448 -1, -1, -1, 3, 4, -1, -1, -1, -1, 9,
2449 -1, -1, -1, 150, -1, 152, -1, 154, -1, -1,
2450 157, -1, 159, -1, 161, 25, 26, 27, -1, -1,
24332451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2434 -1, 520, 521, -1, -1, -1, -1, -1, -1, -1,
2435 529, -1, 3, 4, -1, -1, 7, 8, 9, -1,
2436 -1, -1, -1, -1, -1, -1, -1, -1, 19, 20,
2437 -1, 22, 23, 24, 25, 26, 27, 151, -1, -1,
2438 154, -1, -1, 157, -1, 159, 160, 566, -1, 40,
2439 41, -1, -1, 572, 573, -1, -1, -1, -1, -1,
2440 -1, -1, -1, -1, -1, -1, 57, -1, -1, -1,
2441 -1, -1, -1, 592, 593, -1, -1, -1, 597, -1,
2442 -1, 600, 73, 74, 75, 76, 77, 78, 79, 80,
2443 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
2444 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2445 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2446 -1, -1, -1, -1, 115, 116, 117, 118, 119, 120,
2447 121, 122, 123, 124, 125, 126, 127, -1, 129, -1,
2448 131, 132, 133, -1, -1, -1, -1, -1, 3, 4,
2449 -1, -1, 7, 8, 9, -1, -1, -1, -1, 150,
2450 -1, 152, -1, -1, 19, 20, 157, 22, 23, 24,
2451 25, 26, 27, -1, -1, 7, 8, -1, -1, -1,
2452 -1, -1, -1, -1, -1, 40, 41, 19, 20, -1,
2453 22, 23, 24, 25, -1, -1, -1, -1, -1, -1,
2454 -1, -1, 57, -1, -1, -1, -1, -1, 40, 41,
2455 -1, -1, -1, -1, -1, -1, -1, -1, 73, 74,
2456 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2457 85, 86, 87, 88, 89, -1, -1, -1, -1, -1,
2458 -1, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2459 82, 83, 84, 85, 86, 87, 88, 89, -1, -1,
2460 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2461 125, 126, 127, -1, 129, -1, 131, 132, 133, -1,
2462 -1, -1, -1, 115, 116, 117, 118, 119, 120, 121,
2463 122, 123, 124, 125, 126, 127, -1, 129, -1, 131,
2464 132, 133, 157, -1, -1, -1, -1, -1, 3, 4,
2465 -1, -1, -1, -1, 9, -1, -1, -1, 150, -1,
2466 152, -1, 154, -1, -1, 157, -1, 159, -1, 161,
2467 25, 26, 27, -1, -1, -1, -1, -1, -1, -1,
2468 -1, -1, -1, -1, -1, 40, 41, -1, -1, -1,
2469 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2470 7, 8, 57, 10, 11, 12, 13, 14, 15, 16,
2471 17, -1, 19, 20, -1, 22, 23, 24, 73, 74,
2472 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2473 85, 86, 87, 88, 89, -1, -1, -1, -1, -1,
2474 7, 8, 49, 10, 11, 12, 13, 14, 15, 16,
2475 17, -1, 19, 20, -1, 22, 23, 24, -1, -1,
2476 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2477 125, 126, 127, -1, 129, -1, 131, 132, 133, -1,
2478 7, 8, 49, 10, 11, 12, 13, 14, 15, 16,
2479 17, -1, 19, 20, -1, 22, 23, 24, -1, -1,
2480 7, 8, 157, 10, 11, 12, 13, 14, 15, 16,
2481 17, -1, 19, 20, -1, 22, 23, 24, -1, -1,
2482 -1, -1, 49, 7, 8, -1, 10, 11, 12, 13,
2483 14, 15, 16, 17, -1, 19, 20, -1, 22, 23,
2484 24, -1, 49, -1, 151, -1, -1, 154, -1, -1,
2485 157, -1, 159, 160, -1, 39, -1, -1, -1, -1,
2486 -1, -1, -1, 7, 8, 49, 10, 11, 12, 13,
2487 14, 15, 16, 17, -1, 19, 20, -1, 22, 23,
2488 24, -1, -1, -1, 151, -1, -1, 154, -1, -1,
2489 157, -1, 159, 160, 7, 8, -1, 10, 11, 12,
2490 13, 14, 15, 16, 17, 49, 19, 20, -1, 22,
2491 23, 24, -1, -1, 121, -1, -1, -1, -1, -1,
2492 -1, -1, -1, -1, 151, -1, 39, 154, -1, -1,
2493 157, -1, 159, 160, -1, -1, 49, -1, -1, -1,
2494 -1, -1, -1, -1, 151, -1, -1, 154, -1, -1,
2495 157, -1, 159, -1, -1, -1, -1, -1, -1, -1,
2496 -1, -1, -1, -1, -1, -1, -1, 151, -1, -1,
2497 154, -1, -1, 157, -1, 159, 7, 8, -1, 10,
2452 40, 41, -1, -1, -1, -1, -1, -1, -1, -1,
2453 -1, -1, -1, -1, -1, 7, 8, 57, 10, 11,
2454 12, 13, 14, 15, 16, 17, -1, 19, 20, -1,
2455 22, 23, 24, 73, 74, 75, 76, 77, 78, 79,
2456 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2457 -1, -1, -1, -1, -1, 7, 8, 49, 10, 11,
2458 12, 13, 14, 15, 16, 17, -1, 19, 20, -1,
2459 22, 23, 24, -1, -1, 115, 116, 117, 118, 119,
2460 120, 121, 122, 123, 124, 125, 126, 127, -1, 129,
2461 -1, 131, 132, 133, -1, 7, 8, 49, 10, 11,
2462 12, 13, 14, 15, 16, 17, -1, 19, 20, -1,
2463 22, 23, 24, -1, -1, 7, 8, 157, 10, 11,
2464 12, 13, 14, 15, 16, 17, -1, 19, 20, -1,
2465 22, 23, 24, -1, -1, -1, -1, 49, -1, -1,
2466 -1, -1, -1, -1, -1, -1, -1, 39, -1, -1,
2467 -1, -1, -1, -1, -1, -1, -1, 49, -1, 151,
2468 -1, -1, 154, -1, -1, 157, -1, 159, 160, 7,
2469 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2470 -1, 19, 20, -1, 22, 23, 24, -1, -1, -1,
2471 -1, -1, -1, -1, -1, -1, -1, -1, -1, 151,
2472 -1, -1, 154, -1, -1, 157, -1, 159, 160, 7,
2473 8, 49, 10, 11, 12, 13, 14, 15, 16, 17,
2474 -1, 19, 20, -1, 22, 23, 24, -1, -1, -1,
2475 -1, -1, -1, -1, -1, -1, -1, -1, -1, 151,
2476 -1, 39, 154, -1, -1, 157, -1, 159, 160, -1,
2477 -1, 49, -1, -1, -1, -1, -1, -1, -1, 151,
2478 -1, -1, 154, -1, -1, 157, -1, 159, -1, 7,
2479 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2480 -1, 19, 20, 121, 22, 23, 24, -1, 7, 8,
2481 -1, 10, 11, 12, 13, 14, 15, 16, 17, -1,
2482 19, 20, -1, 22, 23, 24, -1, -1, -1, -1,
2483 -1, 49, -1, 151, -1, -1, 154, -1, -1, 157,
2484 39, 159, -1, -1, -1, -1, -1, -1, 7, 8,
2485 49, 10, 11, 12, 13, 14, 15, 16, 17, -1,
2486 19, 20, -1, 22, 23, 24, -1, -1, -1, -1,
2487 -1, -1, -1, 151, -1, -1, 154, -1, -1, 157,
2488 39, 159, -1, -1, -1, -1, -1, -1, 7, 8,
2489 49, 10, 11, 12, 13, 14, 15, 16, 17, -1,
2490 19, 20, -1, 22, 23, 24, 7, 8, -1, 10,
24982491 11, 12, 13, 14, 15, 16, 17, -1, 19, 20,
24992492 -1, 22, 23, 24, -1, -1, -1, -1, -1, -1,
2500 -1, -1, -1, -1, -1, -1, -1, 151, 39, -1,
2501 154, -1, 156, 157, -1, 159, 7, 8, 49, 10,
2502 11, 12, 13, 14, 15, 16, 17, -1, 19, 20,
2503 -1, 22, 23, 24, -1, -1, -1, -1, 151, -1,
2504 -1, 154, -1, -1, 157, -1, 159, 7, 8, -1,
2505 10, 11, 12, 13, 14, 15, 16, 17, 49, 19,
2506 20, -1, 22, 23, 24, 7, 8, -1, 10, 11,
2507 12, 13, 14, 15, 16, 17, -1, 19, 20, -1,
2508 22, 23, 24, -1, -1, -1, -1, 7, 8, 49,
2509 10, 11, 12, 13, 14, 15, 16, 17, -1, 19,
2510 20, -1, 22, 23, 24, -1, -1, 49, -1, -1,
2511 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2512 151, -1, -1, 154, -1, -1, 157, -1, 159, 49,
2513 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2514 17, -1, 19, 20, -1, 22, 23, 24, -1, -1,
2515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2516 151, -1, -1, 154, -1, -1, 157, -1, 159, -1,
2517 -1, -1, 49, -1, -1, -1, -1, -1, -1, -1,
2518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2519 -1, 151, -1, -1, 154, -1, -1, 157, -1, 159,
2520 -1, -1, -1, -1, -1, -1, -1, -1, -1, 151,
2521 -1, -1, 154, -1, -1, 157, -1, 159, -1, -1,
2522 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2523 -1, 151, -1, -1, 154, -1, -1, 157, -1, 159,
2524 -1, 7, 8, -1, 10, 11, 12, 13, 14, 15,
2493 49, -1, -1, 151, -1, -1, 154, -1, 156, 157,
2494 -1, 159, -1, -1, -1, -1, -1, -1, 49, -1,
2495 -1, -1, 151, -1, -1, 154, -1, -1, 157, -1,
2496 159, 7, 8, -1, 10, 11, 12, 13, 14, 15,
25252497 16, 17, -1, 19, 20, -1, 22, 23, 24, -1,
25262498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2527 -1, -1, -1, -1, 151, -1, -1, 154, -1, -1,
2528 157, -1, 159, 49, 7, 8, -1, 10, 11, 12,
2529 13, 14, 15, 16, 17, -1, 19, 20, -1, 22,
2530 23, 24, 7, 8, -1, 10, 11, 12, 13, 14,
2531 15, 16, 17, -1, 19, 20, -1, 22, 23, 24,
2532 36, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2533 -1, -1, -1, -1, -1, -1, -1, -1, -1, 55,
2534 56, -1, -1, -1, 49, -1, -1, -1, -1, -1,
2499 -1, -1, 151, -1, -1, 154, -1, -1, 157, -1,
2500 159, 7, 8, 49, 10, 11, 12, 13, 14, 15,
2501 16, 17, -1, 19, 20, -1, 22, 23, 24, -1,
2502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2503 -1, -1, 151, -1, -1, 154, -1, -1, 157, -1,
2504 159, -1, -1, 49, -1, -1, -1, -1, -1, -1,
2505 151, -1, -1, 154, -1, -1, 157, -1, 159, 7,
2506 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
2507 -1, 19, 20, -1, 22, 23, 24, 7, 8, -1,
2508 10, 11, 12, 13, 14, 15, 16, 17, -1, 19,
2509 20, -1, 22, 23, 24, -1, -1, -1, -1, -1,
2510 -1, 49, -1, -1, -1, 151, -1, -1, 154, -1,
2511 -1, 157, -1, 159, -1, -1, -1, 7, 8, 49,
2512 10, 11, 12, 13, 14, 15, 16, 17, -1, 19,
2513 20, -1, 22, 23, 24, -1, -1, -1, -1, -1,
2514 -1, -1, -1, -1, -1, 151, -1, -1, 154, -1,
2515 -1, 157, -1, 159, -1, -1, -1, 7, 8, 49,
2516 10, 11, 12, 13, 14, 15, 16, 17, -1, 19,
2517 20, -1, 22, 23, 24, -1, -1, -1, -1, -1,
2518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2519 -1, -1, -1, -1, -1, -1, -1, -1, -1, 49,
2520 36, -1, -1, 151, -1, -1, 154, -1, -1, 157,
2521 -1, 159, -1, -1, -1, -1, -1, -1, -1, 55,
2522 56, 151, -1, -1, 154, -1, -1, 157, -1, 159,
25352523 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
25362524 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
25372525 86, 87, 88, 89, -1, -1, -1, -1, -1, -1,
2538 -1, -1, -1, -1, -1, 151, -1, -1, 154, -1,
2539 -1, 157, -1, 159, 110, 111, 112, -1, -1, 115,
2526 -1, 151, -1, -1, 154, -1, -1, 157, -1, 159,
2527 -1, -1, -1, -1, 110, 111, 112, -1, -1, 115,
25402528 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2541 126, 127, 128, 129, 130, 131, 132, 133, -1, -1,
2542 -1, -1, -1, -1, -1, -1, -1, -1, 151, -1,
2543 -1, 154, -1, -1, 157, -1, 159, -1, -1, -1,
2544 -1, -1, -1, -1, -1, -1, 151, -1, -1, 154,
2545 -1, -1, 157, -1, 159
2529 126, 127, 128, 129, 130, 131, 132, 133, 0, -1,
2530 -1, 151, -1, -1, 154, -1, -1, 157, -1, 159,
2531 -1, -1, -1, -1, -1, -1, 18, 19, 20, -1,
2532 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
2533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2534 -1, -1, -1, -1, -1, -1, -1, -1, -1, 51,
2535 -1, -1, 54, -1, -1, -1, 58
25462536 };
25472537
25482538 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
26042594 17, 194, 238, 229, 229, 188, 188, 230, 229, 149,
26052595 230, 230, 230, 238, 229, 200, 200, 149, 153, 149,
26062596 149, 153, 153, 153, 184, 189, 190, 22, 149, 154,
2607 229, 229, 149, 153, 156, 229, 153, 188, 153, 153,
2597 184, 184, 149, 153, 156, 229, 153, 188, 153, 153,
26082598 200, 200, 200, 171, 53, 187, 17, 156, 168, 235,
2609 184, 184, 17, 194, 186, 156, 186, 153, 153, 153,
2610 4, 229, 227, 156, 168, 229, 229, 38, 149, 227,
2611 184, 184, 17, 17, 149, 229, 229, 17, 71, 229,
2612 17, 229
2599 117, 118, 229, 229, 17, 194, 186, 156, 186, 153,
2600 153, 153, 4, 229, 227, 156, 168, 184, 184, 184,
2601 184, 38, 149, 227, 229, 229, 17, 17, 149, 184,
2602 184, 229, 229, 17, 71, 229, 17, 229
26132603 };
26142604
26152605 #define yyerrok (yyerrstatus = 0)
26832673 we won't break user code: when these are the locations we know. */
26842674
26852675 #ifndef YY_LOCATION_PRINT
2686 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2676 # if YYLTYPE_IS_TRIVIAL
26872677 # define YY_LOCATION_PRINT(File, Loc) \
26882678 fprintf (File, "%d.%d-%d.%d", \
26892679 (Loc).first_line, (Loc).first_column, \
34243414 switch (yyn)
34253415 {
34263416 case 29:
3427 #line 1134 "/llvm/lib/AsmParser/llvmAsmParser.y"
3417 #line 1111 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34283418 { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
34293419 break;
34303420
34313421 case 30:
3432 #line 1134 "/llvm/lib/AsmParser/llvmAsmParser.y"
3422 #line 1111 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34333423 { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
34343424 break;
34353425
34363426 case 31:
3437 #line 1135 "/llvm/lib/AsmParser/llvmAsmParser.y"
3427 #line 1112 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34383428 { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
34393429 break;
34403430
34413431 case 32:
3442 #line 1135 "/llvm/lib/AsmParser/llvmAsmParser.y"
3432 #line 1112 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34433433 { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
34443434 break;
34453435
34463436 case 33:
3447 #line 1136 "/llvm/lib/AsmParser/llvmAsmParser.y"
3437 #line 1113 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34483438 { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
34493439 break;
34503440
34513441 case 34:
3452 #line 1136 "/llvm/lib/AsmParser/llvmAsmParser.y"
3442 #line 1113 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34533443 { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
34543444 break;
34553445
34563446 case 35:
3457 #line 1137 "/llvm/lib/AsmParser/llvmAsmParser.y"
3447 #line 1114 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34583448 { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
34593449 break;
34603450
34613451 case 36:
3462 #line 1137 "/llvm/lib/AsmParser/llvmAsmParser.y"
3452 #line 1114 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34633453 { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
34643454 break;
34653455
34663456 case 37:
3467 #line 1138 "/llvm/lib/AsmParser/llvmAsmParser.y"
3457 #line 1115 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34683458 { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
34693459 break;
34703460
34713461 case 38:
3472 #line 1138 "/llvm/lib/AsmParser/llvmAsmParser.y"
3462 #line 1115 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34733463 { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
34743464 break;
34753465
34763466 case 39:
3477 #line 1142 "/llvm/lib/AsmParser/llvmAsmParser.y"
3467 #line 1119 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34783468 { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
34793469 break;
34803470
34813471 case 40:
3482 #line 1142 "/llvm/lib/AsmParser/llvmAsmParser.y"
3472 #line 1119 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34833473 { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
34843474 break;
34853475
34863476 case 41:
3487 #line 1143 "/llvm/lib/AsmParser/llvmAsmParser.y"
3477 #line 1120 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34883478 { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
34893479 break;
34903480
34913481 case 42:
3492 #line 1143 "/llvm/lib/AsmParser/llvmAsmParser.y"
3482 #line 1120 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34933483 { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
34943484 break;
34953485
34963486 case 43:
3497 #line 1144 "/llvm/lib/AsmParser/llvmAsmParser.y"
3487 #line 1121 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
34983488 { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
34993489 break;
35003490
35013491 case 44:
3502 #line 1144 "/llvm/lib/AsmParser/llvmAsmParser.y"
3492 #line 1121 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35033493 { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
35043494 break;
35053495
35063496 case 45:
3507 #line 1145 "/llvm/lib/AsmParser/llvmAsmParser.y"
3497 #line 1122 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35083498 { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
35093499 break;
35103500
35113501 case 46:
3512 #line 1145 "/llvm/lib/AsmParser/llvmAsmParser.y"
3502 #line 1122 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35133503 { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
35143504 break;
35153505
35163506 case 47:
3517 #line 1146 "/llvm/lib/AsmParser/llvmAsmParser.y"
3507 #line 1123 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35183508 { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
35193509 break;
35203510
35213511 case 48:
3522 #line 1146 "/llvm/lib/AsmParser/llvmAsmParser.y"
3512 #line 1123 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35233513 { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
35243514 break;
35253515
35263516 case 49:
3527 #line 1147 "/llvm/lib/AsmParser/llvmAsmParser.y"
3517 #line 1124 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35283518 { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
35293519 break;
35303520
35313521 case 50:
3532 #line 1147 "/llvm/lib/AsmParser/llvmAsmParser.y"
3522 #line 1124 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35333523 { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
35343524 break;
35353525
35363526 case 51:
3537 #line 1148 "/llvm/lib/AsmParser/llvmAsmParser.y"
3527 #line 1125 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35383528 { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
35393529 break;
35403530
35413531 case 52:
3542 #line 1148 "/llvm/lib/AsmParser/llvmAsmParser.y"
3532 #line 1125 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35433533 { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
35443534 break;
35453535
35463536 case 53:
3547 #line 1149 "/llvm/lib/AsmParser/llvmAsmParser.y"
3537 #line 1126 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35483538 { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
35493539 break;
35503540
35513541 case 54:
3552 #line 1150 "/llvm/lib/AsmParser/llvmAsmParser.y"
3542 #line 1127 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35533543 { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
35543544 break;
35553545
35563546 case 65:
3557 #line 1159 "/llvm/lib/AsmParser/llvmAsmParser.y"
3547 #line 1136 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35583548 { (yyval.StrVal) = 0; ;}
35593549 break;
35603550
35613551 case 66:
3562 #line 1163 "/llvm/lib/AsmParser/llvmAsmParser.y"
3552 #line 1140 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35633553 {
35643554 (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
35653555 CHECK_FOR_ERROR
35673557 break;
35683558
35693559 case 67:
3570 #line 1167 "/llvm/lib/AsmParser/llvmAsmParser.y"
3560 #line 1144 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35713561 {
35723562 (yyval.StrVal) = 0;
35733563 CHECK_FOR_ERROR
35753565 break;
35763566
35773567 case 71:
3578 #line 1175 "/llvm/lib/AsmParser/llvmAsmParser.y"
3568 #line 1152 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35793569 {
35803570 (yyval.StrVal) = 0;
35813571 CHECK_FOR_ERROR
35833573 break;
35843574
35853575 case 72:
3586 #line 1180 "/llvm/lib/AsmParser/llvmAsmParser.y"
3576 #line 1157 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35873577 {
35883578 (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
35893579 CHECK_FOR_ERROR
35913581 break;
35923582
35933583 case 73:
3594 #line 1186 "/llvm/lib/AsmParser/llvmAsmParser.y"
3584 #line 1163 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
35953585 { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
35963586 break;
35973587
35983588 case 74:
3599 #line 1187 "/llvm/lib/AsmParser/llvmAsmParser.y"
3589 #line 1164 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36003590 { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
36013591 break;
36023592
36033593 case 75:
3604 #line 1188 "/llvm/lib/AsmParser/llvmAsmParser.y"
3594 #line 1165 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36053595 { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
36063596 break;
36073597
36083598 case 76:
3609 #line 1189 "/llvm/lib/AsmParser/llvmAsmParser.y"
3599 #line 1166 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36103600 { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
36113601 break;
36123602
36133603 case 77:
3614 #line 1190 "/llvm/lib/AsmParser/llvmAsmParser.y"
3604 #line 1167 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36153605 { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
36163606 break;
36173607
36183608 case 78:
3619 #line 1194 "/llvm/lib/AsmParser/llvmAsmParser.y"
3609 #line 1171 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36203610 { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
36213611 break;
36223612
36233613 case 79:
3624 #line 1195 "/llvm/lib/AsmParser/llvmAsmParser.y"
3614 #line 1172 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36253615 { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
36263616 break;
36273617
36283618 case 80:
3629 #line 1196 "/llvm/lib/AsmParser/llvmAsmParser.y"
3619 #line 1173 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36303620 { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
36313621 break;
36323622
36333623 case 81:
3634 #line 1200 "/llvm/lib/AsmParser/llvmAsmParser.y"
3624 #line 1177 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36353625 { (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
36363626 break;
36373627
36383628 case 82:
3639 #line 1201 "/llvm/lib/AsmParser/llvmAsmParser.y"
3629 #line 1178 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36403630 { (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
36413631 break;
36423632
36433633 case 83:
3644 #line 1202 "/llvm/lib/AsmParser/llvmAsmParser.y"
3634 #line 1179 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36453635 { (yyval.Visibility) = GlobalValue::HiddenVisibility; ;}
36463636 break;
36473637
36483638 case 84:
3649 #line 1203 "/llvm/lib/AsmParser/llvmAsmParser.y"
3639 #line 1180 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36503640 { (yyval.Visibility) = GlobalValue::ProtectedVisibility; ;}
36513641 break;
36523642
36533643 case 85:
3654 #line 1207 "/llvm/lib/AsmParser/llvmAsmParser.y"
3644 #line 1184 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36553645 { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
36563646 break;
36573647
36583648 case 86:
3659 #line 1208 "/llvm/lib/AsmParser/llvmAsmParser.y"
3649 #line 1185 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36603650 { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
36613651 break;
36623652
36633653 case 87:
3664 #line 1209 "/llvm/lib/AsmParser/llvmAsmParser.y"
3654 #line 1186 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36653655 { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
36663656 break;
36673657
36683658 case 88:
3669 #line 1213 "/llvm/lib/AsmParser/llvmAsmParser.y"
3659 #line 1190 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36703660 { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
36713661 break;
36723662
36733663 case 89:
3674 #line 1214 "/llvm/lib/AsmParser/llvmAsmParser.y"
3664 #line 1191 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36753665 { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
36763666 break;
36773667
36783668 case 90:
3679 #line 1215 "/llvm/lib/AsmParser/llvmAsmParser.y"
3669 #line 1192 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36803670 { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
36813671 break;
36823672
36833673 case 91:
3684 #line 1216 "/llvm/lib/AsmParser/llvmAsmParser.y"
3674 #line 1193 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36853675 { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
36863676 break;
36873677
36883678 case 92:
3689 #line 1217 "/llvm/lib/AsmParser/llvmAsmParser.y"
3679 #line 1194 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36903680 { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
36913681 break;
36923682
36933683 case 93:
3694 #line 1221 "/llvm/lib/AsmParser/llvmAsmParser.y"
3684 #line 1198 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
36953685 { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
36963686 break;
36973687
36983688 case 94:
3699 #line 1222 "/llvm/lib/AsmParser/llvmAsmParser.y"
3689 #line 1199 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37003690 { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
37013691 break;
37023692
37033693 case 95:
3704 #line 1223 "/llvm/lib/AsmParser/llvmAsmParser.y"
3694 #line 1200 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37053695 { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
37063696 break;
37073697
37083698 case 96:
3709 #line 1226 "/llvm/lib/AsmParser/llvmAsmParser.y"
3699 #line 1203 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37103700 { (yyval.UIntVal) = CallingConv::C; ;}
37113701 break;
37123702
37133703 case 97:
3714 #line 1227 "/llvm/lib/AsmParser/llvmAsmParser.y"
3704 #line 1204 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37153705 { (yyval.UIntVal) = CallingConv::C; ;}
37163706 break;
37173707
37183708 case 98:
3719 #line 1228 "/llvm/lib/AsmParser/llvmAsmParser.y"
3709 #line 1205 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37203710 { (yyval.UIntVal) = CallingConv::Fast; ;}
37213711 break;
37223712
37233713 case 99:
3724 #line 1229 "/llvm/lib/AsmParser/llvmAsmParser.y"
3714 #line 1206 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37253715 { (yyval.UIntVal) = CallingConv::Cold; ;}
37263716 break;
37273717
37283718 case 100:
3729 #line 1230 "/llvm/lib/AsmParser/llvmAsmParser.y"
3719 #line 1207 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37303720 { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
37313721 break;
37323722
37333723 case 101:
3734 #line 1231 "/llvm/lib/AsmParser/llvmAsmParser.y"
3724 #line 1208 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37353725 { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
37363726 break;
37373727
37383728 case 102:
3739 #line 1232 "/llvm/lib/AsmParser/llvmAsmParser.y"
3729 #line 1209 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37403730 {
37413731 if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) != (yyvsp[(2) - (2)].UInt64Val))
37423732 GEN_ERROR("Calling conv too large");
37463736 break;
37473737
37483738 case 103:
3749 #line 1239 "/llvm/lib/AsmParser/llvmAsmParser.y"
3739 #line 1216 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37503740 { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
37513741 break;
37523742
37533743 case 104:
3754 #line 1240 "/llvm/lib/AsmParser/llvmAsmParser.y"
3744 #line 1217 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37553745 { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
37563746 break;
37573747
37583748 case 105:
3759 #line 1241 "/llvm/lib/AsmParser/llvmAsmParser.y"
3749 #line 1218 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37603750 { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
37613751 break;
37623752
37633753 case 106:
3764 #line 1242 "/llvm/lib/AsmParser/llvmAsmParser.y"
3754 #line 1219 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37653755 { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
37663756 break;
37673757
37683758 case 107:
3769 #line 1243 "/llvm/lib/AsmParser/llvmAsmParser.y"
3759 #line 1220 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37703760 { (yyval.ParamAttrs) = ParamAttr::InReg; ;}
37713761 break;
37723762
37733763 case 108:
3774 #line 1244 "/llvm/lib/AsmParser/llvmAsmParser.y"
3764 #line 1221 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37753765 { (yyval.ParamAttrs) = ParamAttr::StructRet; ;}
37763766 break;
37773767
37783768 case 109:
3779 #line 1245 "/llvm/lib/AsmParser/llvmAsmParser.y"
3769 #line 1222 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37803770 { (yyval.ParamAttrs) = ParamAttr::NoAlias; ;}
37813771 break;
37823772
37833773 case 110:
3784 #line 1246 "/llvm/lib/AsmParser/llvmAsmParser.y"
3774 #line 1223 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37853775 { (yyval.ParamAttrs) = ParamAttr::ByVal; ;}
37863776 break;
37873777
37883778 case 111:
3789 #line 1247 "/llvm/lib/AsmParser/llvmAsmParser.y"
3779 #line 1224 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37903780 { (yyval.ParamAttrs) = ParamAttr::Nest; ;}
37913781 break;
37923782
37933783 case 112:
3794 #line 1250 "/llvm/lib/AsmParser/llvmAsmParser.y"
3784 #line 1227 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
37953785 { (yyval.ParamAttrs) = ParamAttr::None; ;}
37963786 break;
37973787
37983788 case 113:
3799 #line 1251 "/llvm/lib/AsmParser/llvmAsmParser.y"
3789 #line 1228 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38003790 {
38013791 (yyval.ParamAttrs) = (yyvsp[(1) - (2)].ParamAttrs) | (yyvsp[(2) - (2)].ParamAttrs);
38023792 ;}
38033793 break;
38043794
38053795 case 114:
3806 #line 1256 "/llvm/lib/AsmParser/llvmAsmParser.y"
3796 #line 1233 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38073797 { (yyval.ParamAttrs) = ParamAttr::NoReturn; ;}
38083798 break;
38093799
38103800 case 115:
3811 #line 1257 "/llvm/lib/AsmParser/llvmAsmParser.y"
3801 #line 1234 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38123802 { (yyval.ParamAttrs) = ParamAttr::NoUnwind; ;}
38133803 break;
38143804
38153805 case 116:
3816 #line 1258 "/llvm/lib/AsmParser/llvmAsmParser.y"
3806 #line 1235 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38173807 { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
38183808 break;
38193809
38203810 case 117:
3821 #line 1259 "/llvm/lib/AsmParser/llvmAsmParser.y"
3811 #line 1236 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38223812 { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
38233813 break;
38243814
38253815 case 118:
3826 #line 1260 "/llvm/lib/AsmParser/llvmAsmParser.y"
3827 { (yyval.ParamAttrs) = ParamAttr::Pure; ;}
3816 #line 1237 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
3817 { (yyval.ParamAttrs) = ParamAttr::ReadNone; ;}
38283818 break;
38293819
38303820 case 119:
3831 #line 1261 "/llvm/lib/AsmParser/llvmAsmParser.y"
3832 { (yyval.ParamAttrs) = ParamAttr::Const; ;}
3821 #line 1238 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
3822 { (yyval.ParamAttrs) = ParamAttr::ReadOnly; ;}
38333823 break;
38343824
38353825 case 120:
3836 #line 1264 "/llvm/lib/AsmParser/llvmAsmParser.y"
3826 #line 1241 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38373827 { (yyval.ParamAttrs) = ParamAttr::None; ;}
38383828 break;
38393829
38403830 case 121:
3841 #line 1265 "/llvm/lib/AsmParser/llvmAsmParser.y"
3831 #line 1242 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38423832 {
38433833 (yyval.ParamAttrs) = (yyvsp[(1) - (2)].ParamAttrs) | (yyvsp[(2) - (2)].ParamAttrs);
38443834 ;}
38453835 break;
38463836
38473837 case 122:
3848 #line 1272 "/llvm/lib/AsmParser/llvmAsmParser.y"
3838 #line 1249 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38493839 { (yyval.UIntVal) = 0; ;}
38503840 break;
38513841
38523842 case 123:
3853 #line 1273 "/llvm/lib/AsmParser/llvmAsmParser.y"
3843 #line 1250 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38543844 {
38553845 (yyval.UIntVal) = (yyvsp[(2) - (2)].UInt64Val);
38563846 if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
38603850 break;
38613851
38623852 case 124:
3863 #line 1279 "/llvm/lib/AsmParser/llvmAsmParser.y"
3853 #line 1256 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38643854 { (yyval.UIntVal) = 0; ;}
38653855 break;
38663856
38673857 case 125:
3868 #line 1280 "/llvm/lib/AsmParser/llvmAsmParser.y"
3858 #line 1257 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38693859 {
38703860 (yyval.UIntVal) = (yyvsp[(3) - (3)].UInt64Val);
38713861 if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
38753865 break;
38763866
38773867 case 126:
3878 #line 1288 "/llvm/lib/AsmParser/llvmAsmParser.y"
3868 #line 1265 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38793869 {
38803870 for (unsigned i = 0, e = (yyvsp[(2) - (2)].StrVal)->length(); i != e; ++i)
38813871 if ((*(yyvsp[(2) - (2)].StrVal))[i] == '"' || (*(yyvsp[(2) - (2)].StrVal))[i] == '\\')
38863876 break;
38873877
38883878 case 127:
3889 #line 1296 "/llvm/lib/AsmParser/llvmAsmParser.y"
3879 #line 1273 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38903880 { (yyval.StrVal) = 0; ;}
38913881 break;
38923882
38933883 case 128:
3894 #line 1297 "/llvm/lib/AsmParser/llvmAsmParser.y"
3884 #line 1274 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
38953885 { (yyval.StrVal) = (yyvsp[(1) - (1)].StrVal); ;}
38963886 break;
38973887
38983888 case 129:
3899 #line 1302 "/llvm/lib/AsmParser/llvmAsmParser.y"
3889 #line 1279 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
39003890 {;}
39013891 break;
39023892
39033893 case 130:
3904 #line 1303 "/llvm/lib/AsmParser/llvmAsmParser.y"
3894 #line 1280 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
39053895 {;}
39063896 break;
39073897
39083898 case 131:
3909 #line 1304 "/llvm/lib/AsmParser/llvmAsmParser.y"
3899 #line 1281 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
39103900 {
39113901 CurGV->setSection(*(yyvsp[(1) - (1)].StrVal));
39123902 delete (yyvsp[(1) - (1)].StrVal);
39153905 break;
39163906
39173907 case 132:
3918 #line 1309 "/llvm/lib/AsmParser/llvmAsmParser.y"
3908 #line 1286 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
39193909 {
39203910 if ((yyvsp[(2) - (2)].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[(2) - (2)].UInt64Val)))
39213911 GEN_ERROR("Alignment must be a power of two");
39253915 break;
39263916
39273917 case 140:
3928 #line 1325 "/llvm/lib/AsmParser/llvmAsmParser.y"
3918 #line 1302 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
39293919 {
39303920 (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
39313921 CHECK_FOR_ERROR
39333923 break;
39343924
39353925 case 141:
3936 #line 1329 "/llvm/lib/AsmParser/llvmAsmParser.y"
3926 #line 1306 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
39373927 {
39383928 (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType));
39393929 CHECK_FOR_ERROR
39413931 break;
39423932
39433933 case 142:
3944 #line 1333 "/llvm/lib/AsmParser/llvmAsmParser.y"
3934 #line 1310 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
39453935 { // Pointer type?
39463936 if (*(yyvsp[(1) - (2)].TypeVal) == Type::LabelTy)
39473937 GEN_ERROR("Cannot form a pointer to a basic block");
39523942 break;
39533943
39543944 case 143:
3955 #line 1340 "/llvm/lib/AsmParser/llvmAsmParser.y"
3945 #line 1317 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
39563946 { // Named types are also simple types...
39573947 const Type* tmp = getTypeVal((yyvsp[(1) - (1)].ValIDVal));
39583948 CHECK_FOR_ERROR
39613951 break;
39623952
39633953 case 144:
3964 #line 1345 "/llvm/lib/AsmParser/llvmAsmParser.y"
3954 #line 1322 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
39653955 { // Type UpReference
39663956 if ((yyvsp[(2) - (2)].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range");
39673957 OpaqueType *OT = OpaqueType::get(); // Use temporary placeholder
39733963 break;
39743964
39753965 case 145:
3976 #line 1353 "/llvm/lib/AsmParser/llvmAsmParser.y"
3977 {
3966 #line 1330 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
3967 {
3968 // Allow but ignore attributes on function types; this permits auto-upgrade.
3969 // FIXME: remove in LLVM 3.0.
39783970 std::vector Params;
3979 ParamAttrsVector Attrs;
3980 if ((yyvsp[(5) - (5)].ParamAttrs) != ParamAttr::None) {
3981 ParamAttrsWithIndex X; X.index = 0; X.attrs = (yyvsp[(5) - (5)].ParamAttrs);
3982 Attrs.push_back(X);
3983 }
3984 unsigned index = 1;
39853971 TypeWithAttrsList::iterator I = (yyvsp[(3) - (5)].TypeWithAttrsList)->begin(), E = (yyvsp[(3) - (5)].TypeWithAttrsList)->end();
3986 for (; I != E; ++I, ++index) {
3972 for (; I != E; ++I ) {
39873973 const Type *Ty = I->Ty->get();
39883974 Params.push_back(Ty);
3989 if (Ty != Type::VoidTy)
3990 if (I->Attrs != ParamAttr::None) {
3991 ParamAttrsWithIndex X; X.index = index; X.attrs = I->Attrs;
3992 Attrs.push_back(X);
3993 }
39943975 }
39953976 bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
39963977 if (isVarArg) Params.pop_back();
39973978
3998 ParamAttrsList *ActualAttrs = 0;
3999 if (!Attrs.empty())
4000 ActualAttrs = ParamAttrsList::get(Attrs);
4001 FunctionType *FT = FunctionType::get(*(yyvsp[(1) - (5)].TypeVal), Params, isVarArg, ActualAttrs);
3979 FunctionType *FT = FunctionType::get(*(yyvsp[(1) - (5)].TypeVal), Params, isVarArg);
40023980 delete (yyvsp[(3) - (5)].TypeWithAttrsList); // Delete the argument list
40033981 delete (yyvsp[(1) - (5)].TypeVal); // Delete the return type handle
40043982 (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FT));
40073985 break;
40083986
40093987 case 146:
4010 #line 1383 "/llvm/lib/AsmParser/llvmAsmParser.y"
4011 {
3988 #line 1348 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
3989 {
3990 // Allow but ignore attributes on function types; this permits auto-upgrade.
3991 // FIXME: remove in LLVM 3.0.
40123992 std::vector Params;
4013 ParamAttrsVector Attrs;
4014 if ((yyvsp[(5) - (5)].ParamAttrs) != ParamAttr::None) {
4015 ParamAttrsWithIndex X; X.index = 0; X.attrs = (yyvsp[(5) - (5)].ParamAttrs);
4016 Attrs.push_back(X);
4017 }
40183993 TypeWithAttrsList::iterator I = (yyvsp[(3) - (5)].TypeWithAttrsList)->begin(), E = (yyvsp[(3) - (5)].TypeWithAttrsList)->end();
4019 unsigned index = 1;
4020 for ( ; I != E; ++I, ++index) {
3994 for ( ; I != E; ++I ) {
40213995 const Type* Ty = I->Ty->get();
40223996 Params.push_back(Ty);
4023 if (Ty != Type::VoidTy)
4024 if (I->Attrs != ParamAttr::None) {
4025 ParamAttrsWithIndex X; X.index = index; X.attrs = I->Attrs;
4026 Attrs.push_back(X);
4027 }
40283997 }
40293998 bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
40303999 if (isVarArg) Params.pop_back();
40314000
4032 ParamAttrsList *ActualAttrs = 0;
4033 if (!Attrs.empty())
4034 ActualAttrs = ParamAttrsList::get(Attrs);
4035
4036 FunctionType *FT = FunctionType::get((yyvsp[(1) - (5)].PrimType), Params, isVarArg, ActualAttrs);
4001 FunctionType *FT = FunctionType::get((yyvsp[(1) - (5)].PrimType), Params, isVarArg);
40374002 delete (yyvsp[(3) - (5)].TypeWithAttrsList); // Delete the argument list
40384003 (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FT));
40394004 CHECK_FOR_ERROR
40414006 break;
40424007
40434008 case 147:
4044 #line 1414 "/llvm/lib/AsmParser/llvmAsmParser.y"
4009 #line 1366 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
40454010 { // Sized array type?
40464011 (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[(4) - (5)].TypeVal), (unsigned)(yyvsp[(2) - (5)].UInt64Val))));
40474012 delete (yyvsp[(4) - (5)].TypeVal);
40504015 break;
40514016
40524017 case 148:
4053 #line 1419 "/llvm/lib/AsmParser/llvmAsmParser.y"
4018 #line 1371 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
40544019 { // Vector type?
40554020 const llvm::Type* ElemTy = (yyvsp[(4) - (5)].TypeVal)->get();
40564021 if ((unsigned)(yyvsp[(2) - (5)].UInt64Val) != (yyvsp[(2) - (5)].UInt64Val))
40644029 break;
40654030
40664031 case 149:
4067 #line 1429 "/llvm/lib/AsmParser/llvmAsmParser.y"
4032 #line 1381 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
40684033 { // Structure type?
40694034 std::vector Elements;
40704035 for (std::list::iterator I = (yyvsp[(2) - (3)].TypeList)->begin(),
40784043 break;
40794044
40804045 case 150:
4081 #line 1439 "/llvm/lib/AsmParser/llvmAsmParser.y"
4046 #line 1391 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
40824047 { // Empty structure type?
40834048 (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector()));
40844049 CHECK_FOR_ERROR
40864051 break;
40874052
40884053 case 151:
4089 #line 1443 "/llvm/lib/AsmParser/llvmAsmParser.y"
4054 #line 1395 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
40904055 {
40914056 std::vector Elements;
40924057 for (std::list::iterator I = (yyvsp[(3) - (5)].TypeList)->begin(),
41004065 break;
41014066
41024067 case 152:
4103 #line 1453 "/llvm/lib/AsmParser/llvmAsmParser.y"
4068 #line 1405 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
41044069 { // Empty structure type?
41054070 (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector(), true));
41064071 CHECK_FOR_ERROR
41084073 break;
41094074
41104075 case 153:
4111 #line 1460 "/llvm/lib/AsmParser/llvmAsmParser.y"
4112 {
4076 #line 1412 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
4077 {
4078 // Allow but ignore attributes on function types; this permits auto-upgrade.
4079 // FIXME: remove in LLVM 3.0.
41134080 (yyval.TypeWithAttrs).Ty = (yyvsp[(1) - (2)].TypeVal);
4114 (yyval.TypeWithAttrs).Attrs = (yyvsp[(2) - (2)].ParamAttrs);
4081 (yyval.TypeWithAttrs).Attrs = ParamAttr::None;
41154082 ;}
41164083 break;
41174084
41184085 case 154:
4119 #line 1467 "/llvm/lib/AsmParser/llvmAsmParser.y"
4086 #line 1421 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
41204087 {
41214088 if (!UpRefs.empty())
41224089 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (1)].TypeVal))->getDescription());
41274094 break;
41284095
41294096 case 155:
4130 #line 1474 "/llvm/lib/AsmParser/llvmAsmParser.y"
4097 #line 1428 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
41314098 {
41324099 (yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
41334100 ;}
41344101 break;
41354102
41364103 case 156:
4137 #line 1479 "/llvm/lib/AsmParser/llvmAsmParser.y"
4104 #line 1433 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
41384105 {
41394106 (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
41404107 (yyval.TypeWithAttrsList)->push_back((yyvsp[(1) - (1)].TypeWithAttrs));
41434110 break;
41444111
41454112 case 157:
4146 #line 1484 "/llvm/lib/AsmParser/llvmAsmParser.y"
4113 #line 1438 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
41474114 {
41484115 ((yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList))->push_back((yyvsp[(3) - (3)].TypeWithAttrs));
41494116 CHECK_FOR_ERROR
41514118 break;
41524119
41534120 case 159:
4154 #line 1492 "/llvm/lib/AsmParser/llvmAsmParser.y"
4121 #line 1446 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
41554122 {
41564123 (yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList);
41574124 TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
41624129 break;
41634130
41644131 case 160:
4165 #line 1499 "/llvm/lib/AsmParser/llvmAsmParser.y"
4132 #line 1453 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
41664133 {
41674134 (yyval.TypeWithAttrsList) = new TypeWithAttrsList;
41684135 TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
41734140 break;
41744141
41754142 case 161:
4176 #line 1506 "/llvm/lib/AsmParser/llvmAsmParser.y"
4143 #line 1460 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
41774144 {
41784145 (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
41794146 CHECK_FOR_ERROR
41814148 break;
41824149
41834150 case 162:
4184 #line 1514 "/llvm/lib/AsmParser/llvmAsmParser.y"
4151 #line 1468 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
41854152 {
41864153 (yyval.TypeList) = new std::list();
41874154 (yyval.TypeList)->push_back(*(yyvsp[(1) - (1)].TypeVal));
41914158 break;
41924159
41934160 case 163:
4194 #line 1520 "/llvm/lib/AsmParser/llvmAsmParser.y"
4161 #line 1474 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
41954162 {
41964163 ((yyval.TypeList)=(yyvsp[(1) - (3)].TypeList))->push_back(*(yyvsp[(3) - (3)].TypeVal));
41974164 delete (yyvsp[(3) - (3)].TypeVal);
42004167 break;
42014168
42024169 case 164:
4203 #line 1532 "/llvm/lib/AsmParser/llvmAsmParser.y"
4170 #line 1486 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
42044171 { // Nonempty unsized arr
42054172 if (!UpRefs.empty())
42064173 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (4)].TypeVal))->getDescription());
42324199 break;
42334200
42344201 case 165:
4235 #line 1560 "/llvm/lib/AsmParser/llvmAsmParser.y"
4202 #line 1514 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
42364203 {
42374204 if (!UpRefs.empty())
42384205 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
42524219 break;
42534220
42544221 case 166:
4255 #line 1576 "/llvm/lib/AsmParser/llvmAsmParser.y"
4222 #line 1530 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
42564223 {
42574224 if (!UpRefs.empty())
42584225 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
42834250 break;
42844251
42854252 case 167:
4286 #line 1603 "/llvm/lib/AsmParser/llvmAsmParser.y"
4253 #line 1557 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
42874254 { // Nonempty unsized arr
42884255 if (!UpRefs.empty())
42894256 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (4)].TypeVal))->getDescription());
43154282 break;
43164283
43174284 case 168:
4318 #line 1631 "/llvm/lib/AsmParser/llvmAsmParser.y"
4285 #line 1585 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
43194286 {
43204287 const StructType *STy = dyn_cast((yyvsp[(1) - (4)].TypeVal)->get());
43214288 if (STy == 0)
43454312 break;
43464313
43474314 case 169:
4348 #line 1657 "/llvm/lib/AsmParser/llvmAsmParser.y"
4315 #line 1611 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
43494316 {
43504317 if (!UpRefs.empty())
43514318 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
43694336 break;
43704337
43714338 case 170:
4372 #line 1677 "/llvm/lib/AsmParser/llvmAsmParser.y"
4339 #line 1631 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
43734340 {
43744341 const StructType *STy = dyn_cast((yyvsp[(1) - (6)].TypeVal)->get());
43754342 if (STy == 0)
43994366 break;
44004367
44014368 case 171:
4402 #line 1703 "/llvm/lib/AsmParser/llvmAsmParser.y"
4369 #line 1657 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
44034370 {
44044371 if (!UpRefs.empty())
44054372 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (5)].TypeVal))->getDescription());
44234390 break;
44244391
44254392 case 172:
4426 #line 1723 "/llvm/lib/AsmParser/llvmAsmParser.y"
4393 #line 1677 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
44274394 {
44284395 if (!UpRefs.empty())
44294396 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
44394406 break;
44404407
44414408 case 173:
4442 #line 1735 "/llvm/lib/AsmParser/llvmAsmParser.y"
4409 #line 1689 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
44434410 {
44444411 if (!UpRefs.empty())
44454412 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
44504417 break;
44514418
44524419 case 174:
4453 #line 1742 "/llvm/lib/AsmParser/llvmAsmParser.y"
4420 #line 1696 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
44544421 {
44554422 if (!UpRefs.empty())
44564423 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
45204487 break;
45214488
45224489 case 175:
4523 #line 1808 "/llvm/lib/AsmParser/llvmAsmParser.y"
4490 #line 1762 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
45244491 {
45254492 if (!UpRefs.empty())
45264493 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
45344501 break;
45354502
45364503 case 176:
4537 #line 1818 "/llvm/lib/AsmParser/llvmAsmParser.y"
4504 #line 1772 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
45384505 {
45394506 if (!UpRefs.empty())
45404507 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
45484515 break;
45494516
45504517 case 177:
4551 #line 1828 "/llvm/lib/AsmParser/llvmAsmParser.y"
4518 #line 1782 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
45524519 { // integral constants
45534520 if (!ConstantInt::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].SInt64Val)))
45544521 GEN_ERROR("Constant value doesn't fit in type");
45584525 break;
45594526
45604527 case 178:
4561 #line 1834 "/llvm/lib/AsmParser/llvmAsmParser.y"
4528 #line 1788 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
45624529 { // arbitrary precision integer constants
45634530 uint32_t BitWidth = cast((yyvsp[(1) - (2)].PrimType))->getBitWidth();
45644531 if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > BitWidth) {
45724539 break;
45734540
45744541 case 179:
4575 #line 1844 "/llvm/lib/AsmParser/llvmAsmParser.y"
4542 #line 1798 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
45764543 { // integral constants
45774544 if (!ConstantInt::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].UInt64Val)))
45784545 GEN_ERROR("Constant value doesn't fit in type");
45824549 break;
45834550
45844551 case 180:
4585 #line 1850 "/llvm/lib/AsmParser/llvmAsmParser.y"
4552 #line 1804 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
45864553 { // arbitrary precision integer constants
45874554 uint32_t BitWidth = cast((yyvsp[(1) - (2)].PrimType))->getBitWidth();
45884555 if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > BitWidth) {
45964563 break;
45974564
45984565 case 181:
4599 #line 1860 "/llvm/lib/AsmParser/llvmAsmParser.y"
4566 #line 1814 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
46004567 { // Boolean constants
46014568 assert(cast((yyvsp[(1) - (2)].PrimType))->getBitWidth() == 1 && "Not Bool?");
46024569 (yyval.ConstVal) = ConstantInt::getTrue();
46054572 break;
46064573
46074574 case 182:
4608 #line 1865 "/llvm/lib/AsmParser/llvmAsmParser.y"
4575 #line 1819 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
46094576 { // Boolean constants
46104577 assert(cast((yyvsp[(1) - (2)].PrimType))->getBitWidth() == 1 && "Not Bool?");
46114578 (yyval.ConstVal) = ConstantInt::getFalse();
46144581 break;
46154582
46164583 case 183:
4617 #line 1870 "/llvm/lib/AsmParser/llvmAsmParser.y"
4584 #line 1824 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
46184585 { // Floating point constants
46194586 if (!ConstantFP::isValueValidForType((yyvsp[(1) - (2)].PrimType), *(yyvsp[(2) - (2)].FPVal)))
46204587 GEN_ERROR("Floating point constant invalid for type");
46294596 break;
46304597
46314598 case 184:
4632 #line 1883 "/llvm/lib/AsmParser/llvmAsmParser.y"
4599 #line 1837 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
46334600 {
46344601 if (!UpRefs.empty())
46354602 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) - (6)].TypeVal))->getDescription());
46454612 break;
46464613
46474614 case 185:
4648 #line 1895 "/llvm/lib/AsmParser/llvmAsmParser.y"
4615 #line 1849 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
46494616 {
46504617 if (!isa((yyvsp[(3) - (5)].ConstVal)->getType()))
46514618 GEN_ERROR("GetElementPtr requires a pointer operand");
46714638 break;
46724639
46734640 case 186:
4674 #line 1917 "/llvm/lib/AsmParser/llvmAsmParser.y"
4641 #line 1871 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
46754642 {
46764643 if ((yyvsp[(3) - (8)].ConstVal)->getType() != Type::Int1Ty)
46774644 GEN_ERROR("Select condition must be of boolean type");
46834650 break;
46844651
46854652 case 187:
4686 #line 1925 "/llvm/lib/AsmParser/llvmAsmParser.y"
4653 #line 1879 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
46874654 {
46884655 if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType())
46894656 GEN_ERROR("Binary operator types must match");
46934660 break;
46944661
46954662 case 188:
4696 #line 1931 "/llvm/lib/AsmParser/llvmAsmParser.y"
4663 #line 1885 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
46974664 {
46984665 if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType())
46994666 GEN_ERROR("Logical operator types must match");
47084675 break;
47094676
47104677 case 189:
4711 #line 1942 "/llvm/lib/AsmParser/llvmAsmParser.y"
4678 #line 1896 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47124679 {
47134680 if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
47144681 GEN_ERROR("icmp operand types must match");
47174684 break;
47184685
47194686 case 190:
4720 #line 1947 "/llvm/lib/AsmParser/llvmAsmParser.y"
4687 #line 1901 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47214688 {
47224689 if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
47234690 GEN_ERROR("fcmp operand types must match");
47264693 break;
47274694
47284695 case 191:
4729 #line 1952 "/llvm/lib/AsmParser/llvmAsmParser.y"
4696 #line 1906 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47304697 {
47314698 if (!ExtractElementInst::isValidOperands((yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)))
47324699 GEN_ERROR("Invalid extractelement operands");
47364703 break;
47374704
47384705 case 192:
4739 #line 1958 "/llvm/lib/AsmParser/llvmAsmParser.y"
4706 #line 1912 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47404707 {
47414708 if (!InsertElementInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)))
47424709 GEN_ERROR("Invalid insertelement operands");
47464713 break;
47474714
47484715 case 193:
4749 #line 1964 "/llvm/lib/AsmParser/llvmAsmParser.y"
4716 #line 1918 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47504717 {
47514718 if (!ShuffleVectorInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)))
47524719 GEN_ERROR("Invalid shufflevector operands");
47564723 break;
47574724
47584725 case 194:
4759 #line 1973 "/llvm/lib/AsmParser/llvmAsmParser.y"
4726 #line 1927 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47604727 {
47614728 ((yyval.ConstVector) = (yyvsp[(1) - (3)].ConstVector))->push_back((yyvsp[(3) - (3)].ConstVal));
47624729 CHECK_FOR_ERROR
47644731 break;
47654732
47664733 case 195:
4767 #line 1977 "/llvm/lib/AsmParser/llvmAsmParser.y"
4734 #line 1931 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47684735 {
47694736 (yyval.ConstVector) = new std::vector();
47704737 (yyval.ConstVector)->push_back((yyvsp[(1) - (1)].ConstVal));
47734740 break;
47744741
47754742 case 196:
4776 #line 1985 "/llvm/lib/AsmParser/llvmAsmParser.y"
4743 #line 1939 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47774744 { (yyval.BoolVal) = false; ;}
47784745 break;
47794746
47804747 case 197:
4781 #line 1985 "/llvm/lib/AsmParser/llvmAsmParser.y"
4748 #line 1939 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47824749 { (yyval.BoolVal) = true; ;}
47834750 break;
47844751
47854752 case 198:
4786 #line 1988 "/llvm/lib/AsmParser/llvmAsmParser.y"
4753 #line 1942 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47874754 { (yyval.BoolVal) = true; ;}
47884755 break;
47894756
47904757 case 199:
4791 #line 1988 "/llvm/lib/AsmParser/llvmAsmParser.y"
4758 #line 1942 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47924759 { (yyval.BoolVal) = false; ;}
47934760 break;
47944761
47954762 case 200:
4796 #line 1991 "/llvm/lib/AsmParser/llvmAsmParser.y"
4763 #line 1945 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
47974764 {
47984765 const Type* VTy = (yyvsp[(1) - (2)].TypeVal)->get();
47994766 Value *V = getVal(VTy, (yyvsp[(2) - (2)].ValIDVal));
48094776 break;
48104777
48114778 case 201:
4812 #line 2003 "/llvm/lib/AsmParser/llvmAsmParser.y"
4779 #line 1957 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
48134780 {
48144781 Constant *Val = (yyvsp[(3) - (6)].ConstVal);
48154782 const Type *DestTy = (yyvsp[(5) - (6)].TypeVal)->get();
48254792 break;
48264793
48274794 case 202:
4828 #line 2024 "/llvm/lib/AsmParser/llvmAsmParser.y"
4795 #line 1978 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
48294796 {
48304797 (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
48314798 CurModule.ModuleDone();
48344801 break;
48354802
48364803 case 203:
4837 #line 2029 "/llvm/lib/AsmParser/llvmAsmParser.y"
4804 #line 1983 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
48384805 {
48394806 (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
48404807 CurModule.ModuleDone();
48434810 break;
48444811
48454812 case 206:
4846 #line 2042 "/llvm/lib/AsmParser/llvmAsmParser.y"
4813 #line 1996 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
48474814 { CurFun.isDeclare = false; ;}
48484815 break;
48494816
48504817 case 207:
4851 #line 2042 "/llvm/lib/AsmParser/llvmAsmParser.y"
4818 #line 1996 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
48524819 {
48534820 CurFun.FunctionDone();
48544821 CHECK_FOR_ERROR
48564823 break;
48574824
48584825 case 208:
4859 #line 2046 "/llvm/lib/AsmParser/llvmAsmParser.y"
4826 #line 2000 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
48604827 { CurFun.isDeclare = true; ;}
48614828 break;
48624829
48634830 case 209:
4864 #line 2046 "/llvm/lib/AsmParser/llvmAsmParser.y"
4831 #line 2000 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
48654832 {
48664833 CHECK_FOR_ERROR
48674834 ;}
48684835 break;
48694836
48704837 case 210:
4871 #line 2049 "/llvm/lib/AsmParser/llvmAsmParser.y"
4838 #line 2003 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
48724839 {
48734840 CHECK_FOR_ERROR
48744841 ;}
48754842 break;
48764843
48774844 case 211:
4878 #line 2052 "/llvm/lib/AsmParser/llvmAsmParser.y"
4845 #line 2006 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
48794846 {
48804847 if (!UpRefs.empty())
48814848 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (3)].TypeVal))->getDescription());
49034870 break;
49044871
49054872 case 212:
4906 #line 2076 "/llvm/lib/AsmParser/llvmAsmParser.y"
4873 #line 2030 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
49074874 {
49084875 ResolveTypeTo((yyvsp[(1) - (3)].StrVal), (yyvsp[(3) - (3)].PrimType));
49094876
49184885 break;
49194886
49204887 case 213:
4921 #line 2087 "/llvm/lib/AsmParser/llvmAsmParser.y"
4888 #line 2041 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
49224889 {
49234890 /* "Externally Visible" Linkage */
49244891 if ((yyvsp[(5) - (5)].ConstVal) == 0)
49304897 break;
49314898
49324899 case 214:
4933 #line 2094 "/llvm/lib/AsmParser/llvmAsmParser.y"
4900 #line 2048 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
49344901 {
49354902 CurGV = 0;
49364903 ;}
49374904 break;
49384905
49394906 case 215:
4940 #line 2098 "/llvm/lib/AsmParser/llvmAsmParser.y"
4907 #line 2052 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
49414908 {
49424909 if ((yyvsp[(6) - (6)].ConstVal) == 0)
49434910 GEN_ERROR("Global value initializer is not a constant");
49474914 break;
49484915
49494916 case 216:
4950 #line 2103 "/llvm/lib/AsmParser/llvmAsmParser.y"
4917 #line 2057 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
49514918 {
49524919 CurGV = 0;
49534920 ;}
49544921 break;
49554922
49564923 case 217:
4957 #line 2107 "/llvm/lib/AsmParser/llvmAsmParser.y"
4924 #line 2061 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
49584925 {
49594926 if (!UpRefs.empty())
49604927 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(6) - (6)].TypeVal))->getDescription());
49654932 break;
49664933
49674934 case 218:
4968 #line 2113 "/llvm/lib/AsmParser/llvmAsmParser.y"
4935 #line 2067 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
49694936 {
49704937 CurGV = 0;
49714938 CHECK_FOR_ERROR
49734940 break;
49744941
49754942 case 219:
4976 #line 2117 "/llvm/lib/AsmParser/llvmAsmParser.y"
4943 #line 2071 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
49774944 {
49784945 std::string Name;
49794946 if ((yyvsp[(1) - (5)].StrVal)) {
50174984 break;
50184985
50194986 case 220:
5020 #line 2157 "/llvm/lib/AsmParser/llvmAsmParser.y"
4987 #line 2111 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
50214988 {
50224989 CHECK_FOR_ERROR
50234990 ;}
50244991 break;
50254992
50264993 case 221:
5027 #line 2160 "/llvm/lib/AsmParser/llvmAsmParser.y"
4994 #line 2114 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
50284995 {
50294996 CHECK_FOR_ERROR
50304997 ;}
50314998 break;
50324999
50335000 case 222:
5034 #line 2166 "/llvm/lib/AsmParser/llvmAsmParser.y"
5001 #line 2120 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
50355002 {
50365003 const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
50375004 if (AsmSoFar.empty())
50445011 break;
50455012
50465013 case 223:
5047 #line 2176 "/llvm/lib/AsmParser/llvmAsmParser.y"
5014 #line 2130 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
50485015 {
50495016 CurModule.CurrentModule->setTargetTriple(*(yyvsp[(3) - (3)].StrVal));
50505017 delete (yyvsp[(3) - (3)].StrVal);
50525019 break;
50535020
50545021 case 224:
5055 #line 2180 "/llvm/lib/AsmParser/llvmAsmParser.y"
5022 #line 2134 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
50565023 {
50575024 CurModule.CurrentModule->setDataLayout(*(yyvsp[(3) - (3)].StrVal));
50585025 delete (yyvsp[(3) - (3)].StrVal);
50605027 break;
50615028
50625029 case 226:
5063 #line 2187 "/llvm/lib/AsmParser/llvmAsmParser.y"
5030 #line 2141 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
50645031 {
50655032 CurModule.CurrentModule->addLibrary(*(yyvsp[(3) - (3)].StrVal));
50665033 delete (yyvsp[(3) - (3)].StrVal);
50695036 break;
50705037
50715038 case 227:
5072 #line 2192 "/llvm/lib/AsmParser/llvmAsmParser.y"
5039 #line 2146 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
50735040 {
50745041 CurModule.CurrentModule->addLibrary(*(yyvsp[(1) - (1)].StrVal));
50755042 delete (yyvsp[(1) - (1)].StrVal);
50785045 break;
50795046
50805047 case 228:
5081 #line 2197 "/llvm/lib/AsmParser/llvmAsmParser.y"
5048 #line 2151 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
50825049 {
50835050 CHECK_FOR_ERROR
50845051 ;}
50855052 break;
50865053
50875054 case 229:
5088 #line 2206 "/llvm/lib/AsmParser/llvmAsmParser.y"
5055 #line 2160 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
50895056 {
50905057 if (!UpRefs.empty())
50915058 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (5)].TypeVal))->getDescription());
50995066 break;
51005067
51015068 case 230:
5102 #line 2216 "/llvm/lib/AsmParser/llvmAsmParser.y"
5069 #line 2170 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
51035070 {
51045071 if (!UpRefs.empty())
51055072 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
51135080 break;
51145081
51155082 case 231:
5116 #line 2227 "/llvm/lib/AsmParser/llvmAsmParser.y"
5083 #line 2181 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
51175084 {
51185085 (yyval.ArgList) = (yyvsp[(1) - (1)].ArgList);
51195086 CHECK_FOR_ERROR
51215088 break;
51225089
51235090 case 232:
5124 #line 2231 "/llvm/lib/AsmParser/llvmAsmParser.y"
5091 #line 2185 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
51255092 {
51265093 (yyval.ArgList) = (yyvsp[(1) - (3)].ArgList);
51275094 struct ArgListEntry E;
51345101 break;
51355102
51365103 case 233:
5137 #line 2240 "/llvm/lib/AsmParser/llvmAsmParser.y"
5104 #line 2194 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
51385105 {
51395106 (yyval.ArgList) = new ArgListType;
51405107 struct ArgListEntry E;
51475114 break;
51485115
51495116 case 234:
5150 #line 2249 "/llvm/lib/AsmParser/llvmAsmParser.y"
5117 #line 2203 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
51515118 {
51525119 (yyval.ArgList) = 0;
51535120 CHECK_FOR_ERROR
51555122 break;
51565123
51575124 case 235:
5158 #line 2255 "/llvm/lib/AsmParser/llvmAsmParser.y"
5125 #line 2209 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
51595126 {
51605127 std::string FunctionName(*(yyvsp[(3) - (9)].StrVal));
51615128 delete (yyvsp[(3) - (9)].StrVal); // Free strdup'd memory!
51685135 std::vector ParamTypeList;
51695136 ParamAttrsVector Attrs;
51705137 if ((yyvsp[(7) - (9)].ParamAttrs) != ParamAttr::None) {
5171 ParamAttrsWithIndex PAWI; PAWI.index = 0; PAWI.attrs = (yyvsp[(7) - (9)].ParamAttrs);
5138 ParamAttrsWithIndex PAWI;
5139 PAWI.index = 0;
5140 PAWI.attrs = (yyvsp[(7) - (9)].ParamAttrs);
51725141 Attrs.push_back(PAWI);
51735142 }
51745143 if ((yyvsp[(5) - (9)].ArgList)) { // If there are arguments...
51805149 ParamTypeList.push_back(Ty);
51815150 if (Ty != Type::VoidTy)
51825151 if (I->Attrs != ParamAttr::None) {
5183 ParamAttrsWithIndex PAWI; PAWI.index = index; PAWI.attrs = I->Attrs;
5152 ParamAttrsWithIndex PAWI;
5153 PAWI.index = index;
5154 PAWI.attrs = I->Attrs;
51845155 Attrs.push_back(PAWI);
51855156 }
51865157 }
51935164 if (!Attrs.empty())
51945165 PAL = ParamAttrsList::get(Attrs);
51955166
5196 FunctionType *FT = FunctionType::get(*(yyvsp[(2) - (9)].TypeVal), ParamTypeList, isVarArg, PAL);
5167 FunctionType *FT = FunctionType::get(*(yyvsp[(2) - (9)].TypeVal), ParamTypeList, isVarArg);
51975168 const PointerType *PFT = PointerType::get(FT);
51985169 delete (yyvsp[(2) - (9)].TypeVal);
51995170
52105181 // Move the function to the end of the list, from whereever it was
52115182 // previously inserted.
52125183 Fn = cast(FWRef);
5184 assert(!Fn->getParamAttrs() && "Forward reference has parameter attributes!");
52135185 CurModule.CurrentModule->getFunctionList().remove(Fn);
52145186 CurModule.CurrentModule->getFunctionList().push_back(Fn);
52155187 } else if (!FunctionName.empty() && // Merge with an earlier prototype?
52165188 (Fn = CurModule.CurrentModule->getFunction(FunctionName))) {
5217 if (Fn->getFunctionType() != FT) {
5189 if (Fn->getFunctionType() != FT ) {
52185190 // The existing function doesn't have the same type. This is an overload
52195191 // error.
5192 GEN_ERROR("Overload of function '" + FunctionName + "' not permitted.");
5193 } else if (Fn->getParamAttrs() != PAL) {
5194 // The existing function doesn't have the same parameter attributes.
5195 // This is an overload error.
52205196 GEN_ERROR("Overload of function '" + FunctionName + "' not permitted.");
52215197 } else if (!CurFun.isDeclare && !Fn->isDeclaration()) {
52225198 // Neither the existing or the current function is a declaration and they
52235199 // have the same name and same type. Clearly this is a redefinition.
52245200 GEN_ERROR("Redefinition of function '" + FunctionName + "'");
5225 } if (Fn->isDeclaration()) {
5201 } else if (Fn->isDeclaration()) {
52265202 // Make sure to strip off any argument names so we can't get conflicts.
52275203 for (Function::arg_iterator AI = Fn->arg_begin(), AE = Fn->arg_end();
52285204 AI != AE; ++AI)
52315207 } else { // Not already defined?
52325208 Fn = new Function(FT, GlobalValue::ExternalWeakLinkage, FunctionName,
52335209 CurModule.CurrentModule);
5234
52355210 InsertValue(Fn, CurModule.Values);
52365211 }
52375212
52455220 Fn->setVisibility(CurFun.Visibility);
52465221 }
52475222 Fn->setCallingConv((yyvsp[(1) - (9)].UIntVal));
5223 Fn->setParamAttrs(PAL);
52485224 Fn->setAlignment((yyvsp[(9) - (9)].UIntVal));
52495225 if ((yyvsp[(8) - (9)].StrVal)) {
52505226 Fn->setSection(*(yyvsp[(8) - (9)].StrVal));
52785254 break;
52795255
52805256 case 238:
5281 #line 2377 "/llvm/lib/AsmParser/llvmAsmParser.y"
5257 #line 2340 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
52825258 {
52835259 (yyval.FunctionVal) = CurFun.CurrentFunction;
52845260
52905266 break;
52915267
52925268 case 241:
5293 #line 2388 "/llvm/lib/AsmParser/llvmAsmParser.y"
5269 #line 2351 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
52945270 {
52955271 (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
52965272 CHECK_FOR_ERROR
52985274 break;
52995275
53005276 case 242:
5301 #line 2393 "/llvm/lib/AsmParser/llvmAsmParser.y"
5277 #line 2356 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53025278 {
53035279 CurFun.CurrentFunction->setLinkage((yyvsp[(1) - (3)].Linkage));
53045280 CurFun.CurrentFunction->setVisibility((yyvsp[(2) - (3)].Visibility));
53095285 break;
53105286
53115287 case 243:
5312 #line 2405 "/llvm/lib/AsmParser/llvmAsmParser.y"
5288 #line 2368 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53135289 {
53145290 (yyval.BoolVal) = false;
53155291 CHECK_FOR_ERROR
53175293 break;
53185294
53195295 case 244:
5320 #line 2409 "/llvm/lib/AsmParser/llvmAsmParser.y"
5296 #line 2372 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53215297 {
53225298 (yyval.BoolVal) = true;
53235299 CHECK_FOR_ERROR
53255301 break;
53265302
53275303 case 245:
5328 #line 2414 "/llvm/lib/AsmParser/llvmAsmParser.y"
5304 #line 2377 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53295305 { // A reference to a direct constant
53305306 (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].SInt64Val));
53315307 CHECK_FOR_ERROR
53335309 break;
53345310
53355311 case 246:
5336 #line 2418 "/llvm/lib/AsmParser/llvmAsmParser.y"
5312 #line 2381 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53375313 {
53385314 (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].UInt64Val));
53395315 CHECK_FOR_ERROR
53415317 break;
53425318
53435319 case 247:
5344 #line 2422 "/llvm/lib/AsmParser/llvmAsmParser.y"
5320 #line 2385 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53455321 { // Perhaps it's an FP constant?
53465322 (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].FPVal));
53475323 CHECK_FOR_ERROR
53495325 break;
53505326
53515327 case 248:
5352 #line 2426 "/llvm/lib/AsmParser/llvmAsmParser.y"
5328 #line 2389 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53535329 {
53545330 (yyval.ValIDVal) = ValID::create(ConstantInt::getTrue());
53555331 CHECK_FOR_ERROR
53575333 break;
53585334
53595335 case 249:
5360 #line 2430 "/llvm/lib/AsmParser/llvmAsmParser.y"
5336 #line 2393 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53615337 {
53625338 (yyval.ValIDVal) = ValID::create(ConstantInt::getFalse());
53635339 CHECK_FOR_ERROR
53655341 break;
53665342
53675343 case 250:
5368 #line 2434 "/llvm/lib/AsmParser/llvmAsmParser.y"
5344 #line 2397 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53695345 {
53705346 (yyval.ValIDVal) = ValID::createNull();
53715347 CHECK_FOR_ERROR
53735349 break;
53745350
53755351 case 251:
5376 #line 2438 "/llvm/lib/AsmParser/llvmAsmParser.y"
5352 #line 2401 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53775353 {
53785354 (yyval.ValIDVal) = ValID::createUndef();
53795355 CHECK_FOR_ERROR
53815357 break;
53825358
53835359 case 252:
5384 #line 2442 "/llvm/lib/AsmParser/llvmAsmParser.y"
5360 #line 2405 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53855361 { // A vector zero constant.
53865362 (yyval.ValIDVal) = ValID::createZeroInit();
53875363 CHECK_FOR_ERROR
53895365 break;
53905366
53915367 case 253:
5392 #line 2446 "/llvm/lib/AsmParser/llvmAsmParser.y"
5368 #line 2409 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
53935369 { // Nonempty unsized packed vector
53945370 const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType();
53955371 int NumElements = (yyvsp[(2) - (3)].ConstVector)->size();
54185394 break;
54195395
54205396 case 254:
5421 #line 2471 "/llvm/lib/AsmParser/llvmAsmParser.y"
5397 #line 2434 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
54225398 {
54235399 (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].ConstVal));
54245400 CHECK_FOR_ERROR
54265402 break;
54275403
54285404 case 255:
5429 #line 2475 "/llvm/lib/AsmParser/llvmAsmParser.y"
5405 #line 2438 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
54305406 {
54315407 (yyval.ValIDVal) = ValID::createInlineAsm(*(yyvsp[(3) - (5)].StrVal), *(yyvsp[(5) - (5)].StrVal), (yyvsp[(2) - (5)].BoolVal));
54325408 delete (yyvsp[(3) - (5)].StrVal);
54365412 break;
54375413
54385414 case 256:
5439 #line 2485 "/llvm/lib/AsmParser/llvmAsmParser.y"
5415 #line 2448 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
54405416 { // Is it an integer reference...?
54415417 (yyval.ValIDVal) = ValID::createLocalID((yyvsp[(1) - (1)].UIntVal));
54425418 CHECK_FOR_ERROR
54445420 break;
54455421
54465422 case 257:
5447 #line 2489 "/llvm/lib/AsmParser/llvmAsmParser.y"
5423 #line 2452 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
54485424 {
54495425 (yyval.ValIDVal) = ValID::createGlobalID((yyvsp[(1) - (1)].UIntVal));
54505426 CHECK_FOR_ERROR
54525428 break;
54535429
54545430 case 258:
5455 #line 2493 "/llvm/lib/AsmParser/llvmAsmParser.y"
5431 #line 2456 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
54565432 { // Is it a named reference...?
54575433 (yyval.ValIDVal) = ValID::createLocalName(*(yyvsp[(1) - (1)].StrVal));
54585434 delete (yyvsp[(1) - (1)].StrVal);
54615437 break;
54625438
54635439 case 259:
5464 #line 2498 "/llvm/lib/AsmParser/llvmAsmParser.y"
5440 #line 2461 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
54655441 { // Is it a named reference...?
54665442 (yyval.ValIDVal) = ValID::createGlobalName(*(yyvsp[(1) - (1)].StrVal));
54675443 delete (yyvsp[(1) - (1)].StrVal);
54705446 break;
54715447
54725448 case 262:
5473 #line 2511 "/llvm/lib/AsmParser/llvmAsmParser.y"
5449 #line 2474 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
54745450 {
54755451 if (!UpRefs.empty())
54765452 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
54815457 break;
54825458
54835459 case 263:
5484 #line 2520 "/llvm/lib/AsmParser/llvmAsmParser.y"
5460 #line 2483 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
54855461 {
54865462 (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
54875463 CHECK_FOR_ERROR
54895465 break;
54905466
54915467 case 264:
5492 #line 2524 "/llvm/lib/AsmParser/llvmAsmParser.y"
5468 #line 2487 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
54935469 { // Do not allow functions with 0 basic blocks
54945470 (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
54955471 CHECK_FOR_ERROR
54975473 break;
54985474
54995475 case 265:
5500 #line 2533 "/llvm/lib/AsmParser/llvmAsmParser.y"
5476 #line 2496 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
55015477 {
55025478 setValueName((yyvsp[(3) - (3)].TermInstVal), (yyvsp[(2) - (3)].StrVal));
55035479 CHECK_FOR_ERROR
55095485 break;
55105486
55115487 case 266:
5512 #line 2542 "/llvm/lib/AsmParser/llvmAsmParser.y"
5488 #line 2505 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
55135489 {
55145490 if (CastInst *CI1 = dyn_cast((yyvsp[(2) - (2)].InstVal)))
55155491 if (CastInst *CI2 = dyn_cast(CI1->getOperand(0)))
55225498 break;
55235499
55245500 case 267: