17419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo// RUN: %clang_cc1 -fsyntax-only -verify %s
27419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo
37419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufostruct string {};
47419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo
57419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufoclass StringPiece;  // expected-note {{forward declaration of 'StringPiece'}} \
67419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo                    // expected-note {{forward declaration of 'StringPiece'}}
77419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo
87419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufostruct Test {
97419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo  void expectStringPiece(const StringPiece& blah) {};  // expected-note {{passing argument to parameter 'blah' here}}
107419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo
117419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo  void test(const string& s) {
127419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo    expectStringPiece(s);  // expected-error {{no viable conversion from 'const string' to incomplete type 'const StringPiece'}}
137419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo  }
147419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo};
157419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo
167419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufostruct TestStatic {
177419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo  static void expectStringPiece(const StringPiece& blah) {};  // expected-note {{passing argument to parameter 'blah' here}}
187419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo
197419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo  static void test(const string& s) {
207419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo    expectStringPiece(s);  // expected-error {{no viable conversion from 'const string' to incomplete type 'const StringPiece'}}
217419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo  }
227419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo};
237419d013fd2c4dda596066f4864d5c40e85ba330Larisse Voufo
24