8 printf(" a=0x%08x; taint(&b); b=0x%08x; assert((%s) == 0x%08x);\n", a, b, #exp, exp)
10 int main(int argc
, char *argv
[])
14 printf("#include <assert.h>\n"
15 "void taint(unsigned *x) { asm(\"\" : \"=r\" (x)); } \n"
16 "int main(int argc, char *argv[]) {\n"
20 for (i
= 0; i
< NTESTS
; ++i
) {
21 unsigned a
= random();
22 unsigned b
= random();
32 TRY((int) a
* (int) b
);
36 TRY((int) a
/ (int) b
);
37 TRY((int) a
% (int) b
);
46 TRY((int) a
>> (int) b
);
55 TRY((int) a
> (int) b
);
56 TRY((int) a
>= (int) b
);
57 TRY((int) a
< (int) b
);
58 TRY((int) a
<= (int) b
);
59 TRY((int) a
== (int) b
);
60 TRY((int) a
!= (int) b
);
61 TRY((int) a
< (int) 0);
62 TRY((int) a
<= (int) 0);