method r(x y)
return (x - y) - 10;
end;
+
+method s(x y)
+ return 6 - (x - 1);
+end;
extern long q(long this, long, long);
extern long r(long this, long, long);
+extern long s(long this, long, long);
-RET((q(0xDEAD, 33, 15) == -10) && (r(0xDEAD, 33, 15) == 8));
+RET((q(0xDEAD, 33, 15) == -10) && (r(0xDEAD, 33, 15) == 8) && (s(0xDEAD, 33, 15) == -26));
method Long(a b c d e)
return (a - (e - 20)) - (b - (c - (99 - d)));
end;
+
+method Loong(a b c d e)
+ return a - (b - (c - (d - (e - (a - (b - (c - (d - (e - 10)))))))));
+end;
+
+method Looong(a b c d e)
+ return (11 - a) - (22 - b) - (33 - c - (44 - d)) - (55 - (77 - e - -66));
+end;
long Long(long this, long, long, long, long, long);
-RET( Long(0xDEAD, 23, 66, 1024, 9999999, 65535) == 9935366 );
+RET( (Long(0xDEAD, 23, 66, 1024, 9999999, 65535) == 9935366) && (Loong(0xDEAD, 11, 22, 33, 44, 55) == 10)
+ && (Looong(0xDEAD, 34, 92934, 2991, 12389, 72281) == 11309) );
--- /dev/null
+struct foo bar beef end;
+
+method foobar()
+ return foo.beef;
+end;
+
+method foobar2()
+ return this.bar;
+end;
+
+method foobar3()
+ return (233 - 31).beef;
+end;
--- /dev/null
+long foobar(long);
+long foobar2(long);
+long foobar3(long);
+
+long tmp[] = {1111, 2222, 3333};
+/*
+asm( "\tpush %%rax\n"
+ "\tmovq $42, %%rax\n"
+ "\tmovq %%rax, 218\n"
+ "\tpop %%rax\n" :: );
+*/
+RET((foobar((long) tmp) == tmp[2])
+ && (foobar2((long) tmp) == tmp[1]));
+ //&& (foobar3(0xDEAD) == 42));