1*6eed7e7eSNico Weber // RUN: %clangxx -fsanitize=undefined -O0 %s -o %t && UBSAN_OPTIONS=stack_trace_format=DEFAULT:fast_unwind_on_fatal=1 %run %t 2>&1 | FileCheck %s 2*6eed7e7eSNico Weber // RUN: %clangxx -fsanitize=undefined -O0 %s -o %t && UBSAN_OPTIONS=stack_trace_format=DEFAULT:fast_unwind_on_fatal=0 %run %t 2>&1 | FileCheck %s 3*6eed7e7eSNico Weber 4*6eed7e7eSNico Weber // This test is temporarily disabled due to broken unwinding on ARM. 5*6eed7e7eSNico Weber // UNSUPPORTED: -linux- 6*6eed7e7eSNico Weber 7*6eed7e7eSNico Weber // The test doesn't pass on Darwin in UBSan-TSan configuration, because TSan is 8*6eed7e7eSNico Weber // using the slow unwinder which is not supported on Darwin. The test should 9*6eed7e7eSNico Weber // be universal after landing of https://reviews.llvm.org/D32806. 10*6eed7e7eSNico Weber 11*6eed7e7eSNico Weber #include <sanitizer/common_interface_defs.h> 12*6eed7e7eSNico Weber FooBarBaz()13*6eed7e7eSNico Weberstatic inline void FooBarBaz() { 14*6eed7e7eSNico Weber __sanitizer_print_stack_trace(); 15*6eed7e7eSNico Weber } 16*6eed7e7eSNico Weber main()17*6eed7e7eSNico Weberint main() { 18*6eed7e7eSNico Weber FooBarBaz(); 19*6eed7e7eSNico Weber return 0; 20*6eed7e7eSNico Weber } 21*6eed7e7eSNico Weber 22*6eed7e7eSNico Weber // CHECK: {{.*}} in FooBarBaz{{.*}}print_stack_trace.cpp{{.*}} 23*6eed7e7eSNico Weber // CHECK: {{.*}} in main{{.*}}print_stack_trace.cpp{{.*}} 24