diff options
Diffstat (limited to 'lib/AsmParser/llvmAsmParser.cpp')
-rw-r--r-- | lib/AsmParser/llvmAsmParser.cpp | 1797 |
1 files changed, 928 insertions, 869 deletions
diff --git a/lib/AsmParser/llvmAsmParser.cpp b/lib/AsmParser/llvmAsmParser.cpp index b9401b6..305bdc6 100644 --- a/lib/AsmParser/llvmAsmParser.cpp +++ b/lib/AsmParser/llvmAsmParser.cpp @@ -42,67 +42,68 @@ #define DECLARE 285 #define GLOBAL 286 #define CONSTANT 287 -#define VOLATILE 288 -#define TO 289 -#define DOTDOTDOT 290 -#define NULL_TOK 291 -#define UNDEF 292 -#define CONST 293 -#define INTERNAL 294 -#define LINKONCE 295 -#define WEAK 296 -#define APPENDING 297 -#define OPAQUE 298 -#define NOT 299 -#define EXTERNAL 300 -#define TARGET 301 -#define TRIPLE 302 -#define ENDIAN 303 -#define POINTERSIZE 304 -#define LITTLE 305 -#define BIG 306 -#define ALIGN 307 -#define DEPLIBS 308 -#define CALL 309 -#define TAIL 310 -#define CC_TOK 311 -#define CCC_TOK 312 -#define FASTCC_TOK 313 -#define COLDCC_TOK 314 -#define RET 315 -#define BR 316 -#define SWITCH 317 -#define INVOKE 318 -#define UNWIND 319 -#define UNREACHABLE 320 -#define ADD 321 -#define SUB 322 -#define MUL 323 -#define DIV 324 -#define REM 325 -#define AND 326 -#define OR 327 -#define XOR 328 -#define SETLE 329 -#define SETGE 330 -#define SETLT 331 -#define SETGT 332 -#define SETEQ 333 -#define SETNE 334 -#define MALLOC 335 -#define ALLOCA 336 -#define FREE 337 -#define LOAD 338 -#define STORE 339 -#define GETELEMENTPTR 340 -#define PHI_TOK 341 -#define CAST 342 -#define SELECT 343 -#define SHL 344 -#define SHR 345 -#define VAARG 346 -#define VAARG_old 347 -#define VANEXT_old 348 +#define SECTION 288 +#define VOLATILE 289 +#define TO 290 +#define DOTDOTDOT 291 +#define NULL_TOK 292 +#define UNDEF 293 +#define CONST 294 +#define INTERNAL 295 +#define LINKONCE 296 +#define WEAK 297 +#define APPENDING 298 +#define OPAQUE 299 +#define NOT 300 +#define EXTERNAL 301 +#define TARGET 302 +#define TRIPLE 303 +#define ENDIAN 304 +#define POINTERSIZE 305 +#define LITTLE 306 +#define BIG 307 +#define ALIGN 308 +#define DEPLIBS 309 +#define CALL 310 +#define TAIL 311 +#define CC_TOK 312 +#define CCC_TOK 313 +#define FASTCC_TOK 314 +#define COLDCC_TOK 315 +#define RET 316 +#define BR 317 +#define SWITCH 318 +#define INVOKE 319 +#define UNWIND 320 +#define UNREACHABLE 321 +#define ADD 322 +#define SUB 323 +#define MUL 324 +#define DIV 325 +#define REM 326 +#define AND 327 +#define OR 328 +#define XOR 329 +#define SETLE 330 +#define SETGE 331 +#define SETLT 332 +#define SETGT 333 +#define SETEQ 334 +#define SETNE 335 +#define MALLOC 336 +#define ALLOCA 337 +#define FREE 338 +#define LOAD 339 +#define STORE 340 +#define GETELEMENTPTR 341 +#define PHI_TOK 342 +#define CAST 343 +#define SELECT 344 +#define SHL 345 +#define SHR 346 +#define VAARG 347 +#define VAARG_old 348 +#define VANEXT_old 349 #line 14 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" @@ -611,7 +612,8 @@ static void setValueName(Value *V, char *NameStr) { /// this is a declaration, otherwise it is a definition. static void ParseGlobalVariable(char *NameStr,GlobalValue::LinkageTypes Linkage, bool isConstantGlobal, const Type *Ty, - Constant *Initializer, unsigned Align) { + Constant *Initializer, char *Section, + unsigned Align) { if (Align != 0 && !isPowerOf2_32(Align)) ThrowException("Global alignment must be a power of two!"); @@ -645,6 +647,10 @@ static void ParseGlobalVariable(char *NameStr,GlobalValue::LinkageTypes Linkage, GV->setLinkage(Linkage); GV->setConstant(isConstantGlobal); GV->setAlignment(Align); + if (Section) { + free(Section); + GV->setSection(Section); + } InsertValue(GV, CurModule.Values); return; } @@ -672,6 +678,10 @@ static void ParseGlobalVariable(char *NameStr,GlobalValue::LinkageTypes Linkage, EGV->setConstant(true); EGV->setLinkage(Linkage); EGV->setAlignment(Align); + if (Section) { + free(Section); + EGV->setSection(Section); + } return; } @@ -685,6 +695,10 @@ static void ParseGlobalVariable(char *NameStr,GlobalValue::LinkageTypes Linkage, new GlobalVariable(Ty, isConstantGlobal, Linkage, Initializer, Name, CurModule.CurrentModule); GV->setAlignment(Align); + if (Section) { + free(Section); + GV->setSection(Section); + } InsertValue(GV, CurModule.Values); } @@ -963,7 +977,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) { } -#line 873 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 886 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" typedef union { llvm::Module *ModuleVal; llvm::Function *FunctionVal; @@ -1013,26 +1027,26 @@ typedef union { -#define YYFINAL 431 +#define YYFINAL 439 #define YYFLAG -32768 -#define YYNTBASE 109 +#define YYNTBASE 110 -#define YYTRANSLATE(x) ((unsigned)(x) <= 348 ? yytranslate[x] : 172) +#define YYTRANSLATE(x) ((unsigned)(x) <= 349 ? yytranslate[x] : 176) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 98, - 99, 107, 2, 96, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 103, - 95, 104, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 99, + 100, 108, 2, 97, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 104, + 96, 105, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 100, 97, 102, 2, 2, 2, 2, 2, 108, 2, + 101, 98, 103, 2, 2, 2, 2, 2, 109, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 101, - 2, 2, 105, 2, 106, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 102, + 2, 2, 106, 2, 107, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1054,7 +1068,7 @@ static const char yytranslate[] = { 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94 + 87, 88, 89, 90, 91, 92, 93, 94, 95 }; #if YYDEBUG != 0 @@ -1063,124 +1077,126 @@ static const short yyprhs[] = { 0, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 67, 68, 70, 72, 74, 76, 77, - 78, 80, 82, 84, 87, 88, 91, 92, 96, 98, - 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, + 78, 80, 82, 84, 87, 88, 91, 92, 96, 99, + 100, 102, 103, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, - 141, 146, 152, 158, 162, 165, 168, 170, 174, 176, - 180, 182, 183, 188, 192, 196, 201, 206, 210, 213, - 216, 219, 222, 225, 228, 231, 234, 237, 240, 247, - 253, 262, 269, 276, 283, 290, 294, 296, 298, 300, - 302, 305, 308, 311, 313, 318, 321, 328, 335, 339, - 344, 345, 347, 349, 353, 357, 361, 365, 369, 371, - 372, 374, 376, 378, 379, 382, 386, 388, 390, 394, - 396, 397, 405, 407, 409, 413, 415, 417, 420, 421, - 425, 427, 429, 431, 433, 435, 437, 439, 443, 445, - 447, 449, 451, 453, 456, 459, 462, 466, 469, 470, - 472, 475, 478, 482, 492, 502, 511, 525, 527, 529, - 536, 542, 545, 552, 560, 562, 566, 568, 569, 572, - 574, 580, 586, 592, 595, 600, 605, 612, 617, 622, - 627, 630, 638, 640, 643, 644, 646, 647, 651, 658, - 662, 669, 672, 677, 684 + 140, 142, 144, 146, 148, 151, 156, 162, 168, 172, + 175, 178, 180, 184, 186, 190, 192, 193, 198, 202, + 206, 211, 216, 220, 223, 226, 229, 232, 235, 238, + 241, 244, 247, 250, 257, 263, 272, 279, 286, 293, + 300, 304, 306, 308, 310, 312, 315, 318, 321, 323, + 328, 331, 339, 347, 351, 356, 357, 359, 361, 365, + 369, 373, 377, 381, 383, 384, 386, 388, 390, 391, + 394, 398, 400, 402, 406, 408, 409, 418, 420, 422, + 426, 428, 430, 433, 434, 438, 440, 442, 444, 446, + 448, 450, 452, 456, 458, 460, 462, 464, 466, 469, + 472, 475, 479, 482, 483, 485, 488, 491, 495, 505, + 515, 524, 538, 540, 542, 549, 555, 558, 565, 573, + 575, 579, 581, 582, 585, 587, 593, 599, 605, 608, + 613, 618, 625, 630, 635, 640, 643, 651, 653, 656, + 657, 659, 660, 664, 671, 675, 682, 685, 690, 697 }; static const short yyrhs[] = { 5, - 0, 6, 0, 3, 0, 4, 0, 67, 0, 68, - 0, 69, 0, 70, 0, 71, 0, 72, 0, 73, - 0, 74, 0, 75, 0, 76, 0, 77, 0, 78, - 0, 79, 0, 80, 0, 90, 0, 91, 0, 16, + 0, 6, 0, 3, 0, 4, 0, 68, 0, 69, + 0, 70, 0, 71, 0, 72, 0, 73, 0, 74, + 0, 75, 0, 76, 0, 77, 0, 78, 0, 79, + 0, 80, 0, 81, 0, 91, 0, 92, 0, 16, 0, 14, 0, 12, 0, 10, 0, 17, 0, 15, - 0, 13, 0, 11, 0, 115, 0, 116, 0, 18, - 0, 19, 0, 142, 95, 0, 0, 40, 0, 41, - 0, 42, 0, 43, 0, 0, 0, 58, 0, 59, - 0, 60, 0, 57, 4, 0, 0, 53, 4, 0, - 0, 96, 53, 4, 0, 126, 0, 8, 0, 128, - 0, 8, 0, 128, 0, 9, 0, 10, 0, 11, + 0, 13, 0, 11, 0, 116, 0, 117, 0, 18, + 0, 19, 0, 146, 96, 0, 0, 41, 0, 42, + 0, 43, 0, 44, 0, 0, 0, 59, 0, 60, + 0, 61, 0, 58, 4, 0, 0, 54, 4, 0, + 0, 97, 54, 4, 0, 34, 24, 0, 0, 125, + 0, 0, 97, 125, 0, 130, 0, 8, 0, 132, + 0, 8, 0, 132, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, - 0, 44, 0, 127, 0, 155, 0, 97, 4, 0, - 125, 98, 130, 99, 0, 100, 4, 101, 128, 102, - 0, 103, 4, 101, 128, 104, 0, 105, 129, 106, - 0, 105, 106, 0, 128, 107, 0, 128, 0, 129, - 96, 128, 0, 129, 0, 129, 96, 36, 0, 36, - 0, 0, 126, 100, 133, 102, 0, 126, 100, 102, - 0, 126, 108, 24, 0, 126, 103, 133, 104, 0, - 126, 105, 133, 106, 0, 126, 105, 106, 0, 126, - 37, 0, 126, 38, 0, 126, 155, 0, 126, 132, - 0, 126, 26, 0, 115, 110, 0, 116, 4, 0, - 9, 27, 0, 9, 28, 0, 118, 7, 0, 88, - 98, 131, 35, 126, 99, 0, 86, 98, 131, 169, - 99, 0, 89, 98, 131, 96, 131, 96, 131, 99, - 0, 111, 98, 131, 96, 131, 99, 0, 112, 98, - 131, 96, 131, 99, 0, 113, 98, 131, 96, 131, - 99, 0, 114, 98, 131, 96, 131, 99, 0, 133, - 96, 131, 0, 131, 0, 32, 0, 33, 0, 136, - 0, 136, 151, 0, 136, 152, 0, 136, 25, 0, - 137, 0, 137, 119, 20, 124, 0, 137, 152, 0, - 137, 119, 120, 134, 131, 123, 0, 137, 119, 46, - 134, 126, 123, 0, 137, 47, 139, 0, 137, 54, - 95, 140, 0, 0, 52, 0, 51, 0, 49, 95, - 138, 0, 50, 95, 4, 0, 48, 95, 24, 0, - 100, 141, 102, 0, 141, 96, 24, 0, 24, 0, - 0, 22, 0, 24, 0, 142, 0, 0, 126, 143, - 0, 145, 96, 144, 0, 144, 0, 145, 0, 145, - 96, 36, 0, 36, 0, 0, 121, 124, 142, 98, - 146, 99, 122, 0, 29, 0, 105, 0, 120, 147, - 148, 0, 30, 0, 106, 0, 158, 150, 0, 0, - 31, 153, 147, 0, 3, 0, 4, 0, 7, 0, - 27, 0, 28, 0, 37, 0, 38, 0, 103, 133, - 104, 0, 132, 0, 109, 0, 142, 0, 155, 0, - 154, 0, 126, 156, 0, 158, 159, 0, 149, 159, - 0, 160, 119, 161, 0, 160, 163, 0, 0, 23, - 0, 61, 157, 0, 61, 8, 0, 62, 21, 156, - 0, 62, 9, 156, 96, 21, 156, 96, 21, 156, - 0, 63, 117, 156, 96, 21, 156, 100, 162, 102, - 0, 63, 117, 156, 96, 21, 156, 100, 102, 0, - 64, 121, 124, 156, 98, 166, 99, 35, 21, 156, - 65, 21, 156, 0, 65, 0, 66, 0, 162, 117, - 154, 96, 21, 156, 0, 117, 154, 96, 21, 156, - 0, 119, 168, 0, 126, 100, 156, 96, 156, 102, - 0, 164, 96, 100, 156, 96, 156, 102, 0, 157, - 0, 165, 96, 157, 0, 165, 0, 0, 56, 55, - 0, 55, 0, 111, 126, 156, 96, 156, 0, 112, - 126, 156, 96, 156, 0, 113, 126, 156, 96, 156, - 0, 45, 157, 0, 114, 157, 96, 157, 0, 88, - 157, 35, 126, 0, 89, 157, 96, 157, 96, 157, - 0, 92, 157, 96, 126, 0, 93, 157, 96, 126, - 0, 94, 157, 96, 126, 0, 87, 164, 0, 167, - 121, 124, 156, 98, 166, 99, 0, 171, 0, 96, - 165, 0, 0, 34, 0, 0, 81, 126, 123, 0, - 81, 126, 96, 15, 156, 123, 0, 82, 126, 123, - 0, 82, 126, 96, 15, 156, 123, 0, 83, 157, - 0, 170, 84, 126, 156, 0, 170, 85, 157, 96, - 126, 156, 0, 86, 126, 156, 169, 0 + 0, 45, 0, 131, 0, 159, 0, 98, 4, 0, + 129, 99, 134, 100, 0, 101, 4, 102, 132, 103, + 0, 104, 4, 102, 132, 105, 0, 106, 133, 107, + 0, 106, 107, 0, 132, 108, 0, 132, 0, 133, + 97, 132, 0, 133, 0, 133, 97, 37, 0, 37, + 0, 0, 130, 101, 137, 103, 0, 130, 101, 103, + 0, 130, 109, 24, 0, 130, 104, 137, 105, 0, + 130, 106, 137, 107, 0, 130, 106, 107, 0, 130, + 38, 0, 130, 39, 0, 130, 159, 0, 130, 136, + 0, 130, 26, 0, 116, 111, 0, 117, 4, 0, + 9, 27, 0, 9, 28, 0, 119, 7, 0, 89, + 99, 135, 36, 130, 100, 0, 87, 99, 135, 173, + 100, 0, 90, 99, 135, 97, 135, 97, 135, 100, + 0, 112, 99, 135, 97, 135, 100, 0, 113, 99, + 135, 97, 135, 100, 0, 114, 99, 135, 97, 135, + 100, 0, 115, 99, 135, 97, 135, 100, 0, 137, + 97, 135, 0, 135, 0, 32, 0, 33, 0, 140, + 0, 140, 155, 0, 140, 156, 0, 140, 25, 0, + 141, 0, 141, 120, 20, 128, 0, 141, 156, 0, + 141, 120, 121, 138, 135, 127, 124, 0, 141, 120, + 47, 138, 130, 127, 124, 0, 141, 48, 143, 0, + 141, 55, 96, 144, 0, 0, 53, 0, 52, 0, + 50, 96, 142, 0, 51, 96, 4, 0, 49, 96, + 24, 0, 101, 145, 103, 0, 145, 97, 24, 0, + 24, 0, 0, 22, 0, 24, 0, 146, 0, 0, + 130, 147, 0, 149, 97, 148, 0, 148, 0, 149, + 0, 149, 97, 37, 0, 37, 0, 0, 122, 128, + 146, 99, 150, 100, 126, 123, 0, 29, 0, 106, + 0, 121, 151, 152, 0, 30, 0, 107, 0, 162, + 154, 0, 0, 31, 157, 151, 0, 3, 0, 4, + 0, 7, 0, 27, 0, 28, 0, 38, 0, 39, + 0, 104, 137, 105, 0, 136, 0, 110, 0, 146, + 0, 159, 0, 158, 0, 130, 160, 0, 162, 163, + 0, 153, 163, 0, 164, 120, 165, 0, 164, 167, + 0, 0, 23, 0, 62, 161, 0, 62, 8, 0, + 63, 21, 160, 0, 63, 9, 160, 97, 21, 160, + 97, 21, 160, 0, 64, 118, 160, 97, 21, 160, + 101, 166, 103, 0, 64, 118, 160, 97, 21, 160, + 101, 103, 0, 65, 122, 128, 160, 99, 170, 100, + 36, 21, 160, 66, 21, 160, 0, 66, 0, 67, + 0, 166, 118, 158, 97, 21, 160, 0, 118, 158, + 97, 21, 160, 0, 120, 172, 0, 130, 101, 160, + 97, 160, 103, 0, 168, 97, 101, 160, 97, 160, + 103, 0, 161, 0, 169, 97, 161, 0, 169, 0, + 0, 57, 56, 0, 56, 0, 112, 130, 160, 97, + 160, 0, 113, 130, 160, 97, 160, 0, 114, 130, + 160, 97, 160, 0, 46, 161, 0, 115, 161, 97, + 161, 0, 89, 161, 36, 130, 0, 90, 161, 97, + 161, 97, 161, 0, 93, 161, 97, 130, 0, 94, + 161, 97, 130, 0, 95, 161, 97, 130, 0, 88, + 168, 0, 171, 122, 128, 160, 99, 170, 100, 0, + 175, 0, 97, 169, 0, 0, 35, 0, 0, 82, + 130, 124, 0, 82, 130, 97, 15, 160, 124, 0, + 83, 130, 124, 0, 83, 130, 97, 15, 160, 124, + 0, 84, 161, 0, 174, 85, 130, 160, 0, 174, + 86, 161, 97, 130, 160, 0, 87, 130, 160, 173, + 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 990, 991, 998, 999, 1008, 1008, 1008, 1008, 1008, 1009, - 1009, 1009, 1010, 1010, 1010, 1010, 1010, 1010, 1012, 1012, - 1016, 1016, 1016, 1016, 1017, 1017, 1017, 1017, 1018, 1018, - 1019, 1019, 1022, 1025, 1029, 1029, 1030, 1031, 1032, 1035, - 1035, 1036, 1037, 1038, 1047, 1047, 1049, 1049, 1059, 1059, - 1060, 1060, 1062, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1072, 1072, 1072, 1072, 1072, 1072, 1073, 1076, 1079, 1085, - 1092, 1104, 1108, 1119, 1128, 1131, 1139, 1143, 1148, 1149, - 1152, 1155, 1165, 1190, 1203, 1231, 1256, 1276, 1288, 1297, - 1301, 1360, 1366, 1374, 1379, 1384, 1387, 1390, 1397, 1407, - 1438, 1445, 1466, 1473, 1478, 1488, 1491, 1498, 1498, 1508, - 1515, 1519, 1522, 1525, 1538, 1558, 1560, 1564, 1568, 1570, - 1572, 1577, 1578, 1580, 1583, 1591, 1596, 1598, 1602, 1606, - 1614, 1614, 1615, 1615, 1617, 1623, 1628, 1634, 1637, 1642, - 1646, 1650, 1733, 1733, 1735, 1743, 1743, 1745, 1749, 1749, - 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1803, 1810, - 1813, 1818, 1818, 1824, 1828, 1831, 1839, 1848, 1852, 1862, - 1873, 1876, 1879, 1882, 1885, 1899, 1903, 1956, 1959, 1965, - 1973, 1983, 1990, 1995, 2002, 2006, 2012, 2012, 2014, 2017, - 2023, 2035, 2043, 2053, 2065, 2072, 2079, 2086, 2091, 2110, - 2132, 2146, 2203, 2209, 2211, 2215, 2218, 2224, 2231, 2238, - 2245, 2252, 2259, 2269, 2282 + 1004, 1005, 1012, 1013, 1022, 1022, 1022, 1022, 1022, 1023, + 1023, 1023, 1024, 1024, 1024, 1024, 1024, 1024, 1026, 1026, + 1030, 1030, 1030, 1030, 1031, 1031, 1031, 1031, 1032, 1032, + 1033, 1033, 1036, 1039, 1043, 1043, 1044, 1045, 1046, 1049, + 1049, 1050, 1051, 1052, 1061, 1061, 1063, 1063, 1066, 1073, + 1073, 1075, 1075, 1086, 1086, 1087, 1087, 1089, 1098, 1098, + 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, + 1099, 1100, 1103, 1106, 1112, 1119, 1131, 1135, 1146, 1155, + 1158, 1166, 1170, 1175, 1176, 1179, 1182, 1192, 1217, 1230, + 1258, 1283, 1303, 1315, 1324, 1328, 1387, 1393, 1401, 1406, + 1411, 1414, 1417, 1424, 1434, 1465, 1472, 1493, 1500, 1505, + 1515, 1518, 1525, 1525, 1535, 1542, 1546, 1549, 1552, 1565, + 1585, 1587, 1591, 1595, 1597, 1599, 1604, 1605, 1607, 1610, + 1618, 1623, 1625, 1629, 1633, 1641, 1641, 1642, 1642, 1644, + 1650, 1655, 1661, 1664, 1669, 1673, 1677, 1765, 1765, 1767, + 1775, 1775, 1777, 1781, 1781, 1790, 1793, 1796, 1799, 1802, + 1805, 1808, 1811, 1835, 1842, 1845, 1850, 1850, 1856, 1860, + 1863, 1871, 1880, 1884, 1894, 1905, 1908, 1911, 1914, 1917, + 1931, 1935, 1988, 1991, 1997, 2005, 2015, 2022, 2027, 2034, + 2038, 2044, 2044, 2046, 2049, 2055, 2067, 2075, 2085, 2097, + 2104, 2111, 2118, 2123, 2142, 2164, 2178, 2235, 2241, 2243, + 2247, 2250, 2256, 2263, 2270, 2277, 2284, 2291, 2301, 2314 }; #endif @@ -1191,51 +1207,51 @@ static const char * const yytname[] = { "$","error","$undefined.","ESINT64VAL" "EUINT64VAL","SINTVAL","UINTVAL","FPVAL","VOID","BOOL","SBYTE","UBYTE","SHORT", "USHORT","INT","UINT","LONG","ULONG","FLOAT","DOUBLE","TYPE","LABEL","VAR_ID", "LABELSTR","STRINGCONSTANT","IMPLEMENTATION","ZEROINITIALIZER","TRUETOK","FALSETOK", -"BEGINTOK","ENDTOK","DECLARE","GLOBAL","CONSTANT","VOLATILE","TO","DOTDOTDOT", -"NULL_TOK","UNDEF","CONST","INTERNAL","LINKONCE","WEAK","APPENDING","OPAQUE", -"NOT","EXTERNAL","TARGET","TRIPLE","ENDIAN","POINTERSIZE","LITTLE","BIG","ALIGN", -"DEPLIBS","CALL","TAIL","CC_TOK","CCC_TOK","FASTCC_TOK","COLDCC_TOK","RET","BR", -"SWITCH","INVOKE","UNWIND","UNREACHABLE","ADD","SUB","MUL","DIV","REM","AND", -"OR","XOR","SETLE","SETGE","SETLT","SETGT","SETEQ","SETNE","MALLOC","ALLOCA", -"FREE","LOAD","STORE","GETELEMENTPTR","PHI_TOK","CAST","SELECT","SHL","SHR", -"VAARG","VAARG_old","VANEXT_old","'='","','","'\\\\'","'('","')'","'['","'x'", -"']'","'<'","'>'","'{'","'}'","'*'","'c'","INTVAL","EINT64VAL","ArithmeticOps", +"BEGINTOK","ENDTOK","DECLARE","GLOBAL","CONSTANT","SECTION","VOLATILE","TO", +"DOTDOTDOT","NULL_TOK","UNDEF","CONST","INTERNAL","LINKONCE","WEAK","APPENDING", +"OPAQUE","NOT","EXTERNAL","TARGET","TRIPLE","ENDIAN","POINTERSIZE","LITTLE", +"BIG","ALIGN","DEPLIBS","CALL","TAIL","CC_TOK","CCC_TOK","FASTCC_TOK","COLDCC_TOK", +"RET","BR","SWITCH","INVOKE","UNWIND","UNREACHABLE","ADD","SUB","MUL","DIV", +"REM","AND","OR","XOR","SETLE","SETGE","SETLT","SETGT","SETEQ","SETNE","MALLOC", +"ALLOCA","FREE","LOAD","STORE","GETELEMENTPTR","PHI_TOK","CAST","SELECT","SHL", +"SHR","VAARG","VAARG_old","VANEXT_old","'='","','","'\\\\'","'('","')'","'['", +"'x'","']'","'<'","'>'","'{'","'}'","'*'","'c'","INTVAL","EINT64VAL","ArithmeticOps", "LogicalOps","SetCondOps","ShiftOps","SIntType","UIntType","IntType","FPType", -"OptAssign","OptLinkage","OptCallingConv","OptAlign","OptCAlign","TypesV","UpRTypesV", -"Types","PrimType","UpRTypes","TypeListI","ArgTypeListI","ConstVal","ConstExpr", -"ConstVector","GlobalType","Module","FunctionList","ConstPool","BigOrLittle", -"TargetDefinition","LibrariesDefinition","LibList","Name","OptName","ArgVal", -"ArgListH","ArgList","FunctionHeaderH","BEGIN","FunctionHeader","END","Function", -"FunctionProto","@1","ConstValueRef","SymbolicValueRef","ValueRef","ResolvedVal", -"BasicBlockList","BasicBlock","InstructionList","BBTerminatorInst","JumpTable", -"Inst","PHIList","ValueRefList","ValueRefListE","OptTailCall","InstVal","IndexList", -"OptVolatile","MemoryInst", NULL +"OptAssign","OptLinkage","OptCallingConv","OptAlign","OptCAlign","SectionString", +"OptSection","OptCSection","TypesV","UpRTypesV","Types","PrimType","UpRTypes", +"TypeListI","ArgTypeListI","ConstVal","ConstExpr","ConstVector","GlobalType", +"Module","FunctionList","ConstPool","BigOrLittle","TargetDefinition","LibrariesDefinition", +"LibList","Name","OptName","ArgVal","ArgListH","ArgList","FunctionHeaderH","BEGIN", +"FunctionHeader","END","Function","FunctionProto","@1","ConstValueRef","SymbolicValueRef", +"ValueRef","ResolvedVal","BasicBlockList","BasicBlock","InstructionList","BBTerminatorInst", +"JumpTable","Inst","PHIList","ValueRefList","ValueRefListE","OptTailCall","InstVal", +"IndexList","OptVolatile","MemoryInst", NULL }; #endif static const short yyr1[] = { 0, - 109, 109, 110, 110, 111, 111, 111, 111, 111, 112, - 112, 112, 113, 113, 113, 113, 113, 113, 114, 114, - 115, 115, 115, 115, 116, 116, 116, 116, 117, 117, - 118, 118, 119, 119, 120, 120, 120, 120, 120, 121, - 121, 121, 121, 121, 122, 122, 123, 123, 124, 124, - 125, 125, 126, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 129, 129, 130, 130, - 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 132, 132, - 132, 132, 132, 132, 132, 133, 133, 134, 134, 135, - 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, - 137, 138, 138, 139, 139, 139, 140, 141, 141, 141, - 142, 142, 143, 143, 144, 145, 145, 146, 146, 146, - 146, 147, 148, 148, 149, 150, 150, 151, 153, 152, - 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, - 155, 156, 156, 157, 158, 158, 159, 160, 160, 160, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 162, - 162, 163, 164, 164, 165, 165, 166, 166, 167, 167, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 169, 169, 170, 170, 171, 171, 171, - 171, 171, 171, 171, 171 + 110, 110, 111, 111, 112, 112, 112, 112, 112, 113, + 113, 113, 114, 114, 114, 114, 114, 114, 115, 115, + 116, 116, 116, 116, 117, 117, 117, 117, 118, 118, + 119, 119, 120, 120, 121, 121, 121, 121, 121, 122, + 122, 122, 122, 122, 123, 123, 124, 124, 125, 126, + 126, 127, 127, 128, 128, 129, 129, 130, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 133, 133, 134, 134, 134, 134, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 136, 136, 136, 136, 136, 136, 136, + 137, 137, 138, 138, 139, 140, 140, 140, 140, 141, + 141, 141, 141, 141, 141, 141, 142, 142, 143, 143, + 143, 144, 145, 145, 145, 146, 146, 147, 147, 148, + 149, 149, 150, 150, 150, 150, 151, 152, 152, 153, + 154, 154, 155, 157, 156, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 159, 159, 160, 160, 161, 162, + 162, 163, 164, 164, 164, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 166, 166, 167, 168, 168, 169, + 169, 170, 170, 171, 171, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 173, 173, + 174, 174, 175, 175, 175, 175, 175, 175, 175, 175 }; static const short yyr2[] = { 0, @@ -1243,378 +1259,392 @@ static const short yyr2[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 0, 0, - 1, 1, 1, 2, 0, 2, 0, 3, 1, 1, + 1, 1, 1, 2, 0, 2, 0, 3, 2, 0, + 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 4, 5, 5, 3, 2, 2, 1, 3, 1, 3, - 1, 0, 4, 3, 3, 4, 4, 3, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 6, 5, - 8, 6, 6, 6, 6, 3, 1, 1, 1, 1, - 2, 2, 2, 1, 4, 2, 6, 6, 3, 4, - 0, 1, 1, 3, 3, 3, 3, 3, 1, 0, - 1, 1, 1, 0, 2, 3, 1, 1, 3, 1, - 0, 7, 1, 1, 3, 1, 1, 2, 0, 3, - 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, - 1, 1, 1, 2, 2, 2, 3, 2, 0, 1, - 2, 2, 3, 9, 9, 8, 13, 1, 1, 6, - 5, 2, 6, 7, 1, 3, 1, 0, 2, 1, - 5, 5, 5, 2, 4, 4, 6, 4, 4, 4, - 2, 7, 1, 2, 0, 1, 0, 3, 6, 3, - 6, 2, 4, 6, 4 + 1, 1, 1, 1, 2, 4, 5, 5, 3, 2, + 2, 1, 3, 1, 3, 1, 0, 4, 3, 3, + 4, 4, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 6, 5, 8, 6, 6, 6, 6, + 3, 1, 1, 1, 1, 2, 2, 2, 1, 4, + 2, 7, 7, 3, 4, 0, 1, 1, 3, 3, + 3, 3, 3, 1, 0, 1, 1, 1, 0, 2, + 3, 1, 1, 3, 1, 0, 8, 1, 1, 3, + 1, 1, 2, 0, 3, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 1, 1, 1, 1, 2, 2, + 2, 3, 2, 0, 1, 2, 2, 3, 9, 9, + 8, 13, 1, 1, 6, 5, 2, 6, 7, 1, + 3, 1, 0, 2, 1, 5, 5, 5, 2, 4, + 4, 6, 4, 4, 4, 2, 7, 1, 2, 0, + 1, 0, 3, 6, 3, 6, 2, 4, 6, 4 }; -static const short yydefact[] = { 121, - 39, 114, 113, 149, 35, 36, 37, 38, 40, 169, - 111, 112, 169, 131, 132, 0, 0, 39, 0, 116, - 40, 0, 41, 42, 43, 0, 0, 170, 166, 34, - 146, 147, 148, 165, 0, 0, 0, 119, 0, 0, - 0, 0, 33, 150, 44, 1, 2, 50, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 0, 0, 0, 0, 160, 0, 0, 49, - 68, 53, 161, 69, 143, 144, 145, 207, 168, 0, - 0, 0, 130, 120, 115, 108, 109, 0, 0, 70, - 0, 0, 52, 75, 77, 0, 0, 82, 76, 206, - 0, 190, 0, 0, 0, 0, 40, 178, 179, 5, +static const short yydefact[] = { 126, + 39, 119, 118, 154, 35, 36, 37, 38, 40, 174, + 116, 117, 174, 136, 137, 0, 0, 39, 0, 121, + 40, 0, 41, 42, 43, 0, 0, 175, 171, 34, + 151, 152, 153, 170, 0, 0, 0, 124, 0, 0, + 0, 0, 33, 155, 44, 1, 2, 55, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 0, 0, 0, 0, 165, 0, 0, 54, + 73, 58, 166, 74, 148, 149, 150, 212, 173, 0, + 0, 0, 135, 125, 120, 113, 114, 0, 0, 75, + 0, 0, 57, 80, 82, 0, 0, 87, 81, 211, + 0, 195, 0, 0, 0, 0, 40, 183, 184, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, - 19, 20, 0, 0, 0, 0, 0, 0, 0, 167, - 40, 182, 0, 203, 126, 123, 122, 124, 125, 129, - 0, 47, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 0, 0, 0, 0, 47, 0, 0, - 0, 74, 141, 81, 79, 0, 0, 194, 189, 172, - 171, 0, 0, 24, 28, 23, 27, 22, 26, 21, - 25, 29, 30, 0, 0, 47, 47, 212, 0, 0, - 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 127, 0, 118, 96, 97, 3, - 4, 94, 95, 98, 93, 89, 90, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 91, - 117, 51, 51, 78, 140, 134, 137, 138, 0, 0, - 71, 151, 152, 153, 154, 155, 156, 157, 0, 159, - 163, 162, 164, 0, 173, 0, 0, 0, 208, 0, - 210, 205, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, - 0, 84, 107, 0, 0, 88, 0, 85, 0, 0, - 0, 0, 72, 73, 133, 135, 0, 45, 80, 0, - 0, 0, 0, 0, 0, 0, 215, 0, 0, 196, - 0, 198, 199, 200, 0, 0, 0, 195, 0, 213, - 0, 48, 205, 0, 0, 0, 83, 86, 87, 0, - 0, 0, 0, 139, 136, 0, 142, 158, 0, 0, - 188, 47, 47, 185, 204, 0, 0, 0, 191, 192, - 193, 188, 0, 0, 0, 0, 106, 0, 0, 0, - 0, 46, 0, 0, 187, 0, 209, 211, 0, 0, - 0, 197, 0, 214, 100, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 186, 183, 0, 202, 99, 0, - 102, 103, 104, 105, 0, 176, 0, 0, 0, 184, - 0, 174, 0, 175, 0, 0, 101, 0, 0, 0, - 0, 0, 0, 181, 0, 0, 180, 177, 0, 0, - 0 + 19, 20, 0, 0, 0, 0, 0, 0, 0, 172, + 40, 187, 0, 208, 131, 128, 127, 129, 130, 134, + 0, 52, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 0, 0, 0, 0, 52, 0, 0, + 0, 79, 146, 86, 84, 0, 0, 199, 194, 177, + 176, 0, 0, 24, 28, 23, 27, 22, 26, 21, + 25, 29, 30, 0, 0, 47, 47, 217, 0, 0, + 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 132, 0, 47, 101, 102, 3, + 4, 99, 100, 103, 98, 94, 95, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 97, 96, + 47, 56, 56, 83, 145, 139, 142, 143, 0, 0, + 76, 156, 157, 158, 159, 160, 161, 162, 0, 164, + 168, 167, 169, 0, 178, 0, 0, 0, 213, 0, + 215, 210, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 133, 0, 53, 0, + 123, 0, 0, 0, 89, 112, 0, 0, 93, 0, + 90, 0, 0, 0, 0, 122, 77, 78, 138, 140, + 0, 50, 85, 0, 0, 0, 0, 0, 0, 0, + 0, 220, 0, 0, 201, 0, 203, 204, 205, 0, + 0, 0, 200, 0, 218, 0, 49, 210, 0, 0, + 0, 88, 91, 92, 0, 0, 0, 0, 144, 141, + 51, 45, 163, 0, 0, 193, 47, 48, 47, 190, + 209, 0, 0, 0, 196, 197, 198, 193, 0, 0, + 0, 0, 111, 0, 0, 0, 0, 0, 147, 0, + 0, 192, 0, 214, 216, 0, 0, 0, 202, 0, + 219, 105, 0, 0, 0, 0, 0, 0, 46, 0, + 0, 0, 191, 188, 0, 207, 104, 0, 107, 108, + 109, 110, 0, 181, 0, 0, 0, 189, 0, 179, + 0, 180, 0, 0, 106, 0, 0, 0, 0, 0, + 0, 186, 0, 0, 185, 182, 0, 0, 0 }; static const short yydefgoto[] = { 67, 222, 235, 236, 237, 238, 164, 165, 194, 166, 18, - 9, 26, 347, 217, 68, 69, 167, 71, 72, 96, - 176, 293, 260, 294, 88, 429, 1, 2, 148, 38, - 84, 151, 73, 306, 247, 248, 249, 27, 77, 10, - 33, 11, 12, 21, 261, 74, 263, 354, 13, 29, - 30, 140, 408, 79, 201, 375, 376, 141, 142, 317, - 143, 144 + 9, 26, 379, 269, 289, 352, 217, 68, 69, 167, + 71, 72, 96, 176, 296, 260, 297, 88, 437, 1, + 2, 148, 38, 84, 151, 73, 310, 247, 248, 249, + 27, 77, 10, 33, 11, 12, 21, 261, 74, 263, + 360, 13, 29, 30, 140, 416, 79, 201, 382, 383, + 141, 142, 322, 143, 144 }; static const short yypact[] = {-32768, - 191, 336,-32768,-32768,-32768,-32768,-32768,-32768, 37, 19, --32768,-32768, -17,-32768,-32768, 101, -32, 31, -25,-32768, - 37, 53,-32768,-32768,-32768, 896, -13,-32768,-32768, 130, --32768,-32768,-32768,-32768, -19, -16, 33,-32768, 26, 896, - 58, 58,-32768,-32768,-32768,-32768,-32768, 55,-32768,-32768, + 51, 94,-32768,-32768,-32768,-32768,-32768,-32768, 26, -1, +-32768,-32768, -18,-32768,-32768, 79, -33, 111, -5,-32768, + 26, 113,-32768,-32768,-32768, 987, -23,-32768,-32768, 66, +-32768,-32768,-32768,-32768, 19, 49, 52,-32768, 33, 987, + 64, 64,-32768,-32768,-32768,-32768,-32768, 65,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 127, 156, 166, 124,-32768, 130, 82,-32768, --32768, -81,-32768,-32768,-32768,-32768,-32768, 1053,-32768, 157, - 54, 178, 160,-32768,-32768,-32768,-32768, 933, 970,-32768, - 88, 91,-32768,-32768, -81, -42, 85, 711,-32768,-32768, - 933,-32768, 141, 1007, 0, 104, 37,-32768,-32768,-32768, +-32768,-32768, 161, 163, 169, 504,-32768, 66, 75,-32768, +-32768, -78,-32768,-32768,-32768,-32768,-32768, 1102,-32768, 152, + 53, 173, 154,-32768,-32768,-32768,-32768, 1007, 1051,-32768, + 77, 78,-32768,-32768, -78, -74, 82, 744,-32768,-32768, + 1007,-32768, 128, 1109, 4, 265, 26,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 933, 933, 933, 933, 933, 933, 933, --32768,-32768, 933, 933, 933, 933, 933, 933, 933,-32768, - 37,-32768, 71,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -77, 102, 131, 159, 195, 161, 196, 163, 201, 171, - 202, 203, 204, 175, 208, 206, 387, 102, 933, 933, - 933,-32768, 748,-32768, 118, 116, 560,-32768,-32768, 55, --32768, 560, 560,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 560, 896, 129, 132,-32768, 560, 123, - 139, 205, 140, 142, 143, 145, 560, 560, 560, 146, - 896, 933, 933, 213,-32768, 173,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 148, 149, 150, - 785, 970, 511, 219, 158, 162, 164, 165,-32768,-32768, --32768, -14, -48, -81,-32768, 130,-32768, 168, 167, 822, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 970,-32768, --32768,-32768,-32768, 169,-32768, 172, 560, -12,-32768, -7, --32768, 174, 560, 144, 933, 933, 933, 933, 933, 177, - 179, 180, 933, 560, 560, 181,-32768, 251, 970, 970, - 970,-32768,-32768, -74, -36,-32768, -41,-32768, 970, 970, - 970, 970,-32768,-32768,-32768,-32768, 859, 216,-32768, -35, - 237, 238, 176, 560, 560, 933,-32768, 184, 560,-32768, - 186,-32768,-32768,-32768, 560, 560, 560,-32768, 185,-32768, - 933,-32768, 174, 236, 189, 970,-32768,-32768,-32768, 198, - 199, 200, 207,-32768,-32768, 293,-32768,-32768, 560, 560, - 933, 102, 102,-32768, 214, 560, 215, 933,-32768,-32768, --32768, 933, 560, 217, 933, 970,-32768, 970, 970, 970, - 970,-32768, 218, 212, 214, 223,-32768,-32768, 933, 197, - 560,-32768, 224,-32768,-32768, 225, 221, 227, 228, 229, - 230, 277, 20, 265,-32768,-32768, 231,-32768,-32768, 970, --32768,-32768,-32768,-32768, 560,-32768, 615, 70, 280,-32768, - 232,-32768, 234,-32768, 615, 560,-32768, 281, 239, 250, - 560, 283, 313,-32768, 560, 560,-32768,-32768, 340, 341, --32768 +-32768,-32768,-32768, 1007, 1007, 1007, 1007, 1007, 1007, 1007, +-32768,-32768, 1007, 1007, 1007, 1007, 1007, 1007, 1007,-32768, + 26,-32768, 38,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + -59, 93, 105, 136, 187, 140, 188, 147, 189, 157, + 190, 192, 193, 159, 191, 195, 402, 93, 1007, 1007, + 1007,-32768, 782,-32768, 106, 104, 568,-32768,-32768, 65, +-32768, 568, 568,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 568, 987, 108, 112,-32768, 568, 109, + 114, 176, 116, 123, 124, 125, 568, 568, 568, 126, + 987, 1007, 1007, 200,-32768, 194, 130,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 131, 133, 134, + 846, 1051, 524, 201, 135, 137, 138, 139,-32768,-32768, + 130, -61, -31, -78,-32768, 66,-32768, 132, 142, 884, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1051,-32768, +-32768,-32768,-32768, 146,-32768, 148, 568, -6,-32768, -4, +-32768, 149, 568, 143, 1007, 1007, 1007, 1007, 1007, 150, + 151, 164, 1007, 568, 568, 166,-32768, 211,-32768, 204, +-32768, 1051, 1051, 1051,-32768,-32768, -24, -79,-32768, -73, +-32768, 1051, 1051, 1051, 1051,-32768,-32768,-32768,-32768,-32768, + 949, 194,-32768, -68, 233, 239, 165, 568, 261, 568, + 1007,-32768, 170, 568,-32768, 171,-32768,-32768,-32768, 568, + 568, 568,-32768, 167,-32768, 1007,-32768, 149, 235, 172, + 1051,-32768,-32768,-32768, 175, 186, 196, 197,-32768,-32768, +-32768, 230,-32768, 568, 568, 1007, 130,-32768, 130,-32768, + 203, 568, 205, 1007,-32768,-32768,-32768, 1007, 568, 198, + 1007, 1051,-32768, 1051, 1051, 1051, 1051, 283,-32768, 206, + 207, 203, 214,-32768,-32768, 1007, 212, 568,-32768, 218, +-32768,-32768, 223, 209, 224, 225, 226, 227,-32768, 280, + 43, 268,-32768,-32768, 228,-32768,-32768, 1051,-32768,-32768, +-32768,-32768, 568,-32768, 647, 54, 307,-32768, 229,-32768, + 236,-32768, 647, 568,-32768, 311, 237, 269, 568, 315, + 316,-32768, 568, 568,-32768,-32768, 339, 340,-32768 }; static const short yypgoto[] = {-32768, --32768, 264, 267, 268, 269, -102, -101, -381,-32768, 318, - 333, -96,-32768, -158, -38,-32768, -26,-32768, -46, 254, --32768, -82, 188, -209, 317,-32768,-32768,-32768,-32768,-32768, --32768,-32768, -1,-32768, 59,-32768,-32768, 344,-32768,-32768, --32768,-32768, 359,-32768, -349, -6, 155, -86,-32768, 357, --32768,-32768,-32768,-32768,-32768, 56, 9,-32768,-32768, 40, --32768,-32768 +-32768, 263, 270, 271, 275, -105, -104, -385,-32768, 317, + 328, -80,-32768, -189, 42,-32768, 199, -36,-32768, -26, +-32768, -49, 257,-32768, -86, 202, -213, 319,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 13,-32768, 46,-32768,-32768, + 338,-32768,-32768,-32768,-32768, 363,-32768, -343, -11, 32, + -94,-32768, 353,-32768,-32768,-32768,-32768,-32768, 47, 2, +-32768,-32768, 34,-32768,-32768 }; -#define YYLAST 1147 +#define YYLAST 1215 static const short yytable[] = { 70, - 19, 85, 314, 192, 193, 28, 168, 315, 182, 241, - 195, 407, 31, 70, 178, 75, -51, 181, 214, 95, - 183, 336, 295, 297, 215, 99, 415, 337, 19, 184, - 185, 186, 187, 188, 189, 190, 191, 269, 271, 198, - 288, 28, 202, 203, 211, 288, 204, 205, 206, 310, - 40, 95, 210, 171, 336, 304, 45, 413, 99, 336, - 336, 152, 39, 172, 339, 419, 97, 338, 348, 43, - 5, 6, 7, 8, 177, 80, 41, 177, 81, 184, - 185, 186, 187, 188, 189, 190, 191, 303, 32, 86, - 87, 76, 99, 22, 23, 24, 25, 196, 197, 177, + 192, 193, 168, 85, 28, 75, 178, 271, 318, 181, + 320, 31, 182, 70, 19, 415, 95, 341, 298, 300, + -56, 28, 171, 341, 183, 343, 195, 291, 341, 99, + 423, 198, 172, 344, 202, 203, 353, 214, 204, 205, + 206, 307, 19, 215, 210, 314, 99, 319, 95, 319, + -115, 306, 184, 185, 186, 187, 188, 189, 190, 191, + 211, 152, 39, 184, 185, 186, 187, 188, 189, 190, + 191, 421, 341, 308, 177, 3, 99, 177, 342, 427, + 97, 4, 76, 22, 23, 24, 25, 14, 32, 15, + 43, 5, 6, 7, 8, 86, 87, 196, 197, 177, 199, 200, 177, 177, 146, 147, 177, 177, 177, 207, - 208, 209, 177, 184, 185, 186, 187, 188, 189, 190, - 191, 406, 242, 243, 244, 83, 286, 82, 46, 47, - 90, 93, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 14, 246, 15, 35, 36, - 37, 14, -52, 15, 212, 213, 267, 218, 219, 91, - 240, -24, -24, -23, -23, -22, -22, 62, 70, 92, - 262, 414, 284, -21, -21, 262, 262, 220, 221, 98, - 145, 149, 173, 150, 70, 285, 177, 262, 169, 321, - -110, 170, 262, 377, 378, 179, 328, 216, -28, -27, - 262, 262, 262, 244, -26, -25, 333, 334, 335, -31, - -32, 223, 224, 250, 251, 3, 340, 341, 342, 343, - 63, 4, 273, 64, 268, 288, 65, 270, 66, 94, - 5, 6, 7, 8, 274, 276, 287, 277, 278, 275, - 279, 283, 298, 319, 305, 289, 290, 291, 320, 177, - 322, 323, 324, 367, 332, 299, 177, 349, 350, 300, - 262, 301, 302, 307, 311, 308, 262, 312, 346, 316, - 365, 382, 325, 351, 326, 327, 331, 262, 262, 356, - 246, 358, 362, 387, 366, 388, 389, 390, 391, 177, - 192, 193, 395, 368, 369, 370, 372, 405, 396, 409, - 416, 421, 371, 425, 363, 192, 193, 262, 262, 379, - 381, 393, 262, 392, 423, 385, 400, 411, 262, 262, - 262, 394, 398, 399, 177, 401, 402, 403, 404, 418, - 417, 177, 410, 426, 422, 177, 264, 265, 386, 430, - 431, 136, 262, 262, 137, 138, 139, 78, 266, 262, - 42, 175, 177, 272, 239, -34, 262, 14, 89, 15, - 20, 280, 281, 282, 44, 345, 4, -34, -34, 34, - 383, 355, 364, 0, 262, -34, -34, -34, -34, 0, - 0, -34, 16, 0, 0, 0, 0, 0, 0, 17, - 0, 46, 47, 0, 0, 0, 0, 0, 262, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 14, 262, - 15, 0, 225, 0, 262, 0, 0, 0, 262, 262, - 0, 313, 0, 226, 227, 0, 0, 318, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 329, 330, + 208, 209, 177, -34, 80, 14, 45, 15, 286, 242, + 243, 244, 212, 213, 4, -34, -34, 35, 36, 37, + 40, 218, 219, 83, -34, -34, -34, -34, -24, -24, + -34, 16, -23, -23, 81, 414, 246, 82, 17, -22, + -22, 5, 6, 7, 8, 240, 422, 41, 267, -21, + -21, 220, 221, -57, 90, 262, 91, 384, 70, 385, + 262, 262, 92, 98, 284, 145, 149, 150, 169, 170, + 173, 326, 262, 179, 70, 285, 177, 262, 333, 216, + -28, -27, -26, -25, 223, 262, 262, 262, -31, -32, + 244, 224, 250, 251, 268, 338, 339, 340, 270, 273, + 274, 275, 276, 264, 265, 345, 346, 347, 348, 277, + 278, 279, 283, 287, 301, 266, 290, 288, 311, 292, + 272, 293, 294, 302, 337, 303, 304, 305, 280, 281, + 282, 312, 315, 324, 316, 321, 330, 331, 325, 177, + 327, 328, 329, 354, 373, 262, 177, 319, 309, 355, + 332, 262, 336, 356, 358, 368, 362, 364, 372, 389, + 371, 374, 262, 262, 184, 185, 186, 187, 188, 189, + 190, 191, 375, 378, 246, 394, 399, 395, 396, 397, + 398, 403, 376, 377, 177, 192, 193, 392, 317, 386, + 413, 388, 400, 417, 323, 408, 262, 401, 262, 369, + 192, 193, 262, 402, 404, 334, 335, 406, 262, 262, + 262, 419, 407, 409, 410, 411, 412, 424, 425, 177, + 418, 429, 426, 430, 431, 433, 434, 177, 438, 439, + 136, 177, 262, 262, 393, 42, 78, 137, 138, 357, + 262, 359, 139, 351, 175, 363, 350, 262, 44, 177, + 89, 365, 366, 367, 20, 34, 241, 361, 239, 390, + 0, 370, 0, 0, 0, 0, 262, 0, 0, 0, + 0, 0, 0, 0, 0, 380, 381, 0, 0, 0, + 0, 0, 0, 387, 0, 0, 0, 0, 0, 0, + 391, 262, 0, 0, 0, 0, 46, 47, 0, 0, + 0, 0, 262, 0, 0, 0, 0, 262, 0, 405, + 0, 262, 262, 14, 0, 15, 0, 225, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, + 227, 0, 0, 0, 420, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, + 432, 0, 0, 0, 435, 436, 0, 0, 0, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 0, 0, 0, 0, 0, 228, 0, + 229, 230, 131, 132, 0, 0, 0, 0, 0, 0, + 0, 0, 231, 0, 0, 232, 0, 233, 46, 47, + 234, 93, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 14, 0, 15, 46, 47, + 0, 93, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 60, 61, 14, 0, 15, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 0, 352, 353, - 0, 0, 228, 357, 229, 230, 131, 132, 0, 359, - 360, 361, 0, 0, 0, 0, 231, 0, 0, 232, - 0, 233, 0, 0, 234, 0, 0, 0, 0, 0, - 0, 0, 0, 373, 374, 0, 0, 0, 0, 0, - 380, 0, 0, 0, 0, 46, 47, 384, 93, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 60, 61, 14, 0, 15, 397, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, + 252, 253, 46, 47, 254, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, + 0, 15, 0, 0, 255, 256, 0, 0, 0, 0, + 0, 63, 0, 0, 64, 257, 258, 65, 0, 66, + 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 63, 0, 0, 64, 0, 0, 65, 0, 66, + 299, 0, 0, 0, 0, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 252, + 253, 0, 0, 254, 228, 0, 229, 230, 131, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, 0, 0, 0, 412, - 0, 0, 252, 253, 46, 47, 254, 0, 0, 0, - 420, 0, 0, 0, 0, 424, 0, 0, 0, 427, - 428, 14, 0, 15, 0, 0, 255, 256, 0, 0, - 0, 0, 0, 0, 0, 0, 257, 258, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, - 64, 0, 0, 65, 0, 66, 296, 252, 253, 0, - 0, 254, 0, 0, 0, 0, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 0, 255, 256, 0, 0, 228, 0, 229, 230, 131, - 132, 257, 258, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, + 0, 259, 0, 255, 256, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 0, 0, 0, 0, 0, - 228, 0, 229, 230, 131, 132, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 46, 47, 259, 93, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 14, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, - 0, 0, 46, 47, 62, 93, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 14, - 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 0, 0, 0, 0, 46, - 47, 62, 93, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 60, 61, 14, 63, 15, 0, - 64, 0, 0, 65, 0, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 46, 47, 62, 93, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 0, 0, + 0, 0, 0, 228, 0, 229, 230, 131, 132, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, + 259, 93, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 14, 0, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 174, 0, 0, 0, 0, 0, 46, 47, 62, 93, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 14, 63, 15, 0, 64, 0, 0, - 65, 0, 66, 0, 0, 0, 0, 309, 0, 0, - 0, 0, 0, 46, 47, 62, 93, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 14, 63, 15, 0, 64, 0, 292, 65, 0, 66, - 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, - 46, 47, 62, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 14, 63, 15, - 0, 64, 0, 0, 65, 0, 66, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 46, 47, 62, - 93, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 14, 63, 15, 0, 64, 0, - 0, 65, 0, 66, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 46, 47, 62, 93, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 60, - 61, 14, 63, 15, 0, 64, 0, 0, 65, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 62, 180, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 14, 63, - 15, 0, 64, 0, 0, 65, 0, 66, 0, 0, + 59, 60, 61, 14, 0, 15, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 63, 0, 0, 64, 0, 0, 65, 0, 66, + 46, 47, 0, 93, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 60, 61, 14, 0, 15, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 64, 0, 0, 65, 0, 66, 46, 47, + 62, 93, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 14, 0, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 62, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 63, 0, 0, 64, 0, 295, 65, + 0, 66, 0, 46, 47, 0, 93, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 14, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 63, 0, 0, 64, 349, 0, 65, 0, 66, + 0, 46, 47, 62, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 14, 0, + 15, 46, 47, 0, 93, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 14, 0, + 15, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 64, - 0, 0, 65, 0, 66, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, - 0, 0, 0, 63, 0, 0, 64, 102, 103, 65, - 0, 66, 0, 104, 105, 106, 107, 108, 109, 110, + 0, 62, 65, 0, 66, 46, 47, 0, 93, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 60, 61, 14, 0, 15, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 64, 0, 0, + 65, 0, 66, 0, 0, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 64, 0, 0, + 65, 0, 66, 46, 47, 0, 180, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 14, 0, 15, 0, 0, 0, 100, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 101, 63, 0, + 0, 64, 0, 62, 65, 0, 66, 102, 103, 0, + 0, 0, 0, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 0, 0, 127, 128, - 129, 130, 131, 132, 133, 134, 135 + 129, 130, 131, 132, 133, 134, 135, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 63, 0, 0, 64, + 0, 0, 65, 0, 66 }; static const short yycheck[] = { 26, - 2, 40, 15, 106, 106, 23, 89, 15, 9, 168, - 107, 393, 30, 40, 101, 29, 98, 104, 96, 66, - 21, 96, 232, 233, 102, 107, 408, 102, 30, 10, - 11, 12, 13, 14, 15, 16, 17, 196, 197, 126, - 53, 23, 129, 130, 141, 53, 133, 134, 135, 259, - 20, 98, 139, 96, 96, 104, 4, 407, 107, 96, - 96, 88, 95, 106, 106, 415, 68, 104, 104, 95, - 40, 41, 42, 43, 101, 95, 46, 104, 95, 10, - 11, 12, 13, 14, 15, 16, 17, 102, 106, 32, - 33, 105, 107, 57, 58, 59, 60, 124, 125, 126, - 127, 128, 129, 130, 51, 52, 133, 134, 135, 136, - 137, 138, 139, 10, 11, 12, 13, 14, 15, 16, - 17, 102, 169, 170, 171, 100, 213, 95, 5, 6, - 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 173, 24, 48, 49, - 50, 22, 98, 24, 84, 85, 195, 27, 28, 4, - 167, 3, 4, 3, 4, 3, 4, 44, 195, 4, - 177, 102, 211, 3, 4, 182, 183, 3, 4, 98, - 24, 4, 98, 24, 211, 212, 213, 194, 101, 276, - 0, 101, 199, 352, 353, 55, 283, 96, 4, 4, - 207, 208, 209, 250, 4, 4, 289, 290, 291, 7, - 7, 4, 7, 96, 99, 25, 299, 300, 301, 302, - 97, 31, 100, 100, 96, 53, 103, 96, 105, 106, - 40, 41, 42, 43, 96, 96, 24, 96, 96, 35, - 96, 96, 24, 100, 246, 98, 98, 98, 275, 276, - 277, 278, 279, 336, 4, 98, 283, 21, 21, 98, - 267, 98, 98, 96, 96, 99, 273, 96, 53, 96, - 35, 358, 96, 98, 96, 96, 96, 284, 285, 96, - 307, 96, 98, 366, 96, 368, 369, 370, 371, 316, - 393, 393, 379, 96, 96, 96, 4, 21, 102, 35, - 21, 21, 96, 21, 331, 408, 408, 314, 315, 96, - 96, 100, 319, 96, 65, 99, 96, 400, 325, 326, - 327, 99, 99, 99, 351, 99, 99, 99, 99, 96, - 99, 358, 102, 21, 96, 362, 182, 183, 365, 0, - 0, 78, 349, 350, 78, 78, 78, 30, 194, 356, - 18, 98, 379, 199, 167, 20, 363, 22, 42, 24, - 2, 207, 208, 209, 21, 307, 31, 32, 33, 13, - 362, 316, 333, -1, 381, 40, 41, 42, 43, -1, - -1, 46, 47, -1, -1, -1, -1, -1, -1, 54, - -1, 5, 6, -1, -1, -1, -1, -1, 405, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 22, 416, - 24, -1, 26, -1, 421, -1, -1, -1, 425, 426, - -1, 267, -1, 37, 38, -1, -1, 273, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 284, 285, + 106, 106, 89, 40, 23, 29, 101, 197, 15, 104, + 15, 30, 9, 40, 2, 401, 66, 97, 232, 233, + 99, 23, 97, 97, 21, 105, 107, 217, 97, 108, + 416, 126, 107, 107, 129, 130, 105, 97, 133, 134, + 135, 103, 30, 103, 139, 259, 108, 54, 98, 54, + 0, 241, 10, 11, 12, 13, 14, 15, 16, 17, + 141, 88, 96, 10, 11, 12, 13, 14, 15, 16, + 17, 415, 97, 105, 101, 25, 108, 104, 103, 423, + 68, 31, 106, 58, 59, 60, 61, 22, 107, 24, + 96, 41, 42, 43, 44, 32, 33, 124, 125, 126, + 127, 128, 129, 130, 52, 53, 133, 134, 135, 136, + 137, 138, 139, 20, 96, 22, 4, 24, 213, 169, + 170, 171, 85, 86, 31, 32, 33, 49, 50, 51, + 20, 27, 28, 101, 41, 42, 43, 44, 3, 4, + 47, 48, 3, 4, 96, 103, 173, 96, 55, 3, + 4, 41, 42, 43, 44, 167, 103, 47, 195, 3, + 4, 3, 4, 99, 4, 177, 4, 357, 195, 359, + 182, 183, 4, 99, 211, 24, 4, 24, 102, 102, + 99, 276, 194, 56, 211, 212, 213, 199, 283, 97, + 4, 4, 4, 4, 4, 207, 208, 209, 7, 7, + 250, 7, 97, 100, 97, 292, 293, 294, 97, 101, + 97, 36, 97, 182, 183, 302, 303, 304, 305, 97, + 97, 97, 97, 24, 24, 194, 97, 34, 97, 99, + 199, 99, 99, 99, 24, 99, 99, 99, 207, 208, + 209, 100, 97, 101, 97, 97, 97, 97, 275, 276, + 277, 278, 279, 21, 341, 267, 283, 54, 246, 21, + 97, 273, 97, 99, 4, 99, 97, 97, 97, 364, + 36, 97, 284, 285, 10, 11, 12, 13, 14, 15, + 16, 17, 97, 54, 311, 372, 4, 374, 375, 376, + 377, 386, 97, 97, 321, 401, 401, 100, 267, 97, + 21, 97, 97, 36, 273, 97, 318, 101, 320, 336, + 416, 416, 324, 100, 103, 284, 285, 100, 330, 331, + 332, 408, 100, 100, 100, 100, 100, 21, 100, 356, + 103, 21, 97, 97, 66, 21, 21, 364, 0, 0, + 78, 368, 354, 355, 371, 18, 30, 78, 78, 318, + 362, 320, 78, 312, 98, 324, 311, 369, 21, 386, + 42, 330, 331, 332, 2, 13, 168, 321, 167, 368, + -1, 338, -1, -1, -1, -1, 388, -1, -1, -1, + -1, -1, -1, -1, -1, 354, 355, -1, -1, -1, + -1, -1, -1, 362, -1, -1, -1, -1, -1, -1, + 369, 413, -1, -1, -1, -1, 5, 6, -1, -1, + -1, -1, 424, -1, -1, -1, -1, 429, -1, 388, + -1, 433, 434, 22, -1, 24, -1, 26, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, + 39, -1, -1, -1, 413, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 424, -1, -1, -1, -1, + 429, -1, -1, -1, 433, 434, -1, -1, -1, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, -1, -1, -1, -1, -1, 87, -1, + 89, 90, 91, 92, -1, -1, -1, -1, -1, -1, + -1, -1, 101, -1, -1, 104, -1, 106, 5, 6, + 109, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, -1, 24, 5, 6, + -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, -1, 24, 45, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 45, -1, + 3, 4, 5, 6, 7, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, + -1, 24, -1, -1, 27, 28, -1, -1, -1, -1, + -1, 98, -1, -1, 101, 38, 39, 104, -1, 106, + 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 98, -1, -1, 101, -1, -1, 104, -1, 106, + 107, -1, -1, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 3, + 4, -1, -1, 7, 87, -1, 89, 90, 91, 92, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 104, -1, 27, 28, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 38, 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, -1, 314, 315, - -1, -1, 86, 319, 88, 89, 90, 91, -1, 325, - 326, 327, -1, -1, -1, -1, 100, -1, -1, 103, - -1, 105, -1, -1, 108, -1, -1, -1, -1, -1, - -1, -1, -1, 349, 350, -1, -1, -1, -1, -1, - 356, -1, -1, -1, -1, 5, 6, 363, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, -1, 24, 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 44, -1, -1, -1, -1, 405, - -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, - 416, -1, -1, -1, -1, 421, -1, -1, -1, 425, - 426, 22, -1, 24, -1, -1, 27, 28, -1, -1, - -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, - 100, -1, -1, 103, -1, 105, 106, 3, 4, -1, - -1, 7, -1, -1, -1, -1, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - -1, 27, 28, -1, -1, 86, -1, 88, 89, 90, - 91, 37, 38, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, -1, -1, + -1, -1, -1, 87, -1, 89, 90, 91, 92, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5, 6, + 104, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, -1, -1, -1, -1, -1, - 86, -1, 88, 89, 90, 91, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 5, 6, 103, 8, 9, + 37, -1, -1, -1, -1, -1, 5, 6, 45, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, + -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 98, -1, -1, 101, -1, -1, 104, -1, 106, + 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, + -1, -1, 101, -1, -1, 104, -1, 106, 5, 6, + 45, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 37, -1, -1, -1, -1, -1, -1, -1, 45, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 98, -1, -1, 101, -1, 103, 104, + -1, 106, -1, 5, 6, -1, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, + -1, 98, -1, -1, 101, 37, -1, 104, -1, 106, + -1, 5, 6, 45, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, + 24, 5, 6, -1, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, + 24, 45, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 98, -1, -1, 101, + -1, 45, 104, -1, 106, 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 36, -1, -1, -1, - -1, -1, 5, 6, 44, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 36, -1, -1, -1, -1, -1, 5, - 6, 44, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 97, 24, -1, - 100, -1, -1, 103, -1, 105, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 5, 6, 44, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 97, 24, -1, 100, -1, -1, - 103, -1, 105, -1, -1, -1, -1, 36, -1, -1, - -1, -1, -1, 5, 6, 44, 8, 9, 10, 11, + -1, -1, -1, -1, 98, -1, -1, 101, -1, -1, + 104, -1, 106, -1, -1, 45, -1, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, 101, -1, -1, + 104, -1, 106, 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 97, 24, -1, 100, -1, 102, 103, -1, 105, - -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, - 5, 6, 44, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 97, 24, - -1, 100, -1, -1, 103, -1, 105, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5, 6, 44, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 97, 24, -1, 100, -1, - -1, 103, -1, 105, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5, 6, 44, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 97, 24, -1, 100, -1, -1, 103, -1, - 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5, 6, 44, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 97, - 24, -1, 100, -1, -1, 103, -1, 105, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 97, -1, -1, 100, - -1, -1, 103, -1, 105, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, - -1, -1, -1, 97, -1, -1, 100, 55, 56, 103, - -1, 105, -1, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, -1, -1, 86, 87, - 88, 89, 90, 91, 92, 93, 94 + 22, -1, 24, -1, -1, -1, 35, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 46, 98, -1, + -1, 101, -1, 45, 104, -1, 106, 56, 57, -1, + -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, -1, -1, 87, 88, + 89, 90, 91, 92, 93, 94, 95, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 98, -1, -1, 101, + -1, -1, 104, -1, 106 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" @@ -2160,7 +2190,7 @@ yyreduce: switch (yyn) { case 2: -#line 991 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1005 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[0].UIntVal > (uint32_t)INT32_MAX) // Outside of my range! ThrowException("Value too large for type!"); @@ -2168,7 +2198,7 @@ case 2: ; break;} case 4: -#line 999 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1013 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[0].UInt64Val > (uint64_t)INT64_MAX) // Outside of my range! ThrowException("Value too large for type!"); @@ -2176,55 +2206,55 @@ case 4: ; break;} case 33: -#line 1022 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1036 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.StrVal = yyvsp[-1].StrVal; ; break;} case 34: -#line 1025 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1039 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.StrVal = 0; ; break;} case 35: -#line 1029 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1043 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.Linkage = GlobalValue::InternalLinkage; ; break;} case 36: -#line 1030 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1044 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.Linkage = GlobalValue::LinkOnceLinkage; ; break;} case 37: -#line 1031 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1045 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.Linkage = GlobalValue::WeakLinkage; ; break;} case 38: -#line 1032 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1046 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.Linkage = GlobalValue::AppendingLinkage; ; break;} case 39: -#line 1033 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1047 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.Linkage = GlobalValue::ExternalLinkage; ; break;} case 40: -#line 1035 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1049 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.UIntVal = CallingConv::C; ; break;} case 41: -#line 1036 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1050 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.UIntVal = CallingConv::C; ; break;} case 42: -#line 1037 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1051 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.UIntVal = CallingConv::Fast; ; break;} case 43: -#line 1038 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1052 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.UIntVal = CallingConv::Cold; ; break;} case 44: -#line 1039 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1053 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if ((unsigned)yyvsp[0].UInt64Val != yyvsp[0].UInt64Val) ThrowException("Calling conv too large!"); @@ -2232,57 +2262,82 @@ case 44: ; break;} case 45: -#line 1047 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1061 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.UIntVal = 0; ; break;} case 46: -#line 1048 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1062 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.UIntVal = yyvsp[0].UInt64Val; ; break;} case 47: -#line 1049 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1063 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.UIntVal = 0; ; break;} case 48: -#line 1050 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1064 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.UIntVal = yyvsp[0].UInt64Val; ; break;} +case 49: +#line 1066 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +{ + for (unsigned i = 0, e = strlen(yyvsp[0].StrVal); i != e; ++i) + if (yyvsp[0].StrVal[i] == '"' || yyvsp[0].StrVal[i] == '\\') + ThrowException("Invalid character in section name!"); + yyval.StrVal = yyvsp[0].StrVal; +; + break;} case 50: -#line 1059 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" -{ yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ; +#line 1073 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +{ yyval.StrVal = 0; ; + break;} +case 51: +#line 1074 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +{ yyval.StrVal = yyvsp[0].StrVal; ; break;} case 52: -#line 1060 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" -{ yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ; +#line 1075 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +{ yyval.StrVal = 0; ; break;} case 53: -#line 1062 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1076 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +{ yyval.StrVal = yyvsp[0].StrVal; ; + break;} +case 55: +#line 1086 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +{ yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ; + break;} +case 57: +#line 1087 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +{ yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ; + break;} +case 58: +#line 1089 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!UpRefs.empty()) ThrowException("Invalid upreference in type: " + (*yyvsp[0].TypeVal)->getDescription()); yyval.TypeVal = yyvsp[0].TypeVal; ; break;} -case 67: -#line 1073 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 72: +#line 1100 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.TypeVal = new PATypeHolder(OpaqueType::get()); ; break;} -case 68: -#line 1076 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 73: +#line 1103 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ; break;} -case 69: -#line 1079 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 74: +#line 1106 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Named types are also simple types... yyval.TypeVal = new PATypeHolder(getTypeVal(yyvsp[0].ValIDVal)); ; break;} -case 70: -#line 1085 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 75: +#line 1112 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Type UpReference if (yyvsp[0].UInt64Val > (uint64_t)~0U) ThrowException("Value out of range!"); OpaqueType *OT = OpaqueType::get(); // Use temporary placeholder @@ -2291,8 +2346,8 @@ case 70: UR_OUT("New Upreference!\n"); ; break;} -case 71: -#line 1092 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 76: +#line 1119 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Function derived type? std::vector<const Type*> Params; for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-1].TypeList->begin(), @@ -2306,15 +2361,15 @@ case 71: delete yyvsp[-3].TypeVal; // Delete the return type handle ; break;} -case 72: -#line 1104 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 77: +#line 1131 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Sized array type? yyval.TypeVal = new PATypeHolder(HandleUpRefs(ArrayType::get(*yyvsp[-1].TypeVal, (unsigned)yyvsp[-3].UInt64Val))); delete yyvsp[-1].TypeVal; ; break;} -case 73: -#line 1108 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 78: +#line 1135 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Packed array type? const llvm::Type* ElemTy = yyvsp[-1].TypeVal->get(); if ((unsigned)yyvsp[-3].UInt64Val != yyvsp[-3].UInt64Val) @@ -2327,8 +2382,8 @@ case 73: delete yyvsp[-1].TypeVal; ; break;} -case 74: -#line 1119 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 79: +#line 1146 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Structure type? std::vector<const Type*> Elements; for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-1].TypeList->begin(), @@ -2339,52 +2394,52 @@ case 74: delete yyvsp[-1].TypeList; ; break;} -case 75: -#line 1128 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 80: +#line 1155 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Empty structure type? yyval.TypeVal = new PATypeHolder(StructType::get(std::vector<const Type*>())); ; break;} -case 76: -#line 1131 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 81: +#line 1158 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Pointer type? yyval.TypeVal = new PATypeHolder(HandleUpRefs(PointerType::get(*yyvsp[-1].TypeVal))); delete yyvsp[-1].TypeVal; ; break;} -case 77: -#line 1139 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 82: +#line 1166 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.TypeList = new std::list<PATypeHolder>(); yyval.TypeList->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal; ; break;} -case 78: -#line 1143 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 83: +#line 1170 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeList=yyvsp[-2].TypeList)->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal; ; break;} -case 80: -#line 1149 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 85: +#line 1176 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeList=yyvsp[-2].TypeList)->push_back(Type::VoidTy); ; break;} -case 81: -#line 1152 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 86: +#line 1179 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.TypeList = new std::list<PATypeHolder>())->push_back(Type::VoidTy); ; break;} -case 82: -#line 1155 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 87: +#line 1182 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.TypeList = new std::list<PATypeHolder>(); ; break;} -case 83: -#line 1165 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 88: +#line 1192 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized arr const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-3].TypeVal->get()); if (ATy == 0) @@ -2411,8 +2466,8 @@ case 83: delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector; ; break;} -case 84: -#line 1190 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 89: +#line 1217 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get()); if (ATy == 0) @@ -2427,8 +2482,8 @@ case 84: delete yyvsp[-2].TypeVal; ; break;} -case 85: -#line 1203 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 90: +#line 1230 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get()); if (ATy == 0) @@ -2458,8 +2513,8 @@ case 85: delete yyvsp[-2].TypeVal; ; break;} -case 86: -#line 1231 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 91: +#line 1258 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized arr const PackedType *PTy = dyn_cast<PackedType>(yyvsp[-3].TypeVal->get()); if (PTy == 0) @@ -2486,8 +2541,8 @@ case 86: delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector; ; break;} -case 87: -#line 1256 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 92: +#line 1283 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const StructType *STy = dyn_cast<StructType>(yyvsp[-3].TypeVal->get()); if (STy == 0) @@ -2509,8 +2564,8 @@ case 87: delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector; ; break;} -case 88: -#line 1276 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 93: +#line 1303 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const StructType *STy = dyn_cast<StructType>(yyvsp[-2].TypeVal->get()); if (STy == 0) @@ -2524,8 +2579,8 @@ case 88: delete yyvsp[-2].TypeVal; ; break;} -case 89: -#line 1288 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 94: +#line 1315 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const PointerType *PTy = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get()); if (PTy == 0) @@ -2536,15 +2591,15 @@ case 89: delete yyvsp[-1].TypeVal; ; break;} -case 90: -#line 1297 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 95: +#line 1324 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ConstVal = UndefValue::get(yyvsp[-1].TypeVal->get()); delete yyvsp[-1].TypeVal; ; break;} -case 91: -#line 1301 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 96: +#line 1328 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const PointerType *Ty = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get()); if (Ty == 0) @@ -2605,8 +2660,8 @@ case 91: delete yyvsp[-1].TypeVal; // Free the type handle ; break;} -case 92: -#line 1360 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 97: +#line 1387 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[-1].TypeVal->get() != yyvsp[0].ConstVal->getType()) ThrowException("Mismatched types for constant expression!"); @@ -2614,8 +2669,8 @@ case 92: delete yyvsp[-1].TypeVal; ; break;} -case 93: -#line 1366 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 98: +#line 1393 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const Type *Ty = yyvsp[-1].TypeVal->get(); if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty)) @@ -2624,44 +2679,44 @@ case 93: delete yyvsp[-1].TypeVal; ; break;} -case 94: -#line 1374 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 99: +#line 1401 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // integral constants if (!ConstantSInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].SInt64Val)) ThrowException("Constant value doesn't fit in type!"); yyval.ConstVal = ConstantSInt::get(yyvsp[-1].PrimType, yyvsp[0].SInt64Val); ; break;} -case 95: -#line 1379 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 100: +#line 1406 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // integral constants if (!ConstantUInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].UInt64Val)) ThrowException("Constant value doesn't fit in type!"); yyval.ConstVal = ConstantUInt::get(yyvsp[-1].PrimType, yyvsp[0].UInt64Val); ; break;} -case 96: -#line 1384 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 101: +#line 1411 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Boolean constants yyval.ConstVal = ConstantBool::True; ; break;} -case 97: -#line 1387 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 102: +#line 1414 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Boolean constants yyval.ConstVal = ConstantBool::False; ; break;} -case 98: -#line 1390 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 103: +#line 1417 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Float & Double constants if (!ConstantFP::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].FPVal)) ThrowException("Floating point constant invalid for type!!"); yyval.ConstVal = ConstantFP::get(yyvsp[-1].PrimType, yyvsp[0].FPVal); ; break;} -case 99: -#line 1397 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 104: +#line 1424 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!yyvsp[-3].ConstVal->getType()->isFirstClassType()) ThrowException("cast constant expression from a non-primitive type: '" + @@ -2673,8 +2728,8 @@ case 99: delete yyvsp[-1].TypeVal; ; break;} -case 100: -#line 1407 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 105: +#line 1434 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!isa<PointerType>(yyvsp[-2].ConstVal->getType())) ThrowException("GetElementPtr requires a pointer operand!"); @@ -2707,8 +2762,8 @@ case 100: yyval.ConstVal = ConstantExpr::getGetElementPtr(yyvsp[-2].ConstVal, IdxVec); ; break;} -case 101: -#line 1438 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 106: +#line 1465 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[-5].ConstVal->getType() != Type::BoolTy) ThrowException("Select condition must be of boolean type!"); @@ -2717,8 +2772,8 @@ case 101: yyval.ConstVal = ConstantExpr::getSelect(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); ; break;} -case 102: -#line 1445 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 107: +#line 1472 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType()) ThrowException("Binary operator types must match!"); @@ -2741,8 +2796,8 @@ case 102: } ; break;} -case 103: -#line 1466 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 108: +#line 1493 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType()) ThrowException("Logical operator types must match!"); @@ -2751,16 +2806,16 @@ case 103: yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); ; break;} -case 104: -#line 1473 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 109: +#line 1500 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType()) ThrowException("setcc operand types must match!"); yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); ; break;} -case 105: -#line 1478 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 110: +#line 1505 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[-1].ConstVal->getType() != Type::UByteTy) ThrowException("Shift count for shift constant must be unsigned byte!"); @@ -2769,55 +2824,55 @@ case 105: yyval.ConstVal = ConstantExpr::get(yyvsp[-5].OtherOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); ; break;} -case 106: -#line 1488 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 111: +#line 1515 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.ConstVector = yyvsp[-2].ConstVector)->push_back(yyvsp[0].ConstVal); ; break;} -case 107: -#line 1491 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 112: +#line 1518 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ConstVector = new std::vector<Constant*>(); yyval.ConstVector->push_back(yyvsp[0].ConstVal); ; break;} -case 108: -#line 1498 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 113: +#line 1525 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = false; ; break;} -case 109: -#line 1498 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 114: +#line 1525 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = true; ; break;} -case 110: -#line 1508 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 115: +#line 1535 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ModuleVal = ParserResult = yyvsp[0].ModuleVal; CurModule.ModuleDone(); ; break;} -case 111: -#line 1515 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 116: +#line 1542 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ModuleVal = yyvsp[-1].ModuleVal; CurFun.FunctionDone(); ; break;} -case 112: -#line 1519 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 117: +#line 1546 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ModuleVal = yyvsp[-1].ModuleVal; ; break;} -case 113: -#line 1522 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 118: +#line 1549 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ModuleVal = yyvsp[-1].ModuleVal; ; break;} -case 114: -#line 1525 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 119: +#line 1552 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ModuleVal = CurModule.CurrentModule; // Emit an error if there are any unresolved types left. @@ -2830,8 +2885,8 @@ case 114: } ; break;} -case 115: -#line 1538 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 120: +#line 1565 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Eagerly resolve types. This is not an optimization, this is a // requirement that is due to the fact that we could have this: @@ -2853,56 +2908,56 @@ case 115: delete yyvsp[0].TypeVal; ; break;} -case 116: -#line 1558 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 121: +#line 1585 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Function prototypes can be in const pool ; break;} -case 117: -#line 1560 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 122: +#line 1587 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { - if (yyvsp[-1].ConstVal == 0) ThrowException("Global value initializer is not a constant!"); - ParseGlobalVariable(yyvsp[-4].StrVal, yyvsp[-3].Linkage, yyvsp[-2].BoolVal, yyvsp[-1].ConstVal->getType(), yyvsp[-1].ConstVal, yyvsp[0].UIntVal); + if (yyvsp[-2].ConstVal == 0) ThrowException("Global value initializer is not a constant!"); + ParseGlobalVariable(yyvsp[-5].StrVal, yyvsp[-4].Linkage, yyvsp[-3].BoolVal, yyvsp[-2].ConstVal->getType(), yyvsp[-2].ConstVal, yyvsp[-1].StrVal, yyvsp[0].UIntVal); ; break;} -case 118: -#line 1564 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 123: +#line 1591 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { - ParseGlobalVariable(yyvsp[-4].StrVal, GlobalValue::ExternalLinkage, yyvsp[-2].BoolVal, *yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal); - delete yyvsp[-1].TypeVal; + ParseGlobalVariable(yyvsp[-5].StrVal, GlobalValue::ExternalLinkage, yyvsp[-3].BoolVal, *yyvsp[-2].TypeVal, 0, yyvsp[-1].StrVal, yyvsp[0].UIntVal); + delete yyvsp[-2].TypeVal; ; break;} -case 119: -#line 1568 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 124: +#line 1595 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ; break;} -case 120: -#line 1570 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 125: +#line 1597 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ; break;} -case 121: -#line 1572 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 126: +#line 1599 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ; break;} -case 122: -#line 1577 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 127: +#line 1604 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.Endianness = Module::BigEndian; ; break;} -case 123: -#line 1578 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 128: +#line 1605 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.Endianness = Module::LittleEndian; ; break;} -case 124: -#line 1580 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 129: +#line 1607 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setEndianness(yyvsp[0].Endianness); ; break;} -case 125: -#line 1583 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 130: +#line 1610 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[0].UInt64Val == 32) CurModule.CurrentModule->setPointerSize(Module::Pointer32); @@ -2912,112 +2967,112 @@ case 125: ThrowException("Invalid pointer size: '" + utostr(yyvsp[0].UInt64Val) + "'!"); ; break;} -case 126: -#line 1591 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 131: +#line 1618 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->setTargetTriple(yyvsp[0].StrVal); free(yyvsp[0].StrVal); ; break;} -case 128: -#line 1598 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 133: +#line 1625 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal); free(yyvsp[0].StrVal); ; break;} -case 129: -#line 1602 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 134: +#line 1629 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal); free(yyvsp[0].StrVal); ; break;} -case 130: -#line 1606 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 135: +#line 1633 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ; break;} -case 134: -#line 1615 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 139: +#line 1642 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.StrVal = 0; ; break;} -case 135: -#line 1617 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 140: +#line 1644 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (*yyvsp[-1].TypeVal == Type::VoidTy) ThrowException("void typed arguments are invalid!"); yyval.ArgVal = new std::pair<PATypeHolder*, char*>(yyvsp[-1].TypeVal, yyvsp[0].StrVal); ; break;} -case 136: -#line 1623 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 141: +#line 1650 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = yyvsp[-2].ArgList; yyvsp[-2].ArgList->push_back(*yyvsp[0].ArgVal); delete yyvsp[0].ArgVal; ; break;} -case 137: -#line 1628 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 142: +#line 1655 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = new std::vector<std::pair<PATypeHolder*,char*> >(); yyval.ArgList->push_back(*yyvsp[0].ArgVal); delete yyvsp[0].ArgVal; ; break;} -case 138: -#line 1634 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 143: +#line 1661 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = yyvsp[0].ArgList; ; break;} -case 139: -#line 1637 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 144: +#line 1664 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = yyvsp[-2].ArgList; yyval.ArgList->push_back(std::pair<PATypeHolder*, char*>(new PATypeHolder(Type::VoidTy), 0)); ; break;} -case 140: -#line 1642 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 145: +#line 1669 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = new std::vector<std::pair<PATypeHolder*,char*> >(); yyval.ArgList->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0)); ; break;} -case 141: -#line 1646 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 146: +#line 1673 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ArgList = 0; ; break;} -case 142: -#line 1650 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 147: +#line 1678 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { - UnEscapeLexed(yyvsp[-4].StrVal); - std::string FunctionName(yyvsp[-4].StrVal); - free(yyvsp[-4].StrVal); // Free strdup'd memory! + UnEscapeLexed(yyvsp[-5].StrVal); + std::string FunctionName(yyvsp[-5].StrVal); + free(yyvsp[-5].StrVal); // Free strdup'd memory! - if (!(*yyvsp[-5].TypeVal)->isFirstClassType() && *yyvsp[-5].TypeVal != Type::VoidTy) + if (!(*yyvsp[-6].TypeVal)->isFirstClassType() && *yyvsp[-6].TypeVal != Type::VoidTy) ThrowException("LLVM functions cannot return aggregate types!"); if (yyvsp[0].UIntVal != 0 && !isPowerOf2_32(yyvsp[0].UIntVal)) ThrowException("Function alignment must be a power of two!"); std::vector<const Type*> ParamTypeList; - if (yyvsp[-2].ArgList) { // If there are arguments... - for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = yyvsp[-2].ArgList->begin(); - I != yyvsp[-2].ArgList->end(); ++I) + if (yyvsp[-3].ArgList) { // If there are arguments... + for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = yyvsp[-3].ArgList->begin(); + I != yyvsp[-3].ArgList->end(); ++I) ParamTypeList.push_back(I->first->get()); } bool isVarArg = ParamTypeList.size() && ParamTypeList.back() == Type::VoidTy; if (isVarArg) ParamTypeList.pop_back(); - const FunctionType *FT = FunctionType::get(*yyvsp[-5].TypeVal, ParamTypeList, isVarArg); + const FunctionType *FT = FunctionType::get(*yyvsp[-6].TypeVal, ParamTypeList, isVarArg); const PointerType *PFT = PointerType::get(FT); - delete yyvsp[-5].TypeVal; + delete yyvsp[-6].TypeVal; ValID ID; if (!FunctionName.empty()) { @@ -3054,32 +3109,36 @@ case 142: } CurFun.FunctionStart(Fn); - Fn->setCallingConv(yyvsp[-6].UIntVal); + Fn->setCallingConv(yyvsp[-7].UIntVal); Fn->setAlignment(yyvsp[0].UIntVal); + if (yyvsp[-1].StrVal) { + Fn->setSection(yyvsp[-1].StrVal); + free(yyvsp[-1].StrVal); + } // Add all of the arguments we parsed to the function... - if (yyvsp[-2].ArgList) { // Is null if empty... + if (yyvsp[-3].ArgList) { // Is null if empty... if (isVarArg) { // Nuke the last entry - assert(yyvsp[-2].ArgList->back().first->get() == Type::VoidTy && yyvsp[-2].ArgList->back().second == 0&& + assert(yyvsp[-3].ArgList->back().first->get() == Type::VoidTy && yyvsp[-3].ArgList->back().second == 0&& "Not a varargs marker!"); - delete yyvsp[-2].ArgList->back().first; - yyvsp[-2].ArgList->pop_back(); // Delete the last entry + delete yyvsp[-3].ArgList->back().first; + yyvsp[-3].ArgList->pop_back(); // Delete the last entry } Function::arg_iterator ArgIt = Fn->arg_begin(); - for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = yyvsp[-2].ArgList->begin(); - I != yyvsp[-2].ArgList->end(); ++I, ++ArgIt) { + for (std::vector<std::pair<PATypeHolder*,char*> >::iterator I = yyvsp[-3].ArgList->begin(); + I != yyvsp[-3].ArgList->end(); ++I, ++ArgIt) { delete I->first; // Delete the typeholder... setValueName(ArgIt, I->second); // Insert arg into symtab... InsertValue(ArgIt); } - delete yyvsp[-2].ArgList; // We're now done with the argument list + delete yyvsp[-3].ArgList; // We're now done with the argument list } ; break;} -case 145: -#line 1735 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 150: +#line 1767 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.FunctionVal = CurFun.CurrentFunction; @@ -3088,67 +3147,67 @@ case 145: yyval.FunctionVal->setLinkage(yyvsp[-2].Linkage); ; break;} -case 148: -#line 1745 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 153: +#line 1777 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.FunctionVal = yyvsp[-1].FunctionVal; ; break;} -case 149: -#line 1749 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 154: +#line 1781 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { CurFun.isDeclare = true; ; break;} -case 150: -#line 1749 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 155: +#line 1781 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.FunctionVal = CurFun.CurrentFunction; CurFun.FunctionDone(); ; break;} -case 151: -#line 1758 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 156: +#line 1790 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // A reference to a direct constant yyval.ValIDVal = ValID::create(yyvsp[0].SInt64Val); ; break;} -case 152: -#line 1761 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 157: +#line 1793 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::create(yyvsp[0].UInt64Val); ; break;} -case 153: -#line 1764 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 158: +#line 1796 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Perhaps it's an FP constant? yyval.ValIDVal = ValID::create(yyvsp[0].FPVal); ; break;} -case 154: -#line 1767 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 159: +#line 1799 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::create(ConstantBool::True); ; break;} -case 155: -#line 1770 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 160: +#line 1802 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::create(ConstantBool::False); ; break;} -case 156: -#line 1773 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 161: +#line 1805 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::createNull(); ; break;} -case 157: -#line 1776 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 162: +#line 1808 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::createUndef(); ; break;} -case 158: -#line 1779 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 163: +#line 1811 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized packed vector const Type *ETy = (*yyvsp[-1].ConstVector)[0]->getType(); int NumElements = yyvsp[-1].ConstVector->size(); @@ -3174,44 +3233,44 @@ case 158: delete PTy; delete yyvsp[-1].ConstVector; ; break;} -case 159: -#line 1803 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 164: +#line 1835 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValIDVal = ValID::create(yyvsp[0].ConstVal); ; break;} -case 160: -#line 1810 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 165: +#line 1842 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Is it an integer reference...? yyval.ValIDVal = ValID::create(yyvsp[0].SIntVal); ; break;} -case 161: -#line 1813 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 166: +#line 1845 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Is it a named reference...? yyval.ValIDVal = ValID::create(yyvsp[0].StrVal); ; break;} -case 164: -#line 1824 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 169: +#line 1856 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValueVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal); delete yyvsp[-1].TypeVal; ; break;} -case 165: -#line 1828 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 170: +#line 1860 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.FunctionVal = yyvsp[-1].FunctionVal; ; break;} -case 166: -#line 1831 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 171: +#line 1863 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Do not allow functions with 0 basic blocks yyval.FunctionVal = yyvsp[-1].FunctionVal; ; break;} -case 167: -#line 1839 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 172: +#line 1871 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { setValueName(yyvsp[0].TermInstVal, yyvsp[-1].StrVal); InsertValue(yyvsp[0].TermInstVal); @@ -3221,15 +3280,15 @@ case 167: yyval.BasicBlockVal = yyvsp[-2].BasicBlockVal; ; break;} -case 168: -#line 1848 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 173: +#line 1880 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].InstVal); yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal; ; break;} -case 169: -#line 1852 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 174: +#line 1884 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BasicBlockVal = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); @@ -3241,8 +3300,8 @@ case 169: BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal); ; break;} -case 170: -#line 1862 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 175: +#line 1894 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BasicBlockVal = CurBB = getBBVal(ValID::create(yyvsp[0].StrVal), true); @@ -3254,32 +3313,32 @@ case 170: BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal); ; break;} -case 171: -#line 1873 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 176: +#line 1905 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Return with a result... yyval.TermInstVal = new ReturnInst(yyvsp[0].ValueVal); ; break;} -case 172: -#line 1876 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 177: +#line 1908 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Return with no result... yyval.TermInstVal = new ReturnInst(); ; break;} -case 173: -#line 1879 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 178: +#line 1911 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Unconditional Branch... yyval.TermInstVal = new BranchInst(getBBVal(yyvsp[0].ValIDVal)); ; break;} -case 174: -#line 1882 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 179: +#line 1914 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.TermInstVal = new BranchInst(getBBVal(yyvsp[-3].ValIDVal), getBBVal(yyvsp[0].ValIDVal), getVal(Type::BoolTy, yyvsp[-6].ValIDVal)); ; break;} -case 175: -#line 1885 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 180: +#line 1917 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { SwitchInst *S = new SwitchInst(getVal(yyvsp[-7].PrimType, yyvsp[-6].ValIDVal), getBBVal(yyvsp[-3].ValIDVal), yyvsp[-1].JumpTable->size()); yyval.TermInstVal = S; @@ -3295,15 +3354,15 @@ case 175: delete yyvsp[-1].JumpTable; ; break;} -case 176: -#line 1899 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 181: +#line 1931 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { SwitchInst *S = new SwitchInst(getVal(yyvsp[-6].PrimType, yyvsp[-5].ValIDVal), getBBVal(yyvsp[-2].ValIDVal), 0); yyval.TermInstVal = S; ; break;} -case 177: -#line 1904 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 182: +#line 1936 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy; const FunctionType *Ty; @@ -3357,20 +3416,20 @@ case 177: delete yyvsp[-7].ValueList; ; break;} -case 178: -#line 1956 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 183: +#line 1988 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.TermInstVal = new UnwindInst(); ; break;} -case 179: -#line 1959 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 184: +#line 1991 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.TermInstVal = new UnreachableInst(); ; break;} -case 180: -#line 1965 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 185: +#line 1997 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.JumpTable = yyvsp[-5].JumpTable; Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal)); @@ -3380,8 +3439,8 @@ case 180: yyval.JumpTable->push_back(std::make_pair(V, getBBVal(yyvsp[0].ValIDVal))); ; break;} -case 181: -#line 1973 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 186: +#line 2005 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.JumpTable = new std::vector<std::pair<Constant*, BasicBlock*> >(); Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal)); @@ -3392,8 +3451,8 @@ case 181: yyval.JumpTable->push_back(std::make_pair(V, getBBVal(yyvsp[0].ValIDVal))); ; break;} -case 182: -#line 1983 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 187: +#line 2015 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Is this definition named?? if so, assign the name... setValueName(yyvsp[0].InstVal, yyvsp[-1].StrVal); @@ -3401,54 +3460,54 @@ case 182: yyval.InstVal = yyvsp[0].InstVal; ; break;} -case 183: -#line 1990 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 188: +#line 2022 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Used for PHI nodes yyval.PHIList = new std::list<std::pair<Value*, BasicBlock*> >(); yyval.PHIList->push_back(std::make_pair(getVal(*yyvsp[-5].TypeVal, yyvsp[-3].ValIDVal), getBBVal(yyvsp[-1].ValIDVal))); delete yyvsp[-5].TypeVal; ; break;} -case 184: -#line 1995 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 189: +#line 2027 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.PHIList = yyvsp[-6].PHIList; yyvsp[-6].PHIList->push_back(std::make_pair(getVal(yyvsp[-6].PHIList->front().first->getType(), yyvsp[-3].ValIDVal), getBBVal(yyvsp[-1].ValIDVal))); ; break;} -case 185: -#line 2002 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 190: +#line 2034 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { // Used for call statements, and memory insts... yyval.ValueList = new std::vector<Value*>(); yyval.ValueList->push_back(yyvsp[0].ValueVal); ; break;} -case 186: -#line 2006 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 191: +#line 2038 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValueList = yyvsp[-2].ValueList; yyvsp[-2].ValueList->push_back(yyvsp[0].ValueVal); ; break;} -case 188: -#line 2012 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 193: +#line 2044 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValueList = 0; ; break;} -case 189: -#line 2014 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 194: +#line 2046 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = true; ; break;} -case 190: -#line 2017 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 195: +#line 2049 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = false; ; break;} -case 191: -#line 2023 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 196: +#line 2055 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!(*yyvsp[-3].TypeVal)->isInteger() && !(*yyvsp[-3].TypeVal)->isFloatingPoint() && !isa<PackedType>((*yyvsp[-3].TypeVal).get())) @@ -3462,8 +3521,8 @@ case 191: delete yyvsp[-3].TypeVal; ; break;} -case 192: -#line 2035 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 197: +#line 2067 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!(*yyvsp[-3].TypeVal)->isIntegral()) ThrowException("Logical operator requires integral operands!"); @@ -3473,8 +3532,8 @@ case 192: delete yyvsp[-3].TypeVal; ; break;} -case 193: -#line 2043 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 198: +#line 2075 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if(isa<PackedType>((*yyvsp[-3].TypeVal).get())) { ThrowException( @@ -3486,8 +3545,8 @@ case 193: delete yyvsp[-3].TypeVal; ; break;} -case 194: -#line 2053 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 199: +#line 2085 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { std::cerr << "WARNING: Use of eliminated 'not' instruction:" << " Replacing with 'xor'.\n"; @@ -3501,8 +3560,8 @@ case 194: ThrowException("Could not create a xor instruction!"); ; break;} -case 195: -#line 2065 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 200: +#line 2097 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[0].ValueVal->getType() != Type::UByteTy) ThrowException("Shift amount must be ubyte!"); @@ -3511,8 +3570,8 @@ case 195: yyval.InstVal = new ShiftInst(yyvsp[-3].OtherOpVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal); ; break;} -case 196: -#line 2072 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 201: +#line 2104 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!yyvsp[0].TypeVal->get()->isFirstClassType()) ThrowException("cast instruction to a non-primitive type: '" + @@ -3521,8 +3580,8 @@ case 196: delete yyvsp[0].TypeVal; ; break;} -case 197: -#line 2079 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 202: +#line 2111 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[-4].ValueVal->getType() != Type::BoolTy) ThrowException("select condition must be boolean!"); @@ -3531,16 +3590,16 @@ case 197: yyval.InstVal = new SelectInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal); ; break;} -case 198: -#line 2086 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 203: +#line 2118 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { NewVarArgs = true; yyval.InstVal = new VAArgInst(yyvsp[-2].ValueVal, *yyvsp[0].TypeVal); delete yyvsp[0].TypeVal; ; break;} -case 199: -#line 2091 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 204: +#line 2123 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ObsoleteVarArgs = true; const Type* ArgTy = yyvsp[-2].ValueVal->getType(); @@ -3561,8 +3620,8 @@ case 199: delete yyvsp[0].TypeVal; ; break;} -case 200: -#line 2110 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 205: +#line 2142 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { ObsoleteVarArgs = true; const Type* ArgTy = yyvsp[-2].ValueVal->getType(); @@ -3586,8 +3645,8 @@ case 200: delete yyvsp[0].TypeVal; ; break;} -case 201: -#line 2132 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 206: +#line 2164 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const Type *Ty = yyvsp[0].PHIList->front().first->getType(); if (!Ty->isFirstClassType()) @@ -3603,8 +3662,8 @@ case 201: delete yyvsp[0].PHIList; // Free the list... ; break;} -case 202: -#line 2146 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 207: +#line 2178 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const PointerType *PFTy; const FunctionType *Ty; @@ -3663,38 +3722,38 @@ case 202: delete yyvsp[-1].ValueList; ; break;} -case 203: -#line 2203 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 208: +#line 2235 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.InstVal = yyvsp[0].InstVal; ; break;} -case 204: -#line 2209 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 209: +#line 2241 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValueList = yyvsp[0].ValueList; ; break;} -case 205: -#line 2211 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 210: +#line 2243 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.ValueList = new std::vector<Value*>(); ; break;} -case 206: -#line 2215 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 211: +#line 2247 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = true; ; break;} -case 207: -#line 2218 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 212: +#line 2250 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { yyval.BoolVal = false; ; break;} -case 208: -#line 2224 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 213: +#line 2256 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[0].UIntVal != 0 && !isPowerOf2_32(yyvsp[0].UIntVal)) ThrowException("Alignment amount '" + utostr(yyvsp[0].UIntVal) + @@ -3703,8 +3762,8 @@ case 208: delete yyvsp[-1].TypeVal; ; break;} -case 209: -#line 2231 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 214: +#line 2263 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[0].UIntVal != 0 && !isPowerOf2_32(yyvsp[0].UIntVal)) ThrowException("Alignment amount '" + utostr(yyvsp[0].UIntVal) + @@ -3713,8 +3772,8 @@ case 209: delete yyvsp[-4].TypeVal; ; break;} -case 210: -#line 2238 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 215: +#line 2270 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[0].UIntVal != 0 && !isPowerOf2_32(yyvsp[0].UIntVal)) ThrowException("Alignment amount '" + utostr(yyvsp[0].UIntVal) + @@ -3723,8 +3782,8 @@ case 210: delete yyvsp[-1].TypeVal; ; break;} -case 211: -#line 2245 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 216: +#line 2277 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (yyvsp[0].UIntVal != 0 && !isPowerOf2_32(yyvsp[0].UIntVal)) ThrowException("Alignment amount '" + utostr(yyvsp[0].UIntVal) + @@ -3733,8 +3792,8 @@ case 211: delete yyvsp[-4].TypeVal; ; break;} -case 212: -#line 2252 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 217: +#line 2284 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!isa<PointerType>(yyvsp[0].ValueVal->getType())) ThrowException("Trying to free nonpointer type " + @@ -3742,8 +3801,8 @@ case 212: yyval.InstVal = new FreeInst(yyvsp[0].ValueVal); ; break;} -case 213: -#line 2259 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 218: +#line 2291 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!isa<PointerType>(yyvsp[-1].TypeVal->get())) ThrowException("Can't load from nonpointer type: " + @@ -3755,8 +3814,8 @@ case 213: delete yyvsp[-1].TypeVal; ; break;} -case 214: -#line 2269 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 219: +#line 2301 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { const PointerType *PT = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get()); if (!PT) @@ -3771,8 +3830,8 @@ case 214: delete yyvsp[-1].TypeVal; ; break;} -case 215: -#line 2282 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +case 220: +#line 2314 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" { if (!isa<PointerType>(yyvsp[-2].TypeVal->get())) ThrowException("getelementptr insn requires pointer operand!"); @@ -4017,7 +4076,7 @@ yyerrhandle: } return 1; } -#line 2305 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" +#line 2337 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y" int yyerror(const char *ErrorMsg) { std::string where |