1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s 2 3 class A { 4 int a; 5 }; 6 7 class B { 8 int b; 9 public: 10 A *getAsA(); 11 }; 12 13 class X : public A, public B { 14 int x; 15 }; 16 17 // PR35909 - https://bugs.llvm.org/show_bug.cgi?id=35909 18 getAsA()19A *B::getAsA() { 20 return static_cast<X*>(this); 21 22 // CHECK-LABEL: define{{.*}} ptr @_ZN1B6getAsAEv 23 // CHECK: %[[THIS:.*]] = load ptr, ptr 24 // CHECK-NEXT: getelementptr inbounds i8, ptr %[[THIS]], i64 -4 25 } 26 27