1*74989affSNico Weber // Test the handle_abort option. 2*74989affSNico Weber 3*74989affSNico Weber // RUN: %clangxx %s -o %t 4*74989affSNico Weber // RUN: not --crash %run %t 2>&1 | FileCheck --check-prefix=CHECK0 %s 5*74989affSNico Weber // RUN: %env_tool_opts=handle_abort=0 not --crash %run %t 2>&1 | FileCheck --check-prefix=CHECK0 %s 6*74989affSNico Weber // RUN: %env_tool_opts=handle_abort=1 not %run %t 2>&1 | FileCheck --check-prefix=CHECK1 %s 7*74989affSNico Weber 8*74989affSNico Weber #include <assert.h> 9*74989affSNico Weber #include <stdio.h> 10*74989affSNico Weber #include <sanitizer/asan_interface.h> 11*74989affSNico Weber death()12*74989affSNico Webervoid death() { 13*74989affSNico Weber fprintf(stderr, "DEATH CALLBACK\n"); 14*74989affSNico Weber } 15*74989affSNico Weber main(int argc,char ** argv)16*74989affSNico Weberint main(int argc, char **argv) { 17*74989affSNico Weber __sanitizer_set_death_callback(death); 18*74989affSNico Weber assert(argc == 100); 19*74989affSNico Weber } 20*74989affSNico Weber 21*74989affSNico Weber // CHECK0-NOT: Sanitizer:DEADLYSIGNAL 22*74989affSNico Weber // CHECK1: ERROR: {{.*}}Sanitizer: ABRT 23*74989affSNico Weber // CHECK1: {{ #0 }} 24*74989affSNico Weber // CHECK1: DEATH CALLBACK 25*74989affSNico Weber // CHECK0-NOT: Sanitizer 26