Hans Wennborg 0a79a1203a MS ABI: Fix assert when generating virtual function call with virtual bases and -flto (PR30731)
getClassAtVTableLocation() was calling
ASTRecordLayout::getBaseClassOffset() on a virtual base, causing an
assert.

Differential Revision: https://reviews.llvm.org/D25779

llvm-svn: 284624
2016-10-19 18:04:27 +00:00

22 lines
337 B
C++

// RUN: %clang_cc1 -triple i386-pc-win32 -emit-llvm -flto -std=c++11 -o - %s | FileCheck %s
struct A {
virtual ~A();
};
struct B {};
struct C {
virtual void f();
};
struct S : A, virtual B, C {
void f() override;
};
void f(S* s) { s->f(); }
// CHECK-LABEL: define void @"\01?f@@YAXPAUS@@@Z"
// CHECK: call
// CHECK: ret void