Lines Matching refs:Left
3 struct Left {
4 virtual void left();
11 struct ChildNoOverride : Left, Right {
14 struct ChildOverride : Left, Right {
15 virtual void left();
25 child->left();
26 // Only need to cast 'this' to Left*.
27 // CHECK: %[[LEFT:.*]] = bitcast %struct.ChildNoOverride* %[[CHILD]] to %struct.Left*
28 // CHECK: %[[VFPTR:.*]] = bitcast %struct.Left* %[[LEFT]] to void (%struct.Left*)***
29 // CHECK: %[[VFTABLE:.*]] = load void (%struct.Left*)**, void (%struct.Left*)*** %[[VFPTR]]
30 // CHECK: %[[VFUN:.*]] = getelementptr inbounds void (%struct.Left*)*, void (%struct.Left*)** %[[VFTABLE]], i64 0
31 // CHECK: %[[VFUN_VALUE:.*]] = load void (%struct.Left*)*, void (%struct.Left*)** %[[VFUN]]
32 // CHECK: call x86_thiscallcc void %[[VFUN_VALUE]](%struct.Left* %[[LEFT]])
36 void ChildOverride::left() {
37 // CHECK: define x86_thiscallcc void @"\01?left@ChildOverride@@UAEXXZ"(%struct.ChildOverride* %[[THIS:.*]])
39 // No need to adjust 'this' as the ChildOverride's layout begins with Left.
54 child->left();
150 Left l;
151 // CHECK: define {{.*}} @"\01??0Left@@QAE@XZ"
186 virtual void left();