// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
// rdar://10246395
#define WEAK __attribute__ ((weak))
class WEAK A {
virtual void foo( ) ;
} ;
class B : public A {
virtual void foo( ) ;
} ;
void A:: foo ( ) { }
void B:: foo ( ) { }
class T { } ;
class T1 { } ;
class C : public T1, public B, public T {
virtual void foo( ) ;
} ;
void C:: foo ( ) { }
class V1 : public virtual A {
virtual void foo( ) ;
} ;
class V2 : public virtual V1 {
virtual void foo( ) ;
} ;
void V1:: foo ( ) { }
void V2:: foo ( ) { }
Ly8gUlVOOiAlY2xhbmdfY2MxICVzIC1lbWl0LWxsdm0gLW8gLSB8IEZpbGVDaGVjayAlcwovLyByZGFyOi8vMTAyNDYzOTUKCiNkZWZpbmUgV0VBSyBfX2F0dHJpYnV0ZV9fICgod2VhaykpIAoKY2xhc3MgV0VBSyBBIHsKICB2aXJ0dWFsIHZvaWQgZm9vKCk7Cn07CgpjbGFzcyBCIDogcHVibGljIEEgewogIHZpcnR1YWwgdm9pZCBmb28oKTsKfTsKdm9pZCBBOjpmb28oKSB7IH0Kdm9pZCBCOjpmb28oKSB7IH0KCmNsYXNzIFQge307CmNsYXNzIFQxIHt9OwoKY2xhc3MgQyA6IHB1YmxpYyBUMSwgcHVibGljIEIsIHB1YmxpYyBUIHsKICB2aXJ0dWFsIHZvaWQgZm9vKCk7Cn07CnZvaWQgQzo6Zm9vKCkgeyB9CgpjbGFzcyBWMSA6IHB1YmxpYyB2aXJ0dWFsIEEgewogIHZpcnR1YWwgdm9pZCBmb28oKTsKfTsKCmNsYXNzIFYyIDogcHVibGljIHZpcnR1YWwgVjEgewogIHZpcnR1YWwgdm9pZCBmb28oKTsKfTsKdm9pZCBWMTo6Zm9vKCkgeyB9CnZvaWQgVjI6OmZvbygpIHsgfQ==