| // PR c++/25814 |
| // { dg-do compile { target c++98_only } } |
| // { dg-additional-options "-fdiagnostics-show-caret" } |
| // Test -Wvexing-parse's fix-it hints in C++98. |
| |
| struct X { }; |
| |
| struct T { |
| T(X); |
| int m; |
| }; |
| |
| struct U { |
| U(); |
| int m; |
| }; |
| |
| int |
| main () |
| { |
| T t(X()); // { dg-warning "6:parentheses were disambiguated as a function declaration" } |
| /* { dg-begin-multiline-output "" } |
| T t(X()); |
| ^~~~~ |
| { dg-end-multiline-output "" } */ |
| // { dg-message "6:add parentheses to declare a variable" "" { target *-*-* } 21 } |
| /* { dg-begin-multiline-output "" } |
| T t(X()); |
| ^~~~~ |
| ( ) |
| { dg-end-multiline-output "" } */ |
| |
| int n( ); // { dg-warning "8:empty parentheses were disambiguated as a function declaration" } |
| /* { dg-begin-multiline-output "" } |
| int n( ); |
| ^~~~~ |
| { dg-end-multiline-output "" } */ |
| // { dg-message "8:remove parentheses to default-initialize a variable" "" { target *-*-* } 33 } |
| /* { dg-begin-multiline-output "" } |
| int n( ); |
| ^~~~~ |
| ----- |
| { dg-end-multiline-output "" } */ |
| |
| T y(); // { dg-warning "6:empty parentheses were disambiguated as a function declaration" } |
| /* { dg-begin-multiline-output "" } |
| T y(); |
| ^~ |
| { dg-end-multiline-output "" } */ |
| |
| X x(); // { dg-warning "6:empty parentheses were disambiguated as a function declaration" } |
| /* { dg-begin-multiline-output "" } |
| X x(); |
| ^~ |
| { dg-end-multiline-output "" } */ |
| // { dg-message "6:remove parentheses to default-initialize a variable" "" { target *-*-* } 51 } |
| /* { dg-begin-multiline-output "" } |
| X x(); |
| ^~ |
| -- |
| { dg-end-multiline-output "" } */ |
| |
| U u(); // { dg-warning "6:empty parentheses were disambiguated as a function declaration" } |
| /* { dg-begin-multiline-output "" } |
| U u(); |
| ^~ |
| { dg-end-multiline-output "" } */ |
| // { dg-message "6:remove parentheses to default-initialize a variable" "" { target *-*-* } 63 } |
| /* { dg-begin-multiline-output "" } |
| U u(); |
| ^~ |
| -- |
| { dg-end-multiline-output "" } */ |
| } |