// { dg-options "-fdiagnostics-show-caret" } /* Function. */ void test_1 (int a, int b = 42, int c, int d); // { dg-line test_1 } // { dg-error "default argument missing for parameter 3 of " "" { target *-*-* } test_1 } /* { dg-begin-multiline-output "" } void test_1 (int a, int b = 42, int c, int d); ~~~~^ { dg-end-multiline-output "" } */ // { dg-message "...following parameter 2 which has a default argument" "" { target *-*-* } test_1 } /* { dg-begin-multiline-output "" } void test_1 (int a, int b = 42, int c, int d); ~~~~^~~~~~ { dg-end-multiline-output "" } */ // { dg-error "default argument missing for parameter 4 of " "" { target *-*-* } test_1 } /* { dg-begin-multiline-output "" } void test_1 (int a, int b = 42, int c, int d); ~~~~^ { dg-end-multiline-output "" } */ /* Non-static member fn. */ struct test_2 { void member_2 (int a, int b = 42, int c); // { dg-line test_2 } }; // { dg-error "default argument missing for parameter 3 of " "" { target *-*-* } test_2 } /* { dg-begin-multiline-output "" } void member_2 (int a, int b = 42, int c); ~~~~^ { dg-end-multiline-output "" } */ // { dg-message "...following parameter 2 which has a default argument" "" { target *-*-* } test_2 } /* { dg-begin-multiline-output "" } void member_2 (int a, int b = 42, int c); ~~~~^~~~~~ { dg-end-multiline-output "" } */ /* Static member fn. */ struct test_3 { static void member_3 (int a, int b = 42, int c); // { dg-line test_3 } }; // { dg-error "default argument missing for parameter 3 of " "" { target *-*-* } test_3 } /* { dg-begin-multiline-output "" } static void member_3 (int a, int b = 42, int c); ~~~~^ { dg-end-multiline-output "" } */ // { dg-message "...following parameter 2 which has a default argument" "" { target *-*-* } test_3 } /* { dg-begin-multiline-output "" } static void member_3 (int a, int b = 42, int c); ~~~~^~~~~~ { dg-end-multiline-output "" } */ /* Template. */ template void test_4 (int a, int b = 42, int c); // { dg-line test_4 } // { dg-error "default argument missing for parameter 3 of " "" { target *-*-* } test_4 } /* { dg-begin-multiline-output "" } void test_4 (int a, int b = 42, int c); ~~~~^ { dg-end-multiline-output "" } */ // { dg-message "...following parameter 2 which has a default argument" "" { target *-*-* } test_4 } /* { dg-begin-multiline-output "" } void test_4 (int a, int b = 42, int c); ~~~~^~~~~~ { dg-end-multiline-output "" } */