diff options
Diffstat (limited to 'gdb/testsuite/gdb.base/nodebug.c')
-rw-r--r-- | gdb/testsuite/gdb.base/nodebug.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/nodebug.c b/gdb/testsuite/gdb.base/nodebug.c new file mode 100644 index 00000000000..4aad099e563 --- /dev/null +++ b/gdb/testsuite/gdb.base/nodebug.c @@ -0,0 +1,58 @@ +/* Test that things still (sort of) work when compiled without -g. */ + +int dataglobal = 3; /* Should go in global data */ +static int datalocal = 4; /* Should go in local data */ +int bssglobal; /* Should go in global bss */ +static int bsslocal; /* Should go in local bss */ + +int +inner (x) + int x; +{ + return x + dataglobal + datalocal + bssglobal + bsslocal; +} + +static short +middle (x) + int x; +{ + return 2 * inner (x); +} + +short +top (x) + int x; +{ + return 2 * middle (x); +} + +int +main (argc, argv) + int argc; + char **argv; +{ +#ifdef usestubs + set_debug_traps(); + breakpoint(); +#endif + return top (argc); +} + +char *malloc (); + +int *x; + +int +array_index (arr, i) + char *arr; + int i; +{ + /* The basic concept is just "return arr[i];". But call malloc so that gdb + will be able to call functions. */ + char retval; + x = (int *) malloc (sizeof (int)); + *x = i; + retval = arr[*x]; + free (x); + return retval; +} |