diff options
Diffstat (limited to 'Examples/test-suite/preproc_expr.i')
-rw-r--r-- | Examples/test-suite/preproc_expr.i | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Examples/test-suite/preproc_expr.i b/Examples/test-suite/preproc_expr.i new file mode 100644 index 000000000..a24f7715c --- /dev/null +++ b/Examples/test-suite/preproc_expr.i @@ -0,0 +1,34 @@ +%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 + +%} |