teak-llvm/clang/test/SemaCXX/PR10243.cpp
Richard Smith b9e90b13cf Fold the six functions checking explicitly-defaulted special member functions
into one. These were all performing almost identical checks, with different bugs
in each of them.

This fixes PR12806 (we weren't setting the exception specification for an
explicitly-defaulted, non-user-provided default constructor) and enforces
8.4.2/2's rule that an in-class defaulted member must exactly match the implicit
parameter type.

llvm-svn: 156802
2012-05-15 04:39:51 +00:00

24 lines
513 B
C++

// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
struct S; // expected-note 4{{forward declaration of 'S'}}
struct T0 {
S s; // expected-error{{field has incomplete type 'S'}}
T0() = default;
};
struct T1 {
S s; // expected-error{{field has incomplete type 'S'}}
T1(const T1&) = default;
};
struct T2 {
S s; // expected-error{{field has incomplete type 'S'}}
T2& operator=(const T2&) = default;
};
struct T3 {
S s; // expected-error{{field has incomplete type 'S'}}
~T3() = default;
};