main.c   [plain text]



extern void foo1();
extern void foo2();
extern void bar1();
extern void bar2();

extern int foo_data1;
extern int foo_data2;
extern int bar_data1;
extern int bar_data2;



// make external relocation to foo_data1 and bar_data1
int* pfoo = &foo_data1;
int* pbar = &bar_data1;


int main (void)
{
	// make non-lazy reference to foo1 and bar1
	if ( &foo1 == &bar1 ) {
		// make lazy reference to foo2 and bar2
		foo2();
		bar2();
	}
   
   // make non-lazy reference to foo_data2 and bar_data2
   return *pfoo + *pbar + foo_data2 + bar_data2;
}