| // RUN: clang-cc -verify -emit-llvm -o %t %s |
| |
| void t1() { |
| extern int& a; |
| int b = a; |
| } |
| |
| void t2(int& a) { |
| int b = a; |
| } |
| |
| int g; |
| int& gr = g; |
| void t3() { |
| int b = gr; |
| } |
| |
| // Test reference binding. |
| |
| struct C {}; |
| |
| void f(const bool&); |
| void f(const int&); |
| void f(const _Complex int&); |
| void f(const C&); |
| |
| void test_bool() { |
| bool a = true; |
| f(a); |
| |
| f(true); |
| } |
| |
| void test_scalar() { |
| int a = 10; |
| f(a); |
| |
| struct { int bitfield : 3; } s = { 3 }; |
| f(s.bitfield) |
| |
| f(10); |
| } |
| |
| void test_complex() { |
| _Complex int a = 10i; |
| f(a); |
| } |
| |
| void test_aggregate() { |
| C c; |
| f(c); |
| } |
| |