summaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/nodebug.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.base/nodebug.c')
-rw-r--r--gdb/testsuite/gdb.base/nodebug.c58
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;
+}