swig/Examples/test-suite/errors/pp_unknowndirective5.i
Olly Betts 8cd2cfa9d1 Improve the change to allow parsing 9%a
If there was a later syntax error, this could incorrectly get
reported as:

Error: Unknown directive '%a'.
2022-03-04 17:00:20 +13:00

20 lines
751 B
OpenEdge ABL

%module xxx
/* Before SWIG 4.1.0 the `9%a` expression triggered:
*
* Error: Unknown directive '%a'
*
* The fix for that works by handling an apparent directive that isn't a
* recognised directive by noting down its name, emitting MODULO and then
* rescanning what follows, and if the parser then gives a syntax error we
* report it as an unknown directive.
*
* However the initial version of this failed to reset the noted down apparent
* directive often enough, so a later syntax error could get incorrectly
* reported. Here the syntax error in the declaration of `c` was confusingly
* reported as `Error: Unknown directive '%a'`. This was found and fixed prior
* to 4.1.0.
*/
int a;
int test2(int b = 9%a) { return b; }
void int c;