mirror of
https://github.com/frida/tinycc
synced 2024-11-28 18:43:07 +03:00
42c1b6ba38
The tests are taken almost verbatim from the open source project PicoC. It can be found at https://code.google.com/p/picoc/. The tests range from very simple/trivial ones to more complicated. My view is that the more tests the better. Without tests like this I was very reluctant to make any changes to tcc for the fear of breaking things. The tests pass on Win32, OSX, Linux x86 and x86_64. One or two tests fail on each platform due to differences in the runtime library.
51 lines
1.1 KiB
C
51 lines
1.1 KiB
C
#include <stdio.h>
|
|
#include <math.h>
|
|
|
|
int main()
|
|
{
|
|
// variables
|
|
float a = 12.34 + 56.78;
|
|
printf("%f\n", a);
|
|
|
|
// infix operators
|
|
printf("%f\n", 12.34 + 56.78);
|
|
printf("%f\n", 12.34 - 56.78);
|
|
printf("%f\n", 12.34 * 56.78);
|
|
printf("%f\n", 12.34 / 56.78);
|
|
|
|
// comparison operators
|
|
printf("%d %d %d %d %d %d\n", 12.34 < 56.78, 12.34 <= 56.78, 12.34 == 56.78, 12.34 >= 56.78, 12.34 > 56.78, 12.34 != 56.78);
|
|
printf("%d %d %d %d %d %d\n", 12.34 < 12.34, 12.34 <= 12.34, 12.34 == 12.34, 12.34 >= 12.34, 12.34 > 12.34, 12.34 != 12.34);
|
|
printf("%d %d %d %d %d %d\n", 56.78 < 12.34, 56.78 <= 12.34, 56.78 == 12.34, 56.78 >= 12.34, 56.78 > 12.34, 56.78 != 12.34);
|
|
|
|
// assignment operators
|
|
a = 12.34;
|
|
a += 56.78;
|
|
printf("%f\n", a);
|
|
|
|
a = 12.34;
|
|
a -= 56.78;
|
|
printf("%f\n", a);
|
|
|
|
a = 12.34;
|
|
a *= 56.78;
|
|
printf("%f\n", a);
|
|
|
|
a = 12.34;
|
|
a /= 56.78;
|
|
printf("%f\n", a);
|
|
|
|
// prefix operators
|
|
printf("%f\n", +12.34);
|
|
printf("%f\n", -12.34);
|
|
|
|
// type coercion
|
|
a = 2;
|
|
printf("%f\n", a);
|
|
printf("%f\n", sin(2));
|
|
|
|
return 0;
|
|
}
|
|
|
|
/* vim: set expandtab ts=4 sw=3 sts=3 tw=80 :*/
|