xref: /llvm-project/clang/test/Parser/function-parameter-limit.cpp (revision 281d17840c35a1d80303bb6170c253fe2411f95f)
1*281d1784SVlad Serebrennikov // RUN: %clang_cc1 -verify %s
2*281d1784SVlad Serebrennikov 
3*281d1784SVlad Serebrennikov #define P_10(x) x##0, x##1, x##2, x##3, x##4, x##5, x##6, x##7, x##8, x##9,
4*281d1784SVlad Serebrennikov #define P_100(x) P_10(x##0) P_10(x##1) P_10(x##2) P_10(x##3) P_10(x##4) \
5*281d1784SVlad Serebrennikov                  P_10(x##5) P_10(x##6) P_10(x##7) P_10(x##8) P_10(x##9)
6*281d1784SVlad Serebrennikov #define P_1000(x) P_100(x##0) P_100(x##1) P_100(x##2) P_100(x##3) P_100(x##4) \
7*281d1784SVlad Serebrennikov                   P_100(x##5) P_100(x##6) P_100(x##7) P_100(x##8) P_100(x##9)
8*281d1784SVlad Serebrennikov #define P_10000(x) P_1000(x##0) P_1000(x##1) P_1000(x##2) P_1000(x##3) P_1000(x##4) \
9*281d1784SVlad Serebrennikov                    P_1000(x##5) P_1000(x##6) P_1000(x##7) P_1000(x##8) P_1000(x##9)
10*281d1784SVlad Serebrennikov 
11*281d1784SVlad Serebrennikov void func (
12*281d1784SVlad Serebrennikov   P_10000(int p)
13*281d1784SVlad Serebrennikov   P_10000(int q)
14*281d1784SVlad Serebrennikov   P_10000(int r)
15*281d1784SVlad Serebrennikov   P_10000(int s)
16*281d1784SVlad Serebrennikov   P_10000(int t)
17*281d1784SVlad Serebrennikov   P_10000(int u)
18*281d1784SVlad Serebrennikov   P_10000(int v) // expected-error {{too many function parameters; subsequent parameters will be ignored}}
19*281d1784SVlad Serebrennikov   int w);
20*281d1784SVlad Serebrennikov 
21*281d1784SVlad Serebrennikov extern double(*func2)(
22*281d1784SVlad Serebrennikov   P_10000(int p)
23*281d1784SVlad Serebrennikov   P_10000(int q)
24*281d1784SVlad Serebrennikov   P_10000(int r)
25*281d1784SVlad Serebrennikov   P_10000(int s)
26*281d1784SVlad Serebrennikov   P_10000(int t)
27*281d1784SVlad Serebrennikov   P_10000(int u)
28*281d1784SVlad Serebrennikov   P_10000(int v) // expected-error {{too many function parameters; subsequent parameters will be ignored}}
29*281d1784SVlad Serebrennikov   int w);
30