1 // { dg-do assemble  }
2 
3 class A {
4 public:
5   virtual int foo() = 0; // { dg-error "" } original definition
6 };
7 
8 class B {
9 public:
10     virtual double foo() = 0;
11 };
12 
13 class C
14   : public A, public B
15 {
16 public:
foo()17   virtual double foo() { return 2; } // { dg-error "" } conflicting return type
18 };
19 
20 class D
21   : public B, public A
22 {
23 public:
foo()24   virtual double foo() { return 2; } // { dg-error "" } conflicting return type
25 };
26