xref: /openbsd-src/gnu/usr.bin/binutils/gdb/testsuite/gdb.base/gcore.c (revision 11efff7f3ac2b3cfeff0c0cddc14294d9b3aca4f)
1*11efff7fSkettenis /* Copyright 2002, 2004 Free Software Foundation, Inc.
2*11efff7fSkettenis 
3*11efff7fSkettenis    This file is part of GDB.
4*11efff7fSkettenis 
5*11efff7fSkettenis    This program is free software; you can redistribute it and/or modify
6*11efff7fSkettenis    it under the terms of the GNU General Public License as published by
7*11efff7fSkettenis    the Free Software Foundation; either version 2 of the License, or (at
8*11efff7fSkettenis    your option) any later version.
9*11efff7fSkettenis 
10*11efff7fSkettenis    This program is distributed in the hope that it will be useful, but
11*11efff7fSkettenis    WITHOUT ANY WARRANTY; without even the implied warranty of
12*11efff7fSkettenis    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13*11efff7fSkettenis    General Public License for more details.
14*11efff7fSkettenis 
15*11efff7fSkettenis    You should have received a copy of the GNU General Public License
16*11efff7fSkettenis    along with this program; if not, write to the Free Software
17*11efff7fSkettenis    Foundation, Inc., 59 Temple Place - Suite 330,
18*11efff7fSkettenis    Boston, MA 02111-1307, USA.  */
19*11efff7fSkettenis 
20b725ae77Skettenis /*
21b725ae77Skettenis  * Test GDB's ability to save and reload a corefile.
22b725ae77Skettenis  */
23b725ae77Skettenis 
24b725ae77Skettenis #include <stdlib.h>
25*11efff7fSkettenis #include <string.h>
26b725ae77Skettenis 
27b725ae77Skettenis int extern_array[4] = {1, 2, 3, 4};
28b725ae77Skettenis static int static_array[4] = {5, 6, 7, 8};
29b725ae77Skettenis static int un_initialized_array[4];
30b725ae77Skettenis static char *heap_string;
31b725ae77Skettenis 
32b725ae77Skettenis void
terminal_func()33b725ae77Skettenis terminal_func ()
34b725ae77Skettenis {
35b725ae77Skettenis   return;
36b725ae77Skettenis }
37b725ae77Skettenis 
38b725ae77Skettenis void
array_func()39b725ae77Skettenis array_func ()
40b725ae77Skettenis {
41b725ae77Skettenis   int local_array[4];
42b725ae77Skettenis   int i;
43b725ae77Skettenis 
44b725ae77Skettenis   heap_string = (char *) malloc (80);
45b725ae77Skettenis   strcpy (heap_string, "I'm a little teapot, short and stout...");
46b725ae77Skettenis   for (i = 0; i < 4; i++)
47b725ae77Skettenis     {
48b725ae77Skettenis       un_initialized_array[i] = extern_array[i] + 8;
49b725ae77Skettenis       local_array[i] = extern_array[i] + 12;
50b725ae77Skettenis     }
51b725ae77Skettenis   terminal_func ();
52b725ae77Skettenis }
53b725ae77Skettenis 
54b725ae77Skettenis #ifdef PROTOTYPES
factorial_func(int value)55b725ae77Skettenis int factorial_func (int value)
56b725ae77Skettenis #else
57b725ae77Skettenis int factorial_func (value)
58b725ae77Skettenis      int value;
59b725ae77Skettenis #endif
60b725ae77Skettenis {
61b725ae77Skettenis   if (value > 1) {
62b725ae77Skettenis     value *= factorial_func (value - 1);
63b725ae77Skettenis   }
64b725ae77Skettenis   array_func ();
65b725ae77Skettenis   return (value);
66b725ae77Skettenis }
67b725ae77Skettenis 
main()68b725ae77Skettenis main()
69b725ae77Skettenis {
70b725ae77Skettenis   factorial_func (6);
71b725ae77Skettenis   return 0;
72b725ae77Skettenis }
73