1 extern void abort (void) __attribute__((noreturn
));
2 extern int printf (const char *, ...);
4 int func1 (int, int) __attribute__((noinline
));
5 long func2 (int, int) __attribute__((noinline
));
6 long func3 (long, long) __attribute__((noinline
));
7 long long func4 (long, long) __attribute__((noinline
));
8 long long func5 (long long, long long) __attribute__((noinline
));
9 unsigned long func6 (unsigned int, unsigned int) __attribute__((noinline
));
10 unsigned long long func7 (unsigned long, unsigned long) __attribute__((noinline
));
17 if (func1 (6, 7) != 42)
20 printf ("test1 fail: 6 * 7 = %d!\n", func1 (6, 7));
25 if (func2 (1000, 1000) != 1000000L)
28 printf ("test2 fail: 1000 * 1000 = %ld!\n", func2 (1000, 1000));
33 if (func3 (70000L, -32L) != -2240000L)
36 printf ("test3 fail: 70000 * -32 = %ld!\n", func3 (70000L, -32L));
41 if (func4 (-40L, -80L) != 3200LL)
44 printf ("test4 fail: -40 * -80 = %lld!\n", func4 (-40L, -80L));
49 if (func5(9LL, 9LL) != 81LL)
52 printf ("test5 fail: 9 * 9 = %lld!\n", func5 (9LL, 9LL));
57 if (func6 (-2U, 8U) != 524272LU)
60 printf ("test6 fail: -2 * 8 = %lu!\n", func6 (-2U, 8U));
65 if (func7 (99UL, 101UL) != 9999LLU)
68 printf ("test7 fail: 99 * 101 = %llu!\n", func7 (99UL, 101UL));
76 int func1 (int a
, int b
) { return a
* b
; }
77 long func2 (int a
, int b
) { return (long) a
* (long) b
; }
78 long func3 (long a
, long b
) { return a
* b
; }
79 long long func4 (long a
, long b
) { return (long long) a
* (long long) b
; }
80 long long func5 (long long a
, long long b
) { return a
* b
; }
81 unsigned long func6 (unsigned int a
, unsigned int b
) { return (unsigned long) a
* (unsigned long) b
; }
82 unsigned long long func7 (unsigned long a
, unsigned long b
) { return (unsigned long long) a
* (unsigned long long) b
; }