diff options
| author | Anders Carlsson <andersca@mac.com> | 2009-10-18 21:20:14 +0000 | 
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2009-10-18 21:20:14 +0000 | 
| commit | 8f741bfad7af6cf20a11d9c8d9671710c5c23fdc (patch) | |
| tree | 06f0cc27d56a463a67094e622bfcc18d9a10342d /clang/test/CodeGenCXX/temporaries.cpp | |
| parent | 07d0785dbb0901ff8953ee9cabb5145d46ebba30 (diff) | |
| download | bcm5719-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.cpp | 22 | 
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()); +}  | 

