// PR c++/25814
// { dg-do compile }
struct X { };
struct W {
  W(X, X);
};
void
fn ()
{
  W w1(X(), X()); // { dg-warning "parentheses" }
  W w2(X(a), X()); // { dg-warning "parentheses" }
  W w3(X(), X(a)); // { dg-warning "parentheses" }
  W w4(X(a), X(b)); // { dg-warning "parentheses" }
  W w5(X, X);
  W w6(X(a), X);
  W w7(X, X(a));
  W w8(X(a), X()); // { dg-warning "parentheses" }
  W w9(X, X());
  W w10(X, X());
  // Not function declarations.
  W z1(X(), (X()));
  W z2((X()), X());
  W z3((X()), (X()));
}