| %module preproc_expr |
| |
| // Check expressions which suffered from incorrect operator precedence prior |
| // to SWIG 4.1.0. |
| |
| %inline %{ |
| // `!` should have higher precedence than binary `+`. |
| #if !0 + 1 |
| #else |
| # error Bad preprocessor expression operator precedence |
| #endif |
| |
| // `!=` should have higher precedence than bitwise and. |
| #if 1 & 2 != 0 |
| #else |
| # error Bad preprocessor expression operator precedence |
| #endif |
| |
| // `==` should have higher precedence than bitwise or. |
| #if (2 | 1 == 3) != 2 |
| # error Bad preprocessor expression operator precedence |
| #endif |
| |
| // `!=` should have higher precedence than bitwise xor. |
| #if 1 ^ 2 != 4 |
| # error Bad preprocessor expression operator precedence |
| #endif |
| |
| // `<` should have higher precedence than '=='. |
| #if 2 == 2 < 2 |
| # error Bad preprocessor expression operator precedence |
| #endif |
| |
| %} |