diff --git a/Examples/test-suite/errors/pp_expressions_bad.i b/Examples/test-suite/errors/pp_expressions_bad.i index 454437f95..62267a456 100644 --- a/Examples/test-suite/errors/pp_expressions_bad.i +++ b/Examples/test-suite/errors/pp_expressions_bad.i @@ -41,3 +41,13 @@ #if(1) #warning Warning okay: #if(1) #endif + +/* The SWIG preprocessor support strings with equality/inequality tests. + * Check error cases. + */ +#if "TWO" == 1 +#endif + +/* This didn't fail prior with SWIG < 4.1. Github #1384. */ +#if 1 == ("TWO") +#endif diff --git a/Examples/test-suite/errors/pp_expressions_bad.stderr b/Examples/test-suite/errors/pp_expressions_bad.stderr index 84104c6a8..f8cd1d549 100644 --- a/Examples/test-suite/errors/pp_expressions_bad.stderr +++ b/Examples/test-suite/errors/pp_expressions_bad.stderr @@ -17,3 +17,7 @@ pp_expressions_bad.i:30: Error: Extraneous #endif. pp_expressions_bad.i:32: Error: Unknown SWIG preprocessor directive: if456e (if this is a block of target language code, delimit it with %{ and %}) pp_expressions_bad.i:33: Error: Extraneous #endif. pp_expressions_bad.i:42: Warning 204: CPP #warning, "Warning okay: #if(1)". +pp_expressions_bad.i:48: Warning 202: Could not evaluate expression '"TWO" == 1' +pp_expressions_bad.i:48: Warning 202: Error: 'Can't mix strings and integers in expression' +pp_expressions_bad.i:52: Warning 202: Could not evaluate expression '1 == ("TWO")' +pp_expressions_bad.i:52: Warning 202: Error: 'Can't mix strings and integers in expression'