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