diff options
Diffstat (limited to 'test/Assembler')
20 files changed, 60 insertions, 61 deletions
diff --git a/test/Assembler/2002-05-02-ParseError.ll b/test/Assembler/2002-05-02-ParseError.ll index d63784b..130c02e 100644 --- a/test/Assembler/2002-05-02-ParseError.ll +++ b/test/Assembler/2002-05-02-ParseError.ll @@ -5,6 +5,6 @@ %T = type i32 * -define %T %test() { +define %T @test() { ret %T null } diff --git a/test/Assembler/2002-07-25-ParserAssertionFailure.llx b/test/Assembler/2002-07-25-ParserAssertionFailure.llx index f7fdae8..c36964e 100644 --- a/test/Assembler/2002-07-25-ParserAssertionFailure.llx +++ b/test/Assembler/2002-07-25-ParserAssertionFailure.llx @@ -1,13 +1,13 @@ ; Make sure we don't get an assertion failure, even though this is a parse ; error -; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f 2>&1 | grep 'No arguments' +; RUN: llvm-as 2>&1 < %s -o /dev/null -f | grep 'No arguments' -%ty = type void (int) +%ty = type void (i32) -declare %ty* %foo() +declare %ty* @foo() -void %test() { - call %ty* %foo( ) ; <%ty*>:0 [#uses=0] +define void @test() { + call %ty* @foo( ) ; <%ty*>:0 [#uses=0] ret void } diff --git a/test/Assembler/2002-12-15-GlobalResolve.ll b/test/Assembler/2002-12-15-GlobalResolve.ll index c17a20d..3d32ac7 100644 --- a/test/Assembler/2002-12-15-GlobalResolve.ll +++ b/test/Assembler/2002-12-15-GlobalResolve.ll @@ -1,6 +1,5 @@ ; RUN: llvm-upgrade < %s 2>/dev/null | llvm-as -o /dev/null -f && -; RUN: llvm-upgrade < %s 2>&1 | grep "Cannot disambiguate global value '%X'" && -; RUN: llvm-upgrade < %s 2>&1 | grep "Renaming global value '%X' to '%X.un" +; RUN: llvm-upgrade < %s 2>&1 | grep "Renaming global variable 'X' to" %X = external global uint * %X = external global %T* diff --git a/test/Assembler/2003-04-15-ConstantInitAssertion.llx b/test/Assembler/2003-04-15-ConstantInitAssertion.llx index 33f6448..2d881c3 100644 --- a/test/Assembler/2003-04-15-ConstantInitAssertion.llx +++ b/test/Assembler/2003-04-15-ConstantInitAssertion.llx @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade < %s | llvm-as 2>&1 >/dev/null | grep Expected +; RUN: llvm-as 2>&1 < %s >/dev/null | grep "Expected type 'i32' for element #0" ; Test the case of a misformed constant initializer ; This should cause an assembler error, not an assertion failure! -%X = constant {int} { float 1.0 } +constant { i32 } { float 1.0 } diff --git a/test/Assembler/2003-05-21-MalformedShiftCrash.llx b/test/Assembler/2003-05-21-MalformedShiftCrash.llx index 24f4c98..d1618da 100644 --- a/test/Assembler/2003-05-21-MalformedShiftCrash.llx +++ b/test/Assembler/2003-05-21-MalformedShiftCrash.llx @@ -1,4 +1,4 @@ ; Found by inspection of the code -; RUN: llvm-upgrade < %s | llvm-as 2>&1 > /dev/null | grep "Shift constant expression" +; RUN: llvm-as 2>&1 < %s > /dev/null | grep "Shift constant expression" -global int shr (float 1.0, ubyte 2) +global i32 ashr (float 1.0, i8 2) diff --git a/test/Assembler/2003-05-21-MalformedStructCrash.llx b/test/Assembler/2003-05-21-MalformedStructCrash.llx index 98c8428..89c89bc 100644 --- a/test/Assembler/2003-05-21-MalformedStructCrash.llx +++ b/test/Assembler/2003-05-21-MalformedStructCrash.llx @@ -1,4 +1,4 @@ ; Found by inspection of the code -; RUN: llvm-upgrade < %s | llvm-as 2>&1 > /dev/null | grep "Illegal" +; RUN: llvm-as 2>&1 < %s > /dev/null | grep "Illegal number of init" -global {} { int 7, float 1.0, int 7, int 8 } +global {} { i32 7, float 1.0, i32 7, i32 8 } diff --git a/test/Assembler/2003-12-30-TypeMapInvalidMemory.llx b/test/Assembler/2003-12-30-TypeMapInvalidMemory.llx index 5438825..079ef6e 100644 --- a/test/Assembler/2003-12-30-TypeMapInvalidMemory.llx +++ b/test/Assembler/2003-12-30-TypeMapInvalidMemory.llx @@ -1,7 +1,6 @@ -; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f 2>&1 | \ -; RUN: grep 'Reference to an undefined type' +; RUN: llvm-as 2>&1 < %s -o /dev/null -f | grep 'Reference to an undef' -%d_reduction_0_dparser_gram = global { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)*, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** } { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)* null, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** null } +@d_reduction_0_dparser_gram = global { i32 (i8*, i8**, i32, i32, { %struct.Grammar*, void (\4, %struct.d_loc_t*, i8**)*, %struct.D_Scope*, void (\4)*, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, i32, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*)*, i32 (i8*, i8**, i32, i32, { %struct.Grammar*, void (\4, %struct.d_loc_t*, i8**)*, %struct.D_Scope*, void (\4)*, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, i32, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*)** } { i32 (i8*, i8**, i32, i32, { %struct.Grammar*, void (\4, %struct.d_loc_t*, i8**)*, %struct.D_Scope*, void (\4)*, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, i32, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*)* null, i32 (i8*, i8**, i32, i32, { %struct.Grammar*, void (\4, %struct.d_loc_t*, i8**)*, %struct.D_Scope*, void (\4)*, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, i32, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*)** null } implementation diff --git a/test/Assembler/2004-11-28-InvalidTypeCrash.ll b/test/Assembler/2004-11-28-InvalidTypeCrash.ll index d0ecd91..ce3f061 100644 --- a/test/Assembler/2004-11-28-InvalidTypeCrash.ll +++ b/test/Assembler/2004-11-28-InvalidTypeCrash.ll @@ -1,4 +1,4 @@ -; RUN: (llvm-upgrade < %s | llvm-as -o /dev/null -f) 2>&1 | \ +; RUN: llvm-as 2>&1 < %s -o /dev/null -f | \ ; RUN: grep 'Cannot create a null initialized value of this type!' ; Test for PR463. This program is erroneous, but should not crash llvm-as. -%.FOO = internal global %struct.none zeroinitializer +@.FOO = internal global %struct.none zeroinitializer diff --git a/test/Assembler/2005-01-31-CallingAggregateFunction.ll b/test/Assembler/2005-01-31-CallingAggregateFunction.ll index a5de2ba..7eff634 100644 --- a/test/Assembler/2005-01-31-CallingAggregateFunction.ll +++ b/test/Assembler/2005-01-31-CallingAggregateFunction.ll @@ -1,8 +1,9 @@ -; RUN: llvm-upgrade %s | llvm-as -o /dev/null -f 2>&1 | grep "LLVM functions cannot return aggregate types" +; RUN: llvm-as 2>&1 < %s -o /dev/null -f | \ +; RUN: grep "LLVM functions cannot return aggregate types" -void %test() { - call {} %foo() +define void @test() { + call {} @foo() ret void } -declare {} %foo() +declare {} @foo() diff --git a/test/Assembler/2006-09-28-CrashOnInvalid.ll b/test/Assembler/2006-09-28-CrashOnInvalid.ll index 1f67c9c..1691b3c 100644 --- a/test/Assembler/2006-09-28-CrashOnInvalid.ll +++ b/test/Assembler/2006-09-28-CrashOnInvalid.ll @@ -1,7 +1,8 @@ ; Test for PR902. This program is erroneous, but should not crash llvm-as. ; This tests that a simple error is caught and processed correctly. -; RUN: llvm-upgrade < %s | llvm-as 2>&1 | grep 'FP constant invalid for type' -void %test() { - add int 1, 2.0 +; RUN: llvm-as < %s 2>&1 >/dev/null | grep 'FP constant invalid for type' + +define void @test() { + add i32 1, 2.0 ret void } diff --git a/test/Assembler/2006-12-09-Cast-To-Bool.ll b/test/Assembler/2006-12-09-Cast-To-Bool.ll index 3fc4d23..a70262c 100644 --- a/test/Assembler/2006-12-09-Cast-To-Bool.ll +++ b/test/Assembler/2006-12-09-Cast-To-Bool.ll @@ -1,5 +1,6 @@ ; RUN: llvm-as < %s | llvm-dis | grep bitcast -define i1 %main(i32 %X) { + +define i1 @main(i32 %X) { %res = bitcast i1 true to i1 ret i1 %res } diff --git a/test/Assembler/2007-01-02-Undefined-Arg-Type.ll b/test/Assembler/2007-01-02-Undefined-Arg-Type.ll index 96e6d6c..10eb964 100644 --- a/test/Assembler/2007-01-02-Undefined-Arg-Type.ll +++ b/test/Assembler/2007-01-02-Undefined-Arg-Type.ll @@ -5,6 +5,6 @@ implementation ; Functions: -define i1 %someFunc(i32* %tmp.71.reload, %typedef.bc_struct* %n1) { +define i1 @someFunc(i32* %tmp.71.reload, %typedef.bc_struct* %n1) { ret i1 true } diff --git a/test/Assembler/2007-01-05-Local-Name-Conflict.ll b/test/Assembler/2007-01-05-Local-Name-Conflict.ll index cb3a484..b35aed5 100644 --- a/test/Assembler/2007-01-05-Local-Name-Conflict.ll +++ b/test/Assembler/2007-01-05-Local-Name-Conflict.ll @@ -1,5 +1,4 @@ ; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f -; XFAIL: * implementation ; Functions: diff --git a/test/Assembler/2007-01-12-Varargs-Upgrade.ll b/test/Assembler/2007-01-12-Varargs-Upgrade.ll index 3de12a3..3c1f5bb 100644 --- a/test/Assembler/2007-01-12-Varargs-Upgrade.ll +++ b/test/Assembler/2007-01-12-Varargs-Upgrade.ll @@ -1,45 +1,18 @@ ; For PR1093: This test checks that llvm-upgrade correctly translates ; the llvm.va_* intrinsics to their cannonical argument form (i8*). ; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | \ -; RUN: grep 'va_upgrade[0-9] = bitcast' | wc -l | grep 5 +; RUN: grep ' bitcast' | wc -l | grep 5 %str = internal constant [7 x ubyte] c"%d %d\0A\00" ; <[7 x ubyte]*> [#uses=1] implementation ; Functions: void %f(int %a_arg, ...) { entry: - %a = cast int %a_arg to uint ; <uint> [#uses=1] %l1 = alloca sbyte*, align 4 ; <sbyte**> [#uses=5] %l2 = alloca sbyte*, align 4 ; <sbyte**> [#uses=4] - %memtmp = alloca sbyte* ; <sbyte**> [#uses=2] + %l3 = alloca sbyte* ; <sbyte**> [#uses=2] call void %llvm.va_start( sbyte** %l1 ) - %tmp22 = seteq int %a_arg, 0 ; <bool> [#uses=1] - %tmp23 = volatile load sbyte** %l1 ; <sbyte*> [#uses=2] - br bool %tmp22, label %bb8, label %bb - -bb: ; preds = %bb, %entry - %indvar = phi uint [ 0, %entry ], [ %indvar.next, %bb ] ; <uint> [#uses=1] - %tmp.0 = phi sbyte* [ %tmp23, %entry ], [ %tmp, %bb ] ; <sbyte*> [#uses=2] - %tmp2 = getelementptr sbyte* %tmp.0, int 4 ; <sbyte*> [#uses=1] - volatile store sbyte* %tmp2, sbyte** %l1 - %tmp3 = cast sbyte* %tmp.0 to int* ; <int*> [#uses=1] - %tmp = load int* %tmp3 ; <int> [#uses=1] - %tmp = volatile load sbyte** %l1 ; <sbyte*> [#uses=2] - %indvar.next = add uint %indvar, 1 ; <uint> [#uses=2] - %exitcond = seteq uint %indvar.next, %a ; <bool> [#uses=1] - br bool %exitcond, label %bb8, label %bb - -bb8: ; preds = %bb, %entry - %p1.0.1 = phi int [ undef, %entry ], [ %tmp, %bb ] ; <int> [#uses=1] - %tmp.1 = phi sbyte* [ %tmp23, %entry ], [ %tmp, %bb ] ; <sbyte*> [#uses=1] - store sbyte* %tmp.1, sbyte** %memtmp - call void %llvm.va_copy( sbyte** %l2, sbyte** %memtmp ) - %tmp10 = volatile load sbyte** %l2 ; <sbyte*> [#uses=2] - %tmp12 = getelementptr sbyte* %tmp10, int 4 ; <sbyte*> [#uses=1] - volatile store sbyte* %tmp12, sbyte** %l2 - %tmp13 = cast sbyte* %tmp10 to int* ; <int*> [#uses=1] - %tmp14 = load int* %tmp13 ; <int> [#uses=1] - %tmp17 = call int (ubyte*, ...)* %printf( ubyte* getelementptr ([7 x ubyte]* %str, int 0, uint 0), int %p1.0.1, int %tmp14 ) ; <int> [#uses=0] + call void %llvm.va_copy( sbyte** %l2, sbyte** %l3 ) call void %llvm.va_end( sbyte** %l1 ) call void %llvm.va_end( sbyte** %l2 ) ret void diff --git a/test/Assembler/2007-01-16-CrashOnBadCast.ll b/test/Assembler/2007-01-16-CrashOnBadCast.ll index 5e11300..859e837 100644 --- a/test/Assembler/2007-01-16-CrashOnBadCast.ll +++ b/test/Assembler/2007-01-16-CrashOnBadCast.ll @@ -2,7 +2,7 @@ ; RUN: llvm-as < %s 2>&1 > /dev/null | \ ; RUN: grep "invalid cast opcode for cast from" -define i8* %nada(i64 %X) { +define i8* @nada(i64 %X) { %result = trunc i64 %X to i8* ret i8* %result } diff --git a/test/Assembler/2007-01-16-CrashOnBadCast2.ll b/test/Assembler/2007-01-16-CrashOnBadCast2.ll index 80cbeac..bcc6f0e 100644 --- a/test/Assembler/2007-01-16-CrashOnBadCast2.ll +++ b/test/Assembler/2007-01-16-CrashOnBadCast2.ll @@ -2,4 +2,4 @@ ; RUN: llvm-as < %s 2>&1 > /dev/null | \ ; RUN: grep "invalid cast opcode for cast from" -%X = constant i8* trunc (i64 0 to i8*) +@X = constant i8* trunc (i64 0 to i8*) diff --git a/test/Assembler/2007-01-21-UpgradeNoArgs.ll b/test/Assembler/2007-01-21-UpgradeNoArgs.ll new file mode 100644 index 0000000..e36704c --- /dev/null +++ b/test/Assembler/2007-01-21-UpgradeNoArgs.ll @@ -0,0 +1,13 @@ +; Make sure we don't get an assertion failure, even though this is a parse +; error +; RUN: llvm-upgrade 2>&1 < %s > /dev/null | grep 'No arguments passed to a ' + +%ty = type void (int) + +declare %ty* %foo() + +void %test() { + call %ty* %foo( ) ; <%ty*>:0 [#uses=0] + ret void +} + diff --git a/test/Assembler/2007-01-22-UpgradeMalformedShift.ll b/test/Assembler/2007-01-22-UpgradeMalformedShift.ll new file mode 100644 index 0000000..5ebd86c --- /dev/null +++ b/test/Assembler/2007-01-22-UpgradeMalformedShift.ll @@ -0,0 +1,4 @@ +; Found by inspection of the code +; RUN: llvm-upgrade 2>&1 < %s > /dev/null | grep "Shift constant expression" + +global int shr (float 1.0, ubyte 2) diff --git a/test/Assembler/2007-01-22-UpgradeMalformedStruct.ll b/test/Assembler/2007-01-22-UpgradeMalformedStruct.ll new file mode 100644 index 0000000..28c840c --- /dev/null +++ b/test/Assembler/2007-01-22-UpgradeMalformedStruct.ll @@ -0,0 +1,4 @@ +; Found by inspection of the code +; RUN: llvm-upgrade 2>&1 < %s > /dev/null | grep "Illegal number of init" + +global {} { int 7, float 1.0, int 7, int 8 } diff --git a/test/Assembler/2007-01-22-UpgradeTypeMapInvalidMemory.ll b/test/Assembler/2007-01-22-UpgradeTypeMapInvalidMemory.ll new file mode 100644 index 0000000..0c3c4be --- /dev/null +++ b/test/Assembler/2007-01-22-UpgradeTypeMapInvalidMemory.ll @@ -0,0 +1,5 @@ +; RUN: llvm-upgrade 2>&1 < %s -o /dev/null -f | grep 'Reference to an undef' + +%d_reduction_0_dparser_gram = global { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)*, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** } { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)* null, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** null } + +implementation |