1// { dg-do run } 2// GROUPS passed virtual-tables 3// Check that virtual function tables are generated and used 4// even for struct's/classes which have no explicit constructors. 5 6extern "C" int printf (const char *, ...); 7 8int base_func_member_1_called = 0; 9int derived_func_member_1_called = 0; 10 11struct base { 12 virtual void func_member_1 () 13 { 14 base_func_member_1_called++; 15 } 16}; 17 18struct derived : public base { 19 virtual void func_member_1 () 20 { 21 derived_func_member_1_called++; 22 } 23 24 virtual void func_member_2 () 25 { 26 } 27}; 28 29base* bp1; 30base* bp2; 31 32int main () 33{ 34 bp1 = new base; 35 bp2 = new derived; 36 37 bp1->func_member_1 (); 38 bp2->func_member_1 (); 39 40 printf ("PASS\n"); 41 42 return 0; 43} 44