int main() { printf("Expect 4, get %d\n", foo_1()); printf("Expect 13, get %d\n", foo_2()); printf("Expect 103, get %d\n", foo_3()); return 0; }
void foo_4() { foo_1(); foo_2(); foo_3(); foo_4(); }
static __attribute__ ((noinline)) int foo (void) { return foo_1 (); }
void * bar(void *p) { int i; for (i = 0; i < ITERS; ++i) { foo_0 (); foo_1 (); foo_2 (); foo_3 (); foo_4 (); foo_5 (); foo_6 (); foo_7 (); foo_8 (); foo_9 (); foo_10 (); foo_11 (); foo_12 (); foo_13 (); foo_14 (); foo_15 (); foo_16 (); foo_17 (); foo_18 (); foo_19 (); foo_20 (); foo_21 (); foo_22 (); foo_23 (); foo_24 (); foo_25 (); foo_26 (); foo_27 (); foo_28 (); foo_29 (); foo_30 (); foo_31 (); foo_32 (); foo_33 (); foo_34 (); foo_35 (); foo_36 (); foo_37 (); foo_38 (); foo_39 (); foo_40 (); foo_41 (); foo_42 (); foo_43 (); foo_44 (); foo_45 (); foo_46 (); foo_47 (); foo_48 (); foo_49 (); foo_50 (); foo_51 (); foo_52 (); foo_53 (); foo_54 (); foo_55 (); foo_56 (); foo_57 (); foo_58 (); foo_59 (); foo_60 (); foo_61 (); foo_62 (); foo_63 (); foo_64 (); foo_65 (); foo_66 (); foo_67 (); foo_68 (); foo_69 (); foo_70 (); foo_71 (); foo_72 (); foo_73 (); foo_74 (); foo_75 (); foo_76 (); foo_77 (); foo_78 (); foo_79 (); foo_80 (); foo_81 (); foo_82 (); foo_83 (); foo_84 (); foo_85 (); foo_86 (); foo_87 (); foo_88 (); foo_89 (); foo_90 (); foo_91 (); foo_92 (); foo_93 (); foo_94 (); foo_95 (); foo_96 (); foo_97 (); foo_98 (); foo_99 (); foo_100 (); foo_101 (); foo_102 (); foo_103 (); foo_104 (); foo_105 (); foo_106 (); foo_107 (); foo_108 (); foo_109 (); foo_110 (); foo_111 (); foo_112 (); foo_113 (); foo_114 (); foo_115 (); foo_116 (); foo_117 (); foo_118 (); foo_119 (); foo_120 (); foo_121 (); foo_122 (); foo_123 (); foo_124 (); foo_125 (); foo_126 (); foo_127 (); foo_128 (); } return NULL; }
int main ( void ) { printf("0x%x\n", foo_0()); printf("0x%x\n", foo_1()); return 0; }
void foo_2() override { LOG("called foo_2 from Derived_2"); foo_1(); // call Derived_1 foo_1 even if Derived_1 isn't directly related // cross delegation }