blob: 3e010aaba3dd453ae827ff9173c50740fbcf00fe [file] [log] [blame]
// 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 "" } */
}