xref: /llvm-project/clang/test/SemaCXX/PR10243.cpp (revision b9e90b13cfd73f5f3e0db9bb05c234f9fcb66748)
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