1#include <stdlib.h> 2/* Test that things still (sort of) work when compiled without -g. */ 3 4int dataglobal = 3; /* Should go in global data */ 5static int datalocal = 4; /* Should go in local data */ 6int bssglobal; /* Should go in global bss */ 7static int bsslocal; /* Should go in local bss */ 8 9#ifdef PROTOTYPES 10int 11inner (int x) 12#else 13int 14inner (x) 15 int x; 16#endif 17{ 18 return x + dataglobal + datalocal + bssglobal + bsslocal; 19} 20 21#ifdef PROTOTYPES 22static short 23middle (int x) 24#else 25static short 26middle (x) 27 int x; 28#endif 29{ 30 return 2 * inner (x); 31} 32 33#ifdef PROTOTYPES 34short 35top (int x) 36#else 37short 38top (x) 39 int x; 40#endif 41{ 42 return 2 * middle (x); 43} 44 45#ifdef PROTOTYPES 46int 47main (int argc, char **argv) 48#else 49int 50main (argc, argv) 51 int argc; 52 char **argv; 53#endif 54{ 55#ifdef usestubs 56 set_debug_traps(); 57 breakpoint(); 58#endif 59 return top (argc); 60} 61 62int *x; 63 64#ifdef PROTOTYPES 65int array_index (char *arr, int i) 66#else 67int 68array_index (arr, i) 69 char *arr; 70 int i; 71#endif 72{ 73 /* The basic concept is just "return arr[i];". But call malloc so that gdb 74 will be able to call functions. */ 75 char retval; 76 x = (int *) malloc (sizeof (int)); 77 *x = i; 78 retval = arr[*x]; 79 free (x); 80 return retval; 81} 82