3 * File name: test/Long.c
4 * Purpose: Long integer test program
5 * Author: Goetz Lindenmaier
6 * Modified by: Michael Beck
9 * Copyright: (c) 2002 Universitaet Karlsruhe
15 static int hide_int (int i) {
19 int main (int argc, char *argv[]) {
20 long long lmax, lmin, lmin1, limax, limin1, limin, l1, l;
23 printf("LongLong.c\n");
25 lmax = 9223372036854775807LL; /* java.lang.Long.MAX_VALUE */
26 lmin1 = -9223372036854775807LL; /* java.lang.Long.MIN_VALUE */
27 lmin = -9223372036854775808LL; /* java.lang.Long.MIN_VALUE */
28 limax = 2147483647L; /* java.lang.Integer.MAX_VALUE */
29 limin1 = -2147483647L; /* java.lang.Integer.MAX_VALUE-1 */
30 limin = -2147483648L; /* java.lang.Integer.MIN_VALUE */
32 printf(" Long long values allowed in C:\n");
33 /* So far, these values are not representable by libfirm. */
34 printf(" LongLong.MAX_VALUE ( 9223372036854775807LL) = %lld\n", lmax);
35 printf(" LongLong.MIN_VALUE-1 (-9223372036854775807LL) = %lld\n", lmin1);
36 printf(" LongLong.MIN_VALUE (-9223372036854775808LL) = %lld\n", lmin);
38 printf("\n Extreme integer values represented as long long:\n");
39 printf(" Long.MAX_VALUE ( 2147483647L) = %lld\n", limax);
40 printf(" Long.MIN_VALUE-1 (-2147483647L) = %lld\n", limin1);
41 printf(" Long.MIN_VALUE (-2147483648L) = %lld\n", limin);
43 printf("\n Computations exceeding these barriers:\n");
46 l = hide_int(i) + 3LL;
47 printf(" long long l = (int i = 2147483647) + 3LL (2147483650): %lld\n", l);
49 printf(" long long l = 2 * l (4294967300): %lld\n", l);
51 printf(" long long l = l * -1 (-4294967300): %lld\n", l);
53 printf(" long long l = l / 3 (-1431655766): %lld\n", l);
55 printf(" long long l = l %% 1000000000 (-431655766): %lld\n", l);