summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/mips64-class-return.cpp
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@mips.com>2012-02-09 18:49:26 +0000
committerAkira Hatanaka <ahatanaka@mips.com>2012-02-09 18:49:26 +0000
commitb6f7443c3c3ccf39e3936d060d4a197f6d0bd6ef (patch)
treede7a8ddf646f1ad6c0e8fabae1a887710afa61eb /clang/test/CodeGen/mips64-class-return.cpp
parentacdde195fb2c7a7255de96bb454bee25d2d3575a (diff)
downloadbcm5719-llvm-b6f7443c3c3ccf39e3936d060d4a197f6d0bd6ef.tar.gz
bcm5719-llvm-b6f7443c3c3ccf39e3936d060d4a197f6d0bd6ef.zip
Fix bugs in function MipsABIInfo::returnAggregateInRegs. Functions returning
class objects follow the same rules as those returning struct objects. llvm-svn: 150196
Diffstat (limited to 'clang/test/CodeGen/mips64-class-return.cpp')
-rw-r--r--clang/test/CodeGen/mips64-class-return.cpp31
1 files changed, 31 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 00000000000..eca8d5b2f72
--- /dev/null
+++ b/clang/test/CodeGen/mips64-class-return.cpp
@@ -0,0 +1,31 @@
+// 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;
+};
+
+extern D0 gd0;
+extern D1 gd1;
+
+// CHECK: define { i64, i64 } @_Z4foo1v()
+D0 foo1(void) {
+ return gd0;
+}
+
+// CHECK: define { double, float } @_Z4foo2v()
+D1 foo2(void) {
+ return gd1;
+}
+
OpenPOWER on IntegriCloud