2018-07-20 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / diagnostic / macro-arg-count.C
blob12b2dbd3be72fa9541245a029627dcd083b8cb48
1 // { dg-options "-fdiagnostics-show-caret" }
3 #define MACRO_1(X,Y)
4 void test_1 ()
6   MACRO_1(42); // { dg-line "use_of_MACRO_1" }
7   // { dg-error "macro \"MACRO_1\" requires 2 arguments, but only 1 given" "" { target *-*-* } use_of_MACRO_1 }
8   /* { dg-begin-multiline-output "" }
9    MACRO_1(42);
10              ^
11      { dg-end-multiline-output "" } */
12   // { dg-error "'MACRO_1' was not declared in this scope" "" { target *-*-* } use_of_MACRO_1 }
13   /* { dg-begin-multiline-output "" }
14    MACRO_1(42);
15    ^~~~~~~
16      { dg-end-multiline-output "" } */
17   // { dg-bogus "had not yet been defined" "" { target *-*-* } use_of_MACRO_1 }
20 #define MACRO_2(X,Y)
21 void test_2 ()
23   MACRO_2(1, 2, 3); // { dg-line "use_of_MACRO_2" }
24   // { dg-error "macro \"MACRO_2\" passed 3 arguments, but takes just 2" "" { target *-*-* } use_of_MACRO_2 }
25   /* { dg-begin-multiline-output "" }
26    MACRO_2(1, 2, 3);
27                   ^
28      { dg-end-multiline-output "" } */
29   // { dg-error "'MACRO_2' was not declared in this scope" "" { target *-*-* } use_of_MACRO_2 }
30   /* { dg-begin-multiline-output "" }
31    MACRO_2(1, 2, 3);
32    ^~~~~~~
33      { dg-end-multiline-output "" } */
34   // { dg-bogus "had not yet been defined" "" { target *-*-* } use_of_MACRO_2 }
37 #define MACRO_3
38 void test_3 ()
40   MACRO_3 (42);
43 #define MACRO_4(X,Y)
44 void test_4 ()
46   MACRO_4; // { dg-error "'MACRO_4' was not declared in this scope" }
47   /* { dg-begin-multiline-output "" }
48    MACRO_4;
49    ^~~~~~~
50      { dg-end-multiline-output "" } */