]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/testsuite/gdb.base/coremaker2.c
import gdb-1999-12-06 snapshot
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.base / coremaker2.c
1 /* Simple little program that just generates a core dump from inside some
2 nested function calls. Keep this as self contained as possible, I.E.
3 use no environment resources other than possibly abort(). */
4
5 #ifndef __STDC__
6 #define const /**/
7 #endif
8
9 #ifndef HAVE_ABORT
10 #define HAVE_ABORT 1
11 #endif
12
13 #if HAVE_ABORT
14 #define ABORT abort()
15 #else
16 #define ABORT {char *invalid = 0; *invalid = 0xFF;}
17 #endif
18
19 /* Don't make these automatic vars or we will have to walk back up the
20 stack to access them. */
21
22 char *buf1;
23 char *buf2;
24
25 int coremaker_data = 1; /* In Data section */
26 int coremaker_bss; /* In BSS section */
27
28 const int coremaker_ro = 201; /* In Read-Only Data section */
29
30 void
31 func2 (int x)
32 {
33 int coremaker_local[5];
34 int i;
35 static int y;
36
37 /* Make sure that coremaker_local doesn't get optimized away. */
38 for (i = 0; i < 5; i++)
39 coremaker_local[i] = i;
40 coremaker_bss = 0;
41 for (i = 0; i < 5; i++)
42 coremaker_bss += coremaker_local[i];
43 coremaker_data = coremaker_ro + 1;
44 y = 10 * x;
45 ABORT;
46 }
47
48 void
49 func1 (int x)
50 {
51 func2 (x * 2);
52 }
53
54 int main ()
55 {
56 func1 (10);
57 return 0;
58 }