blob: 74795b5dfb0efab96b889836de86468c65092985 [file] [log] [blame]
Shih-wei Liaof8fd82b2010-02-10 11:10:31 -08001// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
2
3struct A {
4 virtual void f();
5
6 A h();
7};
8
9A g();
10
11void f(A a, A *ap, A& ar) {
12 // This should not be a virtual function call.
13
14 // CHECK: call void @_ZN1A1fEv(%struct.A* %a)
15 a.f();
16
17 // CHECK: call void %
18 ap->f();
19
20 // CHECK: call void %
21 ar.f();
22
23 // CHECK: call void @_ZN1A1fEv
24 A().f();
25
26 // CHECK: call void @_ZN1A1fEv
27 g().f();
28
29 // CHECK: call void @_ZN1A1fEv
30 a.h().f();
31}
32
33struct B {
34 virtual void f();
35 ~B();
36
37 B h();
38};
39
40
41void f() {
42 // CHECK: call void @_ZN1B1fEv
43 B().f();
44
45 // CHECK: call void @_ZN1B1fEv
46 B().h().f();
47}