summaryrefslogtreecommitdiff
path: root/lldb/lit/Minidump/Windows/Sigsegv/Inputs/sigsegv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/lit/Minidump/Windows/Sigsegv/Inputs/sigsegv.cpp')
-rw-r--r--lldb/lit/Minidump/Windows/Sigsegv/Inputs/sigsegv.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/lldb/lit/Minidump/Windows/Sigsegv/Inputs/sigsegv.cpp b/lldb/lit/Minidump/Windows/Sigsegv/Inputs/sigsegv.cpp
new file mode 100644
index 00000000000..6bf78b5dc43
--- /dev/null
+++ b/lldb/lit/Minidump/Windows/Sigsegv/Inputs/sigsegv.cpp
@@ -0,0 +1,40 @@
+
+// nodefaultlib build: cl -Zi sigsegv.cpp /link /nodefaultlib
+
+#ifdef USE_CRT
+#include <stdio.h>
+#else
+int main();
+extern "C"
+{
+ int _fltused;
+ void mainCRTStartup() { main(); }
+ void printf(const char*, ...) {}
+}
+#endif
+
+void crash(bool crash_self)
+{
+ printf("Before...\n");
+ if(crash_self)
+ {
+ printf("Crashing in 3, 2, 1 ...\n");
+ *(volatile int*)nullptr = 0;
+ }
+ printf("After...\n");
+}
+
+int foo(int x, float y, const char* msg)
+{
+ bool flag = x > y;
+ if(flag)
+ printf("x = %d, y = %f, msg = %s\n", x, y, msg);
+ crash(flag);
+ return x << 1;
+}
+
+int main()
+{
+ foo(10, 3.14, "testing");
+}
+