diff options
author | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-10-15 17:10:06 +1100 |
---|---|---|
committer | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-10-15 17:10:06 +1100 |
commit | be1de4be954c80875ad4108e0a33e8e131b2f2c0 (patch) | |
tree | 1fbbecf276bf7c7bdcbb4dd446099d6d90eaa516 /clang/test/CodeGen/mips64-class-return.cpp | |
parent | c4626a62754862d20b41e8a46a3574264ea80e6d (diff) | |
parent | f1bd2e48c5324d3f7cda4090c87f8a5b6f463ce2 (diff) |
Merge branch 'master' of ssh://bitbucket.org/czan/honours
Diffstat (limited to 'clang/test/CodeGen/mips64-class-return.cpp')
-rw-r--r-- | clang/test/CodeGen/mips64-class-return.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/clang/test/CodeGen/mips64-class-return.cpp b/clang/test/CodeGen/mips64-class-return.cpp new file mode 100644 index 0000000..dc9ec0f --- /dev/null +++ b/clang/test/CodeGen/mips64-class-return.cpp @@ -0,0 +1,46 @@ +// RUN: %clang -target mips64el-unknown-linux -ccc-clang-archs mips64el -O3 -S -mabi=n64 -o - -emit-llvm %s | FileCheck %s + +class B0 { + double d; +}; + +class D0 : public B0 { + float f; +}; + +class B1 { +}; + +class D1 : public B1 { + double d; + float f; +}; + +class D2 : public B0 { + double d2; +}; + +extern D0 gd0; +extern D1 gd1; +extern D2 gd2; + +// CHECK: define { i64, i64 } @_Z4foo1v() +D0 foo1(void) { + return gd0; +} + +// CHECK: define { double, float } @_Z4foo2v() +D1 foo2(void) { + return gd1; +} + +// CHECK: define void @_Z4foo32D2(i64 %a0.coerce0, double %a0.coerce1) +void foo3(D2 a0) { + gd2 = a0; +} + +// CHECK: define void @_Z4foo42D0(%class.D0* nocapture byval %a0) +void foo4(D0 a0) { + gd0 = a0; +} + |