19ca5c425SRichard Smith // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 2dd8fc04eSAbramo Bagnara 3dd8fc04eSAbramo Bagnara struct S; // expected-note 4{{forward declaration of 'S'}} 4dd8fc04eSAbramo Bagnara 5dd8fc04eSAbramo Bagnara struct T0 { 6dd8fc04eSAbramo Bagnara S s; // expected-error{{field has incomplete type 'S'}} 7dd8fc04eSAbramo Bagnara T0() = default; 8dd8fc04eSAbramo Bagnara }; 9dd8fc04eSAbramo Bagnara 10dd8fc04eSAbramo Bagnara struct T1 { 11dd8fc04eSAbramo Bagnara S s; // expected-error{{field has incomplete type 'S'}} 12*b9e90b13SRichard Smith T1(const T1&) = default; 13dd8fc04eSAbramo Bagnara }; 14dd8fc04eSAbramo Bagnara 15dd8fc04eSAbramo Bagnara struct T2 { 16dd8fc04eSAbramo Bagnara S s; // expected-error{{field has incomplete type 'S'}} 17*b9e90b13SRichard Smith T2& operator=(const T2&) = default; 18dd8fc04eSAbramo Bagnara }; 19dd8fc04eSAbramo Bagnara 20dd8fc04eSAbramo Bagnara struct T3 { 21dd8fc04eSAbramo Bagnara S s; // expected-error{{field has incomplete type 'S'}} 22dd8fc04eSAbramo Bagnara ~T3() = default; 23dd8fc04eSAbramo Bagnara }; 24