// RUN: %clang_cc1 -fsyntax-only -verify -fms-extensions %s -triple x86_64-pc-win32
// Multiple inheritance is involved (code segmments all disagree between the bases and derived class)
;
;
;
// expected-error@-1 {{derived class must specify the same code segment as its base classes}}
// expected-note@4 {{base class 'Base1' specified here}}
;
// expected-error@-1 {{derived class must specify the same code segment as its base classes}}
// expected-error@-2 {{derived class must specify the same code segment as its base classes}}
// expected-note@5 {{base class 'Base2' specified here}}
// expected-note@4 {{base class 'Base1' specified here}}
// Multiple inheritance (code segments partially agree between the bases and the derived class)
;
;
;
// expected-error@-1 {{derived class must specify the same code segment as its base classes}}
// expected-error@-2 {{derived class must specify the same code segment as its base classes}}
// expected-note@18 {{base class 'BaseClass1' specified here}}
// expected-note@19 {{base class 'BaseClass2' specified here}}
;
// expected-error@-1 {{derived class must specify the same code segment as its base classes}}
// expected-error@-2 {{derived class must specify the same code segment as its base classes}}
// expected-note@19 {{base class 'BaseClass2' specified here}}
// expected-note@18 {{base class 'BaseClass1' specified here}}
; //OK
; //OK
// Multiple inheritance is involved (code segmments all agree between the bases and derived class)
;
;
;
// virtual Inheritance is involved (code segmments all disagree between the bases and derived class)
;
;
// expected-error@-3 {{derived class must specify the same code segment as its base classes}}
// expected-note@42 {{base class 'Base' specified here}}
;
// expected-error@-3 {{derived class must specify the same code segment as its base classes}}
// expected-note@42 {{base class 'Base' specified here}}
;
// expected-error@-1 {{derived class must specify the same code segment as its base classes}}
// expected-error@-2 {{derived class must specify the same code segment as its base classes}}
// expected-note@46 {{base class 'Derived5' specified here}}
// expected-note@52 {{base class 'Derived6' specified here}}
// virtual Inheritance is involved (code segmments partially agree between the bases and derived class)
;
;
;
;
// expected-error@-1 {{derived class must specify the same code segment as its base classes}}
// expected-error@-2 {{derived class must specify the same code segment as its base classes}}
// expected-note@69 {{base class 'DerivedClass1' specified here}}
// expected-note@73 {{base class 'DerivedClass2' specified here}}
// virtual Inheritance is involved (code segmments all agree between the bases and derived class)
;
;
;
; //OK