mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-25 06:18:56 -04:00

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
24 lines
513 B
C++
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;
|
|
};
|