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