1 // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s 2 3 namespace reference { 4 struct A { 5 int i1, i2; 6 }; 7 8 void single_init() { 9 const int &cri1a = {1}; 10 const int &cri1b{1}; 11 12 int i = 1; 13 int &ri1a = {i}; 14 int &ri1b{i}; 15 16 int &ri2 = {1}; // expected-error {{cannot bind to an initializer list temporary}} 17 18 A a{1, 2}; 19 A &ra1a = {a}; 20 A &ra1b{a}; 21 } 22 23 void reference_to_aggregate() { 24 const A &ra1{1, 2}; 25 A &ra2{1, 2}; // expected-error {{cannot bind to an initializer list temporary}} 26 27 const int (&arrayRef)[] = {1, 2, 3}; 28 static_assert(sizeof(arrayRef) == 3 * sizeof(int), "bad array size"); 29 } 30 31 } 32