diff options
author | Akira Hatanaka <ahatanaka@mips.com> | 2012-02-09 18:49:26 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@mips.com> | 2012-02-09 18:49:26 +0000 |
commit | b6f7443c3c3ccf39e3936d060d4a197f6d0bd6ef (patch) | |
tree | de7a8ddf646f1ad6c0e8fabae1a887710afa61eb /clang/test/CodeGen/mips64-class-return.cpp | |
parent | acdde195fb2c7a7255de96bb454bee25d2d3575a (diff) | |
download | bcm5719-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.cpp | 31 |
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; +} + |