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