modernc.org/ccgo/v3@v3.16.14/lib/testdata/bug/incfp2.c (about) 1 int f(int i) { 2 return 2*i; 3 } 4 5 int g(int i) { 6 return 10*i; 7 } 8 9 typedef int (*intf)(int); 10 11 intf *ga[2] = {f, g}; 12 intf *gap = &ga[0]; 13 14 int main() { 15 intf la[2] = {f, g}; 16 intf *lap = &la[0]; 17 18 intf x = *gap; 19 if (x(1) != 2) { 20 return 1; 21 } 22 23 x = ga[0]; 24 if (x(2) != 4) { 25 return 2; 26 } 27 28 x = ga[1]; 29 if (x(3) != 30) { 30 return 3; 31 } 32 33 x = *lap; 34 if (x(3) != 6) { 35 return 4; 36 } 37 38 x = la[0]; 39 if (x(4) != 8) { 40 return 5; 41 } 42 43 x = la[1]; 44 if (x(5) != 50) { 45 return 6; 46 } 47 48 x = *gap++; 49 if (x(6) != 12) { 50 return 7; 51 } 52 53 x = *gap++; 54 if (x(7) != 70) { 55 return 8; 56 } 57 58 x = *lap++; 59 if (x(8) != 16) { 60 return 9; 61 } 62 63 x = *lap++; 64 if (x(9) != 90) { 65 return 10; 66 } 67 68 gap = &ga[0]; 69 if ((*gap++)(10) != 20) { 70 return 11; 71 } 72 73 if ((*gap++)(11) != 110) { 74 return 12; 75 } 76 77 lap = &la[0]; 78 if ((*lap++)(10) != 20) { 79 return 13; 80 } 81 82 if ((*lap++)(40) != 400) { 83 return 14; 84 } 85 86 return 0; 87 }