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