File: pp_unknowndirective5.i

package info (click to toggle)
swig 4.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 45,980 kB
  • sloc: cpp: 54,284; ansic: 29,022; java: 17,595; python: 12,734; cs: 10,421; ruby: 7,263; yacc: 6,501; makefile: 5,860; javascript: 5,538; sh: 5,422; perl: 4,246; php: 3,733; ml: 2,198; tcl: 2,015; lisp: 1,448; xml: 115
file content (20 lines) | stat: -rw-r--r-- 751 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
%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;