diff options
-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 |