1typedef		 __int128	 int128_t;
2typedef   signed __int128	sint128_t;
3typedef unsigned __int128	uint128_t;
4
5typedef	__int128 int	badxi;
6typedef int __int128	badix;
7typedef unsigned unsigned __int128 baduu;
8typedef double __int128 baddx;
9typedef __int128 double badxd;
10
11int sizeof_int128(void)
12{
13	return sizeof(__int128);
14}
15
16typedef unsigned long long u64;
17typedef unsigned long      u32;
18
19u64 foo(u64 a, u64 b, u64 c, u32 s)
20{
21       unsigned __int128 tmp;
22
23       tmp = (((uint128_t)a) * b) + c;
24       return (u64) (tmp >> s);
25}
26
27/*
28 * check-name: int128
29 * check-command: test-linearize $file
30 * check-output-ignore
31 *
32 * check-output-contains: ret\\..*\\$16
33 * check-output-contains: mul\\.128
34 * check-output-contains: add\\.128
35 *
36 * check-error-start
37int128.c:5:18: error: two or more data types in declaration specifiers
38int128.c:5:18: error: Trying to use reserved word 'int' as identifier
39int128.c:5:25: error: Expected ; at end of declaration
40int128.c:5:25: error: got badxi
41int128.c:6:13: error: two or more data types in declaration specifiers
42int128.c:6:13: error: Trying to use reserved word '__int128' as identifier
43int128.c:6:25: error: Expected ; at end of declaration
44int128.c:6:25: error: got badix
45int128.c:7:18: error: impossible combination of type specifiers: unsigned unsigned
46int128.c:7:18: error: Trying to use reserved word 'unsigned' as identifier
47int128.c:7:27: error: Expected ; at end of declaration
48int128.c:7:27: error: got __int128
49int128.c:8:16: error: two or more data types in declaration specifiers
50int128.c:8:16: error: Trying to use reserved word '__int128' as identifier
51int128.c:8:25: error: Expected ; at end of declaration
52int128.c:8:25: error: got baddx
53int128.c:9:18: error: two or more data types in declaration specifiers
54int128.c:9:18: error: Trying to use reserved word 'double' as identifier
55int128.c:9:25: error: Expected ; at end of declaration
56int128.c:9:25: error: got badxd
57 * check-error-end
58 */
59