| // RUN: %clang_cc1 -std=c++1z -verify %s | 
 |  | 
 | namespace pr32864_0 { | 
 |   struct transfer_t { | 
 |     void *fctx; | 
 |   }; | 
 |   template <typename Ctx> class record { | 
 |     void run() { | 
 |       transfer_t t; | 
 |       Ctx from{t.fctx}; | 
 |     } | 
 |   }; | 
 | } | 
 |  | 
 | namespace pr33140_0a { | 
 |   struct S { | 
 |     constexpr S(const int &a = 0) {} | 
 |   }; | 
 |   void foo(void) { S s[2] = {}; } | 
 | } | 
 |  | 
 | namespace pr33140_0b { | 
 |   bool bar(float const &f = 0); | 
 |   bool foo() { return bar() && bar(); } | 
 | } | 
 |  | 
 | namespace pr33140_2 { | 
 |   // FIXME: The declaration of 'b' below should lifetime-extend two int | 
 |   // temporaries. | 
 |   struct A { int &&r = 0; }; // expected-note 2{{initializing field 'r' with default member initializer}} | 
 |   struct B { A x, y; }; | 
 |   B b = {}; // expected-warning 2{{not supported}} | 
 | } | 
 |  | 
 | namespace pr33140_3 { | 
 |   typedef struct Y { unsigned int c; } Y_t; | 
 |   struct X { | 
 |     Y_t a; | 
 |   }; | 
 |   struct X foo[2] = {[0 ... 1] = {.a = (Y_t){.c = 0}}}; | 
 | } | 
 |  | 
 | namespace pr33140_6 { | 
 |   struct Y { unsigned int c; }; | 
 |   struct X { struct Y *p; }; | 
 |   int f() { | 
 |     // FIXME: This causes clang to crash. | 
 |     //return (struct X[2]){ [0 ... 1] = { .p = &(struct Y&)(struct Y&&)(struct Y){0} } }[0].p->c; | 
 |     return 0; | 
 |   } | 
 | } | 
 |  | 
 | namespace pr33140_10 { | 
 |   int a(const int &n = 0); | 
 |   bool b() { return a() == a(); } | 
 | } |