| #if (1 << 100) != 0 |
| #error shifting left by more than the width should yield 0, something went wrong. |
| #endif |
| #if (1 >> 100) != 0 |
| #error shifting right by more than the width should yield 0, something went wrong. |
| #endif |
| #if (-1 >> 100) != -1 |
| #error shifting a negative right by more than the width should sign fill, something went wrong. |
| #endif |
| #if (1 << -1) != 0 |
| #error shifting left by a negative amount should yield 0, something went wrong. |
| #endif |
| #if (1 >> -1) != 0 |
| #error shifting right by a negative amount should yield 0, something went wrong. |
| #endif |
| #if (-1 << 1) != -2 |
| #error shifting a negative left should wrap, something went wrong. |
| #endif |
| #if (2147483647 + 1) != -2147483648 |
| #error addition should wrap, something went wrong. |
| #endif |
| #if (-2147483648 - 1) != 2147483647 |
| #error subtraction should wrap, something went wrong. |
| #endif |
| #if (2147483647 * 2) != -2 |
| #error multiplication should wrap, something went wrong. |
| #endif |