| %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 | |
| %} |