| typedef __int128 int128_t; |
| typedef signed __int128 sint128_t; |
| typedef unsigned __int128 uint128_t; |
| |
| typedef __int128 int badxi; |
| typedef int __int128 badix; |
| typedef unsigned unsigned __int128 baduu; |
| typedef double __int128 baddx; |
| typedef __int128 double badxd; |
| |
| int sizeof_int128(void) |
| { |
| return sizeof(__int128); |
| } |
| |
| typedef unsigned long long u64; |
| typedef unsigned long u32; |
| |
| u64 foo(u64 a, u64 b, u64 c, u32 s) |
| { |
| unsigned __int128 tmp; |
| |
| tmp = (((uint128_t)a) * b) + c; |
| return (u64) (tmp >> s); |
| } |
| |
| /* |
| * check-name: int128 |
| * check-command: test-linearize $file |
| * check-output-ignore |
| * |
| * check-output-contains: ret\\..*\\$16 |
| * check-output-contains: mul\\.128 |
| * check-output-contains: add\\.128 |
| * |
| * check-error-start |
| int128.c:5:18: error: two or more data types in declaration specifiers |
| int128.c:5:18: error: Trying to use reserved word 'int' as identifier |
| int128.c:5:25: error: Expected ; at end of declaration |
| int128.c:5:25: error: got badxi |
| int128.c:6:13: error: two or more data types in declaration specifiers |
| int128.c:6:13: error: Trying to use reserved word '__int128' as identifier |
| int128.c:6:25: error: Expected ; at end of declaration |
| int128.c:6:25: error: got badix |
| int128.c:7:18: error: impossible combination of type specifiers: unsigned unsigned |
| int128.c:7:18: error: Trying to use reserved word 'unsigned' as identifier |
| int128.c:7:27: error: Expected ; at end of declaration |
| int128.c:7:27: error: got __int128 |
| int128.c:8:16: error: two or more data types in declaration specifiers |
| int128.c:8:16: error: Trying to use reserved word '__int128' as identifier |
| int128.c:8:25: error: Expected ; at end of declaration |
| int128.c:8:25: error: got baddx |
| int128.c:9:18: error: two or more data types in declaration specifiers |
| int128.c:9:18: error: Trying to use reserved word 'double' as identifier |
| int128.c:9:25: error: Expected ; at end of declaration |
| int128.c:9:25: error: got badxd |
| * check-error-end |
| */ |