// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
// If the implicitly-defined constructor would satisfy the requirements of a
// constexpr constructor, the implicitly-defined constructor is constexpr.
;
constexpr Constexpr1 c1a = ; // ok
constexpr Constexpr1 c1b = ; // ok
;
constexpr Constexpr2 c2a = ; // ok
constexpr Constexpr2 c2b = ; // ok
;
constexpr Constexpr3 c3a = ; // ok
constexpr Constexpr3 c3b = ; // ok
;
; // expected-note {{here}}
constexpr NonConstexprCopy ncc1 = ; // ok
constexpr NonConstexprCopy ncc2 = ncc1; // expected-error {{constant expression}} expected-note {{non-constexpr constructor}}
;
;
constexpr NonConstexprDefault ncd = ;
constexpr Constexpr4 c4a = ;
constexpr Constexpr4 c4b = ;
constexpr Constexpr4 c4c = ;
;
;
constexpr Constexpr5 ce5move = ;
constexpr Constexpr5 ce5copy = ce5move;
// An explicitly-defaulted constructor doesn't become constexpr until the end of
// its class. Make sure we note that the class has a constexpr constructor when
// that happens.