| // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s |
| |
| struct Foo { |
| Foo(); |
| Foo(const Foo&); |
| }; |
| |
| struct Bar { |
| Bar(); |
| operator const Foo&() const; |
| }; |
| |
| void f(Foo); |
| |
| // CHECK: define void @_Z1g3Foo(%struct.Bar* %foo) |
| void g(Foo foo) { |
| // CHECK: call void @_ZN3BarC1Ev |
| // CHECK: @_ZNK3BarcvRK3FooEv |
| // CHECK: call void @_Z1f3Foo |
| f(Bar()); |
| // CHECK: call void @_ZN3FooC1Ev |
| // CHECK: call void @_Z1f3Foo |
| f(Foo()); |
| // CHECK: call void @_ZN3FooC1ERKS_ |
| // CHECK: call void @_Z1f3Foo |
| f(foo); |
| // CHECK: ret |
| } |
| |