| /* APPLE LOCAL file 5920116 */ |
| /* Test proper generation of weak virtual function thunks. */ |
| /* { dg-do run } */ |
| |
| int result = 101; |
| |
| struct Interface1 |
| { |
| int if1_var; |
| virtual void Interface1Func(void) = 0; |
| }; |
| |
| struct Interface2 |
| { |
| virtual void Interface2Func(void) = 0; |
| }; |
| |
| class Implementation : public Interface1, public Interface2 |
| { |
| void Interface1Func(void) { result -= 1; } |
| void Interface2Func(void) { result -= 100; } |
| }; |
| |
| int main (void) |
| { |
| Implementation *o2 = new Implementation; |
| ((Interface1 *) o2)->Interface1Func(); |
| ((Interface2 *) o2)->Interface2Func(); |
| delete o2; |
| return result; |
| } |