From ef44eed173353ff002da6fe92680e40068cd081f Mon Sep 17 00:00:00 2001 From: Stan Shebs Date: Tue, 7 Jun 1994 01:57:15 +0000 Subject: Reorganized GDB tests - base --- gdb/testsuite/gdb.base/run.c | 59 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 gdb/testsuite/gdb.base/run.c (limited to 'gdb/testsuite/gdb.base/run.c') diff --git a/gdb/testsuite/gdb.base/run.c b/gdb/testsuite/gdb.base/run.c new file mode 100644 index 0000000..eb17bf3 --- /dev/null +++ b/gdb/testsuite/gdb.base/run.c @@ -0,0 +1,59 @@ +/* + * This simple classical example of recursion is useful for + * testing stack backtraces and such. + */ + +#ifdef vxworks +# include +# include + +/* VxWorks does not supply atoi. */ +static int +atoi (z) + char *z; +{ + int i = 0; + + while (*z >= '0' && *z <= '9') + i = i * 10 + (*z++ - '0'); + return i; +} + +/* I don't know of any way to pass an array to VxWorks. This function + can be called directly from gdb. */ + +vxmain (arg) +char *arg; +{ + char *argv[2]; + + argv[0] = ""; + argv[1] = arg; + main (2, argv, (char **) 0); +} + +#else /* ! vxworks */ +# include +#endif /* ! vxworks */ + +main (argc, argv, envp) +int argc; +char *argv[], **envp; +{ + if (argc != 2) { + printf ("usage: factorial \n"); + return 1; + } else { + printf ("%d\n", factorial (atoi (argv[1]))); + } + return 0; +} + +int factorial (value) +int value; +{ + if (value > 1) { + value *= factorial (value - 1); + } + return (value); +} -- cgit v1.1