1617a3babSopenharmony_ci#version 310 es
2617a3babSopenharmony_ci
3617a3babSopenharmony_ci
4617a3babSopenharmony_ci#define X(n) n + 1
5617a3babSopenharmony_ci#define Y(n, z) n + z
6617a3babSopenharmony_ci#define Z(f) X(f)
7617a3babSopenharmony_ci
8617a3babSopenharmony_ci#define REALLY_LONG_MACRO_NAME_WITH_MANY_PARAMETERS(X1, X2, X3, X4, X5, X6, X7,\
9617a3babSopenharmony_ci    X8, X9, X10, X11, X12) X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12
10617a3babSopenharmony_ci
11617a3babSopenharmony_ci#define A(\
12617a3babSopenharmony_ci  Y\
13617a3babSopenharmony_ci  )\
14617a3babSopenharmony_ci4 + 3 + Y
15617a3babSopenharmony_ci
16617a3babSopenharmony_ci#define F F.a
17617a3babSopenharmony_ci
18617a3babSopenharmony_ciint main() {
19617a3babSopenharmony_ci  gl_Position = vec4(X(3), Y(3, 4), Z(3));
20617a3babSopenharmony_ci  gl_Position = vec4(REALLY_LONG_MACRO_NAME_WITH_MANY_PARAMETERS(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12));
21617a3babSopenharmony_ci  gl_Position = vec4(A(3));
22617a3babSopenharmony_ci  gl_Position = A(F);
23617a3babSopenharmony_ci}
24