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