xref: /llvm-project/lldb/test/Shell/Unwind/Inputs/unaligned-pc-sigbus.c (revision d12c48cad52798f4846dd8ef882af0f854118d16)
1 #include <signal.h>
2 #include <stdint.h>
3 #include <unistd.h>
4 
sigbus_handler(int signo)5 void sigbus_handler(int signo) { _exit(47); }
6 
target_function()7 int target_function() { return 47; }
8 
main()9 int main() {
10   signal(SIGBUS, sigbus_handler);
11 
12   // Generate a SIGBUS by deliverately calling through an unaligned function
13   // pointer.
14   union {
15     int (*t)();
16     uintptr_t p;
17   } u;
18   u.t = target_function;
19   u.p |= 1;
20   return u.t();
21 }
22