diff options
Diffstat (limited to 'gdb/testsuite/gdb.base/auxv.c')
-rw-r--r-- | gdb/testsuite/gdb.base/auxv.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/auxv.c b/gdb/testsuite/gdb.base/auxv.c new file mode 100644 index 00000000000..94f9d000f48 --- /dev/null +++ b/gdb/testsuite/gdb.base/auxv.c @@ -0,0 +1,58 @@ +/* Simple little program that just generates a core dump from inside some + nested function calls. Keep this as self contained as possible, I.E. + use no environment resources other than possibly abort(). */ + +#ifndef __STDC__ +#define const /**/ +#endif + +#ifndef HAVE_ABORT +#define HAVE_ABORT 1 +#endif + +#if HAVE_ABORT +#define ABORT abort() +#else +#define ABORT {char *invalid = 0; *invalid = 0xFF;} +#endif + +/* Don't make these automatic vars or we will have to walk back up the + stack to access them. */ + +char *buf1; +char *buf2; + +int coremaker_data = 1; /* In Data section */ +int coremaker_bss; /* In BSS section */ + +const int coremaker_ro = 201; /* In Read-Only Data section */ + +void +func2 (int x) +{ + int coremaker_local[5]; + int i; + static int y; + + /* Make sure that coremaker_local doesn't get optimized away. */ + for (i = 0; i < 5; i++) + coremaker_local[i] = i; + coremaker_bss = 0; + for (i = 0; i < 5; i++) + coremaker_bss += coremaker_local[i]; + coremaker_data = coremaker_ro + 1; + y = 10 * x; + ABORT; +} + +void +func1 (int x) +{ + func2 (x * 2); +} + +int main () +{ + func1 (10); + return 0; +} |