| 1 | #include <signal.h> |
|---|---|
| 2 | #include <unistd.h> |
| 3 | |
| 4 | int __attribute__((naked)) signal_generating_add(int a, int b) { |
| 5 | asm("add w0, w1, w0\n\t" |
| 6 | "udf #0xdead\n\t" |
| 7 | "ret"); |
| 8 | } |
| 9 | |
| 10 | void sigill_handler(int signo) { _exit(status: 0); } |
| 11 | |
| 12 | int main() { |
| 13 | signal(SIGILL, handler: sigill_handler); |
| 14 | return signal_generating_add(a: 42, b: 47); |
| 15 | } |
| 16 |
