blob: 5bc355f8e49ff9146f97a48d5cca0daa0e06b23c [file] [log] [blame]
Sebastian Redl13dc8f92011-11-27 16:50:07 +00001// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
2
3namespace 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}