// RUN: %clang_cc1 -fsyntax-only -verify %s
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
void ;
void ; // expected-note {{previous definition is here}}
void ; // expected-error {{redefinition of default argument}}
void ;
void ;
void ;
void ;// expected-error {{missing default argument on parameter 'n'}}
s;
void // expected-error {{no viable conversion}} \
// expected-note{{passing argument to parameter here}}
;
void ; // expected-note{{'::j' declared here}}
;
void ; // expected-error{{no viable conversion}} \
// expected-note{{passing argument to parameter 'y' here}}
void ; // expected-error{{no viable conversion}} \
// expected-note{{passing argument to parameter here}}
int
int
int
int ; // expected-error{{use of undeclared identifier}}
int pr20055_v = ;
void
void ;
void ;
void
constexpr int
// This is OK, but in order to see that we must instantiate f<int>, despite it
// being in an unused default argument.
void // expected-warning {{braces around scalar}}
// This is formally ill-formed, but we choose to not trigger instantiation here
// (at least, not until g2 is actually called in a way that uses the default
// argument).
int
void
// FIXME: Provide a note pointing at the first use of the default argument?
int // expected-error {{no members}}
void // expected-note {{in instantiation of}}
void
void
void