blob: 76f9520bfd1a42563415919b92af9537d8ef8723 [file] [log] [blame]
Anders Carlsson8e7670d2009-10-12 19:41:04 +00001// RUN: clang-cc %s -emit-llvm -o - | FileCheck %s
2
3struct A {
4 virtual void f();
Anders Carlssoncf5deec2009-10-12 19:51:33 +00005
6 A h();
Anders Carlsson8e7670d2009-10-12 19:41:04 +00007};
8
Anders Carlssoncf5deec2009-10-12 19:51:33 +00009A g();
10
Anders Carlsson8e7670d2009-10-12 19:41:04 +000011void 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();
Anders Carlsson76366482009-10-12 19:45:47 +000022
23 // CHECK: call void @_ZN1A1fEv
24 A().f();
Anders Carlssoncf5deec2009-10-12 19:51:33 +000025
26 // CHECK: call void @_ZN1A1fEv
27 g().f();
28
29 // CHECK: call void @_ZN1A1fEv
30 a.h().f();
Anders Carlsson8e7670d2009-10-12 19:41:04 +000031}