summaryrefslogtreecommitdiffstats
path: root/packages/Python/lldbsuite/test/lang/c/recurse/main.c
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2016-01-06 20:12:03 +0000
committerdim <dim@FreeBSD.org>2016-01-06 20:12:03 +0000
commit78b9749c0a4ea980a8b934645da6ae98fcc665e8 (patch)
treedd2a1ddf0476664c2b823409c36cbccd52662ca7 /packages/Python/lldbsuite/test/lang/c/recurse/main.c
parent60cb593f9d55fa5ca7a5372b731f2330345b4b9a (diff)
downloadFreeBSD-src-78b9749c0a4ea980a8b934645da6ae98fcc665e8.zip
FreeBSD-src-78b9749c0a4ea980a8b934645da6ae98fcc665e8.tar.gz
Vendor import of lldb trunk r256945:
https://llvm.org/svn/llvm-project/lldb/trunk@256945
Diffstat (limited to 'packages/Python/lldbsuite/test/lang/c/recurse/main.c')
-rw-r--r--packages/Python/lldbsuite/test/lang/c/recurse/main.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/packages/Python/lldbsuite/test/lang/c/recurse/main.c b/packages/Python/lldbsuite/test/lang/c/recurse/main.c
new file mode 100644
index 0000000..1159669
--- /dev/null
+++ b/packages/Python/lldbsuite/test/lang/c/recurse/main.c
@@ -0,0 +1,28 @@
+#include <stdint.h>
+#include <stdio.h>
+
+uint32_t
+recurse_crash (uint32_t depth)
+{
+ if (depth > 0)
+ return recurse_crash (depth - 1);
+ return 0;
+}
+
+int
+main (int argc, char const *argv[])
+{
+ // If we have more than one argument, then it should a depth to recurse to.
+ // If we have just the program name as an argument, use UINT32_MAX so we
+ // eventually crash the program by overflowing the stack
+ uint32_t depth = UINT32_MAX;
+ if (argc > 1)
+ {
+ char *end = NULL;
+ depth = strtoul (argv[1], &end, 0);
+ if (end == NULL || *end != '\0')
+ depth = UINT32_MAX;
+ }
+ recurse_crash (depth);
+ return 0;
+} \ No newline at end of file
OpenPOWER on IntegriCloud