summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/temporaries.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-10-18 21:20:14 +0000
committerAnders Carlsson <andersca@mac.com>2009-10-18 21:20:14 +0000
commit8f741bfad7af6cf20a11d9c8d9671710c5c23fdc (patch)
tree06f0cc27d56a463a67094e622bfcc18d9a10342d /clang/test/CodeGenCXX/temporaries.cpp
parent07d0785dbb0901ff8953ee9cabb5145d46ebba30 (diff)
downloadbcm5719-llvm-8f741bfad7af6cf20a11d9c8d9671710c5c23fdc.tar.gz
bcm5719-llvm-8f741bfad7af6cf20a11d9c8d9671710c5c23fdc.zip
When building a cast argument, make sure to bind the result to a temporary.
llvm-svn: 84448
Diffstat (limited to 'clang/test/CodeGenCXX/temporaries.cpp')
-rw-r--r--clang/test/CodeGenCXX/temporaries.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/temporaries.cpp b/clang/test/CodeGenCXX/temporaries.cpp
index 03fbd4b8d98..d622193f598 100644
--- a/clang/test/CodeGenCXX/temporaries.cpp
+++ b/clang/test/CodeGenCXX/temporaries.cpp
@@ -93,3 +93,25 @@ void f6() {
F().f();
}
+struct G {
+ G();
+ G(A);
+ ~G();
+ operator A();
+};
+
+void a(const A&);
+
+void f7() {
+ // CHECK: call void @_ZN1AC1Ev
+ // CHECK: call void @_Z1aRK1A
+ // CHECK: call void @_ZN1AD1Ev
+ a(A());
+
+ // CHECK: call void @_ZN1GC1Ev
+ // CHECK: call void @_ZN1Gcv1AEv
+ // CHECK: call void @_Z1aRK1A
+ // CHECK: call void @_ZN1AD1Ev
+ // CHECK: call void @_ZN1GD1Ev
+ a(G());
+}
OpenPOWER on IntegriCloud