blob: 8e32d5cbd6f0ec81fe8be6aae42955304bfe4ce3 [file] [log] [blame]
Akira Hatanakada54ff32012-02-09 18:49:26 +00001// RUN: %clang -target mips64el-unknown-linux -ccc-clang-archs mips64el -O3 -S -mabi=n64 -o - -emit-llvm %s | FileCheck %s
2
3class B0 {
4 double d;
5};
6
7class D0 : public B0 {
8 float f;
9};
10
11class B1 {
12};
13
14class D1 : public B1 {
15 double d;
16 float f;
17};
18
Akira Hatanakaa34e9212012-02-09 19:54:16 +000019class D2 : public B0 {
20 double d2;
21};
22
Akira Hatanakada54ff32012-02-09 18:49:26 +000023extern D0 gd0;
24extern D1 gd1;
Akira Hatanakaa34e9212012-02-09 19:54:16 +000025extern D2 gd2;
Akira Hatanakada54ff32012-02-09 18:49:26 +000026
27// CHECK: define { i64, i64 } @_Z4foo1v()
28D0 foo1(void) {
29 return gd0;
30}
31
32// CHECK: define { double, float } @_Z4foo2v()
33D1 foo2(void) {
34 return gd1;
35}
36
Akira Hatanakaa34e9212012-02-09 19:54:16 +000037// CHECK: define void @_Z4foo32D2(i64 %a0.coerce0, double %a0.coerce1)
38void foo3(D2 a0) {
39 gd2 = a0;
40}
41
Akira Hatanaka91338cf2012-05-11 21:56:58 +000042// CHECK: define void @_Z4foo42D0(i64 %a0.coerce0, i64 %a0.coerce1)
Akira Hatanakaa34e9212012-02-09 19:54:16 +000043void foo4(D0 a0) {
44 gd0 = a0;
45}
46