1 // RUN: clang-cc %s -emit-llvm -o - | FileCheck %s 2 3 struct A { 4 virtual void f(); 5 6 A h(); 7 }; 8 9 A g(); 10 11 void 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