| Anders Carlsson | 474a2a9 | 2009-05-19 20:40:02 +0000 | [diff] [blame] | 1 | // RUN: clang-cc -verify -emit-llvm -o %t %s |
| 2 | |||||
| 3 | void t1() { | ||||
| 4 | extern int& a; | ||||
| 5 | int b = a; | ||||
| 6 | } | ||||
| 7 | |||||
| 8 | void t2(int& a) { | ||||
| 9 | int b = a; | ||||
| 10 | } | ||||
| 11 | |||||
| 12 | int g; | ||||
| 13 | int& gr = g; | ||||
| 14 | void t3() { | ||||
| 15 | int b = gr; | ||||
| 16 | } | ||||
| Anders Carlsson | 23ea02a | 2009-05-20 00:36:58 +0000 | [diff] [blame] | 17 | |
| 18 | // Test reference binding. | ||||
| 19 | |||||
| 20 | struct C {}; | ||||
| 21 | |||||
| Anders Carlsson | 0c0f744 | 2009-05-20 01:03:17 +0000 | [diff] [blame] | 22 | void f(const bool&); |
| Anders Carlsson | 23ea02a | 2009-05-20 00:36:58 +0000 | [diff] [blame] | 23 | void f(const int&); |
| 24 | void f(const _Complex int&); | ||||
| 25 | void f(const C&); | ||||
| 26 | |||||
| Anders Carlsson | 0c0f744 | 2009-05-20 01:03:17 +0000 | [diff] [blame] | 27 | void test_bool() { |
| 28 | bool a = true; | ||||
| 29 | f(a); | ||||
| 30 | |||||
| 31 | f(true); | ||||
| 32 | } | ||||
| 33 | |||||
| Anders Carlsson | 23ea02a | 2009-05-20 00:36:58 +0000 | [diff] [blame] | 34 | void test_scalar() { |
| 35 | int a = 10; | ||||
| Anders Carlsson | 23ea02a | 2009-05-20 00:36:58 +0000 | [diff] [blame] | 36 | f(a); |
| Anders Carlsson | 0c0f744 | 2009-05-20 01:03:17 +0000 | [diff] [blame] | 37 | |
| Anders Carlsson | 110536d | 2009-05-20 01:24:22 +0000 | [diff] [blame^] | 38 | struct { int bitfield : 3; } s = { 3 }; |
| 39 | f(s.bitfield) | ||||
| 40 | |||||
| Anders Carlsson | 0c0f744 | 2009-05-20 01:03:17 +0000 | [diff] [blame] | 41 | f(10); |
| Anders Carlsson | 23ea02a | 2009-05-20 00:36:58 +0000 | [diff] [blame] | 42 | } |
| 43 | |||||
| 44 | void test_complex() { | ||||
| 45 | _Complex int a = 10i; | ||||
| Anders Carlsson | 23ea02a | 2009-05-20 00:36:58 +0000 | [diff] [blame] | 46 | f(a); |
| 47 | } | ||||
| 48 | |||||
| 49 | void test_aggregate() { | ||||
| 50 | C c; | ||||
| Anders Carlsson | 23ea02a | 2009-05-20 00:36:58 +0000 | [diff] [blame] | 51 | f(c); |
| 52 | } | ||||
| 53 | |||||