extern int udata1;	extern char udata2[];
int xdata1=1;		char xdata2[]="xy";
static int sdata1=11;	static char sdata2[]="abc";

extern int ubss1[10];	extern char ubss2[20];
int xbss1[10];		char xbss2[20];
static int sbss1[10];	static char sbss2[20];

/*=========================================================================*/

extern int undef1 (int i);
extern int undef2 (int i);

int fac1 (int i) {int k = 1; while (i > 0) k *= i--; return (k);}
static int fac2 (int i) {if (i < 2) return (1); return (i * fac2 (i - 1));}

void func1 (int i) {func1 (i),
			undef1 (udata1); undef1 (xdata1); undef1 (sdata1);
			fac1 (*ubss1); fac1 (*xbss1); fac1 (*sbss1);}
static void func2 (int i) {func2 (i),
			undef2 (*udata2); undef2 (*xdata2); undef2 (*sdata2);
			fac2 (*ubss2); fac2 (*xbss2); fac2 (*sbss2);}

