diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2009-08-10 17:20:45 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2009-08-10 17:20:45 +0000 |
commit | 370c884d172329384973e452647fba0b2f5146d5 (patch) | |
tree | 36e3c537787b09654e4eb61a98aa065373cf87f4 | |
parent | 70121ebd65be51d67025914bd3f035515b0caf4f (diff) |
Fixed a ir-gen bug in synthesizing copy constructors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78570 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/CGCXX.cpp | 2 | ||||
-rw-r--r-- | test/CodeGenCXX/copy-constructor-synthesis.cpp | 7 |
2 files changed, 3 insertions, 6 deletions
diff --git a/lib/CodeGen/CGCXX.cpp b/lib/CodeGen/CGCXX.cpp index c16ca3661c..55693d1073 100644 --- a/lib/CodeGen/CGCXX.cpp +++ b/lib/CodeGen/CGCXX.cpp @@ -784,7 +784,7 @@ void CodeGenFunction::EmitClassMemberwiseCopy( // Push the Src ptr. CallArgs.push_back(std::make_pair(RValue::get(Src), - BaseCopyCtor->getThisType(getContext()))); + BaseCopyCtor->getParamDecl(0)->getType())); QualType ResultType = BaseCopyCtor->getType()->getAsFunctionType()->getResultType(); EmitCall(CGM.getTypes().getFunctionInfo(ResultType, CallArgs), diff --git a/test/CodeGenCXX/copy-constructor-synthesis.cpp b/test/CodeGenCXX/copy-constructor-synthesis.cpp index edc0c0ecb8..a993926f19 100644 --- a/test/CodeGenCXX/copy-constructor-synthesis.cpp +++ b/test/CodeGenCXX/copy-constructor-synthesis.cpp @@ -1,5 +1,5 @@ -// RUNX: clang-cc -triple x86_64-apple-darwin -S %s -o %t-64.s && -// RUNX: FileCheck -check-prefix LP64 --input-file=%t-64.s %s && +// RUN: clang-cc -triple x86_64-apple-darwin -S %s -o %t-64.s && +// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s && // RUN: clang-cc -triple i386-apple-darwin -S %s -o %t-32.s && // RUN: FileCheck -check-prefix LP32 --input-file=%t-32.s %s && // RUN: true @@ -43,12 +43,9 @@ int main() X c(x); c.pr(); } -#if 0 -// -m64 does not work due to unrelated llvm bug! // CHECK-LP64: .globl __ZN1XC1ERK1X // CHECK-LP64: .weak_definition __ZN1XC1ERK1X // CHECK-LP64: __ZN1XC1ERK1X: -#endif // CHECK-LP32: .globl __ZN1XC1ERK1X // CHECK-LP32: .weak_definition __ZN1XC1ERK1X |