14db4868dSAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 %s -Wno-openmp-mapping -Wuninitialized
29925f156SCarlo Bertolli
34db4868dSAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 %s -Wno-openmp-mapping -Wuninitialized
4a8a9153aSAlexey Bataev
59925f156SCarlo Bertolli
6*656d0223SJennifer Yu struct S1; // expected-note 2 {{declared here}} // expected-note 2 {{forward declaration of 'S1'}}
79925f156SCarlo Bertolli extern S1 a;
89925f156SCarlo Bertolli class S2 {
99925f156SCarlo Bertolli mutable int a;
109925f156SCarlo Bertolli public:
S2()119925f156SCarlo Bertolli S2():a(0) { }
S2(S2 & s2)129925f156SCarlo Bertolli S2(S2 &s2):a(s2.a) { }
139925f156SCarlo Bertolli };
149925f156SCarlo Bertolli const S2 b;
159925f156SCarlo Bertolli const S2 ba[5];
169925f156SCarlo Bertolli class S3 {
179925f156SCarlo Bertolli int a;
189925f156SCarlo Bertolli public:
S3()199925f156SCarlo Bertolli S3():a(0) { }
S3(S3 & s3)209925f156SCarlo Bertolli S3(S3 &s3):a(s3.a) { }
219925f156SCarlo Bertolli };
229925f156SCarlo Bertolli const S3 c;
239925f156SCarlo Bertolli const S3 ca[5];
249925f156SCarlo Bertolli extern const int f;
259925f156SCarlo Bertolli class S4 {
269925f156SCarlo Bertolli int a;
279925f156SCarlo Bertolli S4();
289925f156SCarlo Bertolli S4(const S4 &s4);
299925f156SCarlo Bertolli public:
S4(int v)309925f156SCarlo Bertolli S4(int v):a(v) { }
319925f156SCarlo Bertolli };
329925f156SCarlo Bertolli class S5 {
339925f156SCarlo Bertolli int a;
S5()349925f156SCarlo Bertolli S5():a(0) {}
S5(const S5 & s5)359925f156SCarlo Bertolli S5(const S5 &s5):a(s5.a) { }
369925f156SCarlo Bertolli public:
S5(int v)379925f156SCarlo Bertolli S5(int v):a(v) { }
389925f156SCarlo Bertolli };
399925f156SCarlo Bertolli
409925f156SCarlo Bertolli S3 h;
419925f156SCarlo Bertolli #pragma omp threadprivate(h) // expected-note 2 {{defined as threadprivate or thread local}}
429925f156SCarlo Bertolli
439925f156SCarlo Bertolli namespace A {
449925f156SCarlo Bertolli double x;
459925f156SCarlo Bertolli #pragma omp threadprivate(x) // expected-note 2 {{defined as threadprivate or thread local}}
469925f156SCarlo Bertolli }
479925f156SCarlo Bertolli namespace B {
489925f156SCarlo Bertolli using A::x;
499925f156SCarlo Bertolli }
509925f156SCarlo Bertolli
519925f156SCarlo Bertolli template <class T, typename S, int N>
tmain(T argc,S ** argv)529925f156SCarlo Bertolli T tmain(T argc, S **argv) {
539925f156SCarlo Bertolli const int d = 5;
549925f156SCarlo Bertolli const int da[5] = { 0 };
559925f156SCarlo Bertolli S4 e(4);
569925f156SCarlo Bertolli S5 g(5);
579925f156SCarlo Bertolli int i;
589925f156SCarlo Bertolli int &j = i;
599925f156SCarlo Bertolli int acc = 0;
609925f156SCarlo Bertolli int n = 1000;
619925f156SCarlo Bertolli
629925f156SCarlo Bertolli #pragma omp target
639925f156SCarlo Bertolli #pragma omp teams
649925f156SCarlo Bertolli #pragma omp distribute parallel for shared // expected-error {{expected '(' after 'shared'}}
659925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
669925f156SCarlo Bertolli acc++;
679925f156SCarlo Bertolli }
689925f156SCarlo Bertolli
699925f156SCarlo Bertolli #pragma omp target
709925f156SCarlo Bertolli #pragma omp teams
719925f156SCarlo Bertolli #pragma omp distribute parallel for shared ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
729925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
739925f156SCarlo Bertolli acc++;
749925f156SCarlo Bertolli }
759925f156SCarlo Bertolli
769925f156SCarlo Bertolli #pragma omp target
779925f156SCarlo Bertolli #pragma omp teams
789925f156SCarlo Bertolli #pragma omp distribute parallel for shared () // expected-error {{expected expression}}
799925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
809925f156SCarlo Bertolli acc++;
819925f156SCarlo Bertolli }
829925f156SCarlo Bertolli
839925f156SCarlo Bertolli #pragma omp target
849925f156SCarlo Bertolli #pragma omp teams
859925f156SCarlo Bertolli #pragma omp distribute parallel for shared (argc // expected-error {{expected ')'}} expected-note {{to match this '('}}
869925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
879925f156SCarlo Bertolli acc++;
889925f156SCarlo Bertolli }
899925f156SCarlo Bertolli
909925f156SCarlo Bertolli #pragma omp target
919925f156SCarlo Bertolli #pragma omp teams
929925f156SCarlo Bertolli #pragma omp distribute parallel for shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
939925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
949925f156SCarlo Bertolli acc++;
959925f156SCarlo Bertolli }
969925f156SCarlo Bertolli
979925f156SCarlo Bertolli #pragma omp target
989925f156SCarlo Bertolli #pragma omp teams
999925f156SCarlo Bertolli #pragma omp distribute parallel for shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}}
1009925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1019925f156SCarlo Bertolli acc++;
1029925f156SCarlo Bertolli }
1039925f156SCarlo Bertolli
1049925f156SCarlo Bertolli #pragma omp target
1059925f156SCarlo Bertolli #pragma omp teams
1069925f156SCarlo Bertolli #pragma omp distribute parallel for shared (argc)
1079925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1089925f156SCarlo Bertolli acc++;
1099925f156SCarlo Bertolli }
1109925f156SCarlo Bertolli
1119925f156SCarlo Bertolli #pragma omp target
1129925f156SCarlo Bertolli #pragma omp teams
1139925f156SCarlo Bertolli #pragma omp distribute parallel for shared (S1) // expected-error {{'S1' does not refer to a value}}
1149925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1159925f156SCarlo Bertolli acc++;
1169925f156SCarlo Bertolli }
1179925f156SCarlo Bertolli
1189925f156SCarlo Bertolli #pragma omp target
1199925f156SCarlo Bertolli #pragma omp teams
120f07946e1SAlexey Bataev #pragma omp distribute parallel for shared (a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}}
1219925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1229925f156SCarlo Bertolli acc++;
1239925f156SCarlo Bertolli }
1249925f156SCarlo Bertolli
1259925f156SCarlo Bertolli #pragma omp target
1269925f156SCarlo Bertolli #pragma omp teams
1279925f156SCarlo Bertolli #pragma omp distribute parallel for shared (argv[1]) // expected-error {{expected variable name}}
1289925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1299925f156SCarlo Bertolli acc++;
1309925f156SCarlo Bertolli }
1319925f156SCarlo Bertolli
1329925f156SCarlo Bertolli #pragma omp target
1339925f156SCarlo Bertolli #pragma omp teams
1349925f156SCarlo Bertolli #pragma omp distribute parallel for shared(ba)
1359925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1369925f156SCarlo Bertolli acc++;
1379925f156SCarlo Bertolli }
1389925f156SCarlo Bertolli
1399925f156SCarlo Bertolli #pragma omp target
1409925f156SCarlo Bertolli #pragma omp teams
1419925f156SCarlo Bertolli #pragma omp distribute parallel for shared(ca)
1429925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1439925f156SCarlo Bertolli acc++;
1449925f156SCarlo Bertolli }
1459925f156SCarlo Bertolli
1469925f156SCarlo Bertolli #pragma omp target
1479925f156SCarlo Bertolli #pragma omp teams
1489925f156SCarlo Bertolli #pragma omp distribute parallel for shared(da)
1499925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1509925f156SCarlo Bertolli acc++;
1519925f156SCarlo Bertolli }
1529925f156SCarlo Bertolli
1539925f156SCarlo Bertolli #pragma omp target
1549925f156SCarlo Bertolli #pragma omp teams
1559925f156SCarlo Bertolli #pragma omp distribute parallel for shared(e, g)
1569925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1579925f156SCarlo Bertolli acc++;
1589925f156SCarlo Bertolli }
1599925f156SCarlo Bertolli
1609925f156SCarlo Bertolli #pragma omp target
1619925f156SCarlo Bertolli #pragma omp teams
1629925f156SCarlo Bertolli #pragma omp distribute parallel for shared(h, B::x) // expected-error 2 {{threadprivate or thread local variable cannot be shared}}
1639925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1649925f156SCarlo Bertolli acc++;
1659925f156SCarlo Bertolli }
1669925f156SCarlo Bertolli
1679925f156SCarlo Bertolli #pragma omp target
1689925f156SCarlo Bertolli #pragma omp teams
1699925f156SCarlo Bertolli #pragma omp distribute parallel for private(i), shared(i) // expected-error {{private variable cannot be shared}} expected-note {{defined as private}}
1709925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1719925f156SCarlo Bertolli acc++;
1729925f156SCarlo Bertolli }
1739925f156SCarlo Bertolli
1749925f156SCarlo Bertolli #pragma omp target
1759925f156SCarlo Bertolli #pragma omp teams
1769925f156SCarlo Bertolli #pragma omp distribute parallel for firstprivate(i), shared(i) // expected-error {{firstprivate variable cannot be shared}} expected-note {{defined as firstprivate}}
1779925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1789925f156SCarlo Bertolli acc++;
1799925f156SCarlo Bertolli }
1809925f156SCarlo Bertolli
1819925f156SCarlo Bertolli #pragma omp target
1829925f156SCarlo Bertolli #pragma omp teams
1839925f156SCarlo Bertolli #pragma omp distribute parallel for private(i)
1849925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1859925f156SCarlo Bertolli acc++;
1869925f156SCarlo Bertolli }
1879925f156SCarlo Bertolli
1889925f156SCarlo Bertolli #pragma omp target
1899925f156SCarlo Bertolli #pragma omp teams
1909925f156SCarlo Bertolli #pragma omp distribute parallel for shared(i)
1919925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1929925f156SCarlo Bertolli acc++;
1939925f156SCarlo Bertolli }
1949925f156SCarlo Bertolli
1959925f156SCarlo Bertolli #pragma omp target
1969925f156SCarlo Bertolli #pragma omp teams
1979925f156SCarlo Bertolli #pragma omp distribute parallel for shared(j)
1989925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
1999925f156SCarlo Bertolli acc++;
2009925f156SCarlo Bertolli }
2019925f156SCarlo Bertolli
2029925f156SCarlo Bertolli #pragma omp target
2039925f156SCarlo Bertolli #pragma omp teams
2049925f156SCarlo Bertolli #pragma omp distribute parallel for firstprivate(i)
2059925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2069925f156SCarlo Bertolli acc++;
2079925f156SCarlo Bertolli }
2089925f156SCarlo Bertolli
2099925f156SCarlo Bertolli #pragma omp target
2109925f156SCarlo Bertolli #pragma omp teams
2119925f156SCarlo Bertolli #pragma omp distribute parallel for shared(i)
2129925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2139925f156SCarlo Bertolli acc++;
2149925f156SCarlo Bertolli }
2159925f156SCarlo Bertolli
2169925f156SCarlo Bertolli #pragma omp target
2179925f156SCarlo Bertolli #pragma omp teams
2189925f156SCarlo Bertolli #pragma omp distribute parallel for shared(j)
2199925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2209925f156SCarlo Bertolli acc++;
2219925f156SCarlo Bertolli }
2229925f156SCarlo Bertolli return T();
2239925f156SCarlo Bertolli }
2249925f156SCarlo Bertolli
2259925f156SCarlo Bertolli
main(int argc,char ** argv)2269925f156SCarlo Bertolli int main(int argc, char **argv) {
2279925f156SCarlo Bertolli const int d = 5;
2289925f156SCarlo Bertolli const int da[5] = { 0 };
2299925f156SCarlo Bertolli S4 e(4);
2309925f156SCarlo Bertolli S5 g(5);
2319925f156SCarlo Bertolli int i;
2329925f156SCarlo Bertolli int &j = i;
2339925f156SCarlo Bertolli int acc = 0;
2349925f156SCarlo Bertolli int n = argc;
2359925f156SCarlo Bertolli
2369925f156SCarlo Bertolli #pragma omp target
2379925f156SCarlo Bertolli #pragma omp teams
2389925f156SCarlo Bertolli #pragma omp distribute parallel for shared // expected-error {{expected '(' after 'shared'}}
2399925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2409925f156SCarlo Bertolli acc++;
2419925f156SCarlo Bertolli }
2429925f156SCarlo Bertolli
2439925f156SCarlo Bertolli #pragma omp target
2449925f156SCarlo Bertolli #pragma omp teams
2459925f156SCarlo Bertolli #pragma omp distribute parallel for shared ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
2469925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2479925f156SCarlo Bertolli acc++;
2489925f156SCarlo Bertolli }
2499925f156SCarlo Bertolli
2509925f156SCarlo Bertolli #pragma omp target
2519925f156SCarlo Bertolli #pragma omp teams
2529925f156SCarlo Bertolli #pragma omp distribute parallel for shared () // expected-error {{expected expression}}
2539925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2549925f156SCarlo Bertolli acc++;
2559925f156SCarlo Bertolli }
2569925f156SCarlo Bertolli
2579925f156SCarlo Bertolli #pragma omp target
2589925f156SCarlo Bertolli #pragma omp teams
2599925f156SCarlo Bertolli #pragma omp distribute parallel for shared (argc // expected-error {{expected ')'}} expected-note {{to match this '('}}
2609925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2619925f156SCarlo Bertolli acc++;
2629925f156SCarlo Bertolli }
2639925f156SCarlo Bertolli
2649925f156SCarlo Bertolli #pragma omp target
2659925f156SCarlo Bertolli #pragma omp teams
2669925f156SCarlo Bertolli #pragma omp distribute parallel for shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
2679925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2689925f156SCarlo Bertolli acc++;
2699925f156SCarlo Bertolli }
2709925f156SCarlo Bertolli
2719925f156SCarlo Bertolli #pragma omp target
2729925f156SCarlo Bertolli #pragma omp teams
2739925f156SCarlo Bertolli #pragma omp distribute parallel for shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}}
2749925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2759925f156SCarlo Bertolli acc++;
2769925f156SCarlo Bertolli }
2779925f156SCarlo Bertolli
2789925f156SCarlo Bertolli #pragma omp target
2799925f156SCarlo Bertolli #pragma omp teams
2809925f156SCarlo Bertolli #pragma omp distribute parallel for shared (argc)
2819925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2829925f156SCarlo Bertolli acc++;
2839925f156SCarlo Bertolli }
2849925f156SCarlo Bertolli
2859925f156SCarlo Bertolli #pragma omp target
2869925f156SCarlo Bertolli #pragma omp teams
2879925f156SCarlo Bertolli #pragma omp distribute parallel for shared (S1) // expected-error {{'S1' does not refer to a value}}
2889925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2899925f156SCarlo Bertolli acc++;
2909925f156SCarlo Bertolli }
2919925f156SCarlo Bertolli
2929925f156SCarlo Bertolli #pragma omp target
2939925f156SCarlo Bertolli #pragma omp teams
294f07946e1SAlexey Bataev #pragma omp distribute parallel for shared (a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}}
2959925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
2969925f156SCarlo Bertolli acc++;
2979925f156SCarlo Bertolli }
2989925f156SCarlo Bertolli
2999925f156SCarlo Bertolli #pragma omp target
3009925f156SCarlo Bertolli #pragma omp teams
3019925f156SCarlo Bertolli #pragma omp distribute parallel for shared (argv[1]) // expected-error {{expected variable name}}
3029925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3039925f156SCarlo Bertolli acc++;
3049925f156SCarlo Bertolli }
3059925f156SCarlo Bertolli
3069925f156SCarlo Bertolli #pragma omp target
3079925f156SCarlo Bertolli #pragma omp teams
3089925f156SCarlo Bertolli #pragma omp distribute parallel for shared(ba)
3099925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3109925f156SCarlo Bertolli acc++;
3119925f156SCarlo Bertolli }
3129925f156SCarlo Bertolli
3139925f156SCarlo Bertolli #pragma omp target
3149925f156SCarlo Bertolli #pragma omp teams
3159925f156SCarlo Bertolli #pragma omp distribute parallel for shared(ca)
3169925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3179925f156SCarlo Bertolli acc++;
3189925f156SCarlo Bertolli }
3199925f156SCarlo Bertolli
3209925f156SCarlo Bertolli #pragma omp target
3219925f156SCarlo Bertolli #pragma omp teams
3229925f156SCarlo Bertolli #pragma omp distribute parallel for shared(da)
3239925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3249925f156SCarlo Bertolli acc++;
3259925f156SCarlo Bertolli }
3269925f156SCarlo Bertolli
3279925f156SCarlo Bertolli #pragma omp target
3289925f156SCarlo Bertolli #pragma omp teams
3299925f156SCarlo Bertolli #pragma omp distribute parallel for shared(e, g)
3309925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3319925f156SCarlo Bertolli acc++;
3329925f156SCarlo Bertolli }
3339925f156SCarlo Bertolli
3349925f156SCarlo Bertolli #pragma omp target
3359925f156SCarlo Bertolli #pragma omp teams
3369925f156SCarlo Bertolli #pragma omp distribute parallel for shared(h, B::x) // expected-error 2 {{threadprivate or thread local variable cannot be shared}}
3379925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3389925f156SCarlo Bertolli acc++;
3399925f156SCarlo Bertolli }
3409925f156SCarlo Bertolli
3419925f156SCarlo Bertolli #pragma omp target
3429925f156SCarlo Bertolli #pragma omp teams
3439925f156SCarlo Bertolli #pragma omp distribute parallel for private(i), shared(i) // expected-error {{private variable cannot be shared}} expected-note {{defined as private}}
3449925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3459925f156SCarlo Bertolli acc++;
3469925f156SCarlo Bertolli }
3479925f156SCarlo Bertolli
3489925f156SCarlo Bertolli #pragma omp target
3499925f156SCarlo Bertolli #pragma omp teams
3509925f156SCarlo Bertolli #pragma omp distribute parallel for firstprivate(i), shared(i) // expected-error {{firstprivate variable cannot be shared}} expected-note {{defined as firstprivate}}
3519925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3529925f156SCarlo Bertolli acc++;
3539925f156SCarlo Bertolli }
3549925f156SCarlo Bertolli
3559925f156SCarlo Bertolli #pragma omp target
3569925f156SCarlo Bertolli #pragma omp teams
3579925f156SCarlo Bertolli #pragma omp distribute parallel for private(i)
3589925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3599925f156SCarlo Bertolli acc++;
3609925f156SCarlo Bertolli }
3619925f156SCarlo Bertolli
3629925f156SCarlo Bertolli #pragma omp target
3639925f156SCarlo Bertolli #pragma omp teams
3649925f156SCarlo Bertolli #pragma omp distribute parallel for shared(i)
3659925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3669925f156SCarlo Bertolli acc++;
3679925f156SCarlo Bertolli }
3689925f156SCarlo Bertolli
3699925f156SCarlo Bertolli #pragma omp target
3709925f156SCarlo Bertolli #pragma omp teams
3719925f156SCarlo Bertolli #pragma omp distribute parallel for shared(j)
3729925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3739925f156SCarlo Bertolli acc++;
3749925f156SCarlo Bertolli }
3759925f156SCarlo Bertolli
3769925f156SCarlo Bertolli #pragma omp target
3779925f156SCarlo Bertolli #pragma omp teams
3789925f156SCarlo Bertolli #pragma omp distribute parallel for firstprivate(i)
3799925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3809925f156SCarlo Bertolli acc++;
3819925f156SCarlo Bertolli }
3829925f156SCarlo Bertolli
3839925f156SCarlo Bertolli #pragma omp target
3849925f156SCarlo Bertolli #pragma omp teams
3859925f156SCarlo Bertolli #pragma omp distribute parallel for shared(i)
3869925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3879925f156SCarlo Bertolli acc++;
3889925f156SCarlo Bertolli }
3899925f156SCarlo Bertolli
3909925f156SCarlo Bertolli #pragma omp target
3919925f156SCarlo Bertolli #pragma omp teams
3929925f156SCarlo Bertolli #pragma omp distribute parallel for shared(j)
3939925f156SCarlo Bertolli for(int k = 0 ; k < n ; k++) {
3949925f156SCarlo Bertolli acc++;
3959925f156SCarlo Bertolli }
3969925f156SCarlo Bertolli
3979925f156SCarlo Bertolli return tmain<int, char, 1000>(argc, argv); // expected-note {{in instantiation of function template specialization 'tmain<int, char, 1000>' requested here}}
3989925f156SCarlo Bertolli }
399