blob: a1a6c0ae71a014b026586f6a449586096f33cde7 [file] [log] [blame]
Anders Carlssonc8667a82009-05-19 20:40:02 +00001// RUN: clang-cc -verify -emit-llvm -o %t %s
2
3void t1() {
4 extern int& a;
5 int b = a;
6}
7
8void t2(int& a) {
9 int b = a;
10}
11
12int g;
13int& gr = g;
14void t3() {
15 int b = gr;
16}
Anders Carlsson4bbab922009-05-20 00:36:58 +000017
18// Test reference binding.
19
20struct C {};
21
Anders Carlssone04d1c72009-05-20 01:03:17 +000022void f(const bool&);
Anders Carlsson4bbab922009-05-20 00:36:58 +000023void f(const int&);
24void f(const _Complex int&);
25void f(const C&);
26
Anders Carlssone04d1c72009-05-20 01:03:17 +000027void test_bool() {
28 bool a = true;
29 f(a);
30
31 f(true);
32}
33
Anders Carlsson4bbab922009-05-20 00:36:58 +000034void test_scalar() {
35 int a = 10;
Anders Carlsson4bbab922009-05-20 00:36:58 +000036 f(a);
Anders Carlssone04d1c72009-05-20 01:03:17 +000037
38 f(10);
Anders Carlsson4bbab922009-05-20 00:36:58 +000039}
40
41void test_complex() {
42 _Complex int a = 10i;
Anders Carlsson4bbab922009-05-20 00:36:58 +000043 f(a);
44}
45
46void test_aggregate() {
47 C c;
Anders Carlsson4bbab922009-05-20 00:36:58 +000048 f(c);
49}
50