1
2// clang-format off
3// RUN: %libomptarget-compileopt-generic
4// RUN: %not --crash env -u LLVM_DISABLE_SYMBOLIZATION OFFLOAD_TRACK_NUM_KERNEL_LAUNCH_TRACES=1 %libomptarget-run-generic 2>&1 | %fcheck-generic --check-prefixes=CHECK,TRACE
5// RUN: %not --crash %libomptarget-run-generic 2>&1 | %fcheck-generic --check-prefixes=CHECK
6// RUN: %libomptarget-compileopt-generic -g
7// RUN: %not --crash env -u LLVM_DISABLE_SYMBOLIZATION OFFLOAD_TRACK_NUM_KERNEL_LAUNCH_TRACES=1 %libomptarget-run-generic 2>&1 | %fcheck-generic --check-prefixes=CHECK,TRACE,DEBUG
8// RUN: %not --crash %libomptarget-run-generic 2>&1 | %fcheck-generic --check-prefixes=CHECK
9// clang-format on
10
11// UNSUPPORTED: nvptx64-nvidia-cuda
12// UNSUPPORTED: nvptx64-nvidia-cuda-LTO
13// UNSUPPORTED: aarch64-unknown-linux-gnu
14// UNSUPPORTED: aarch64-unknown-linux-gnu-LTO
15// UNSUPPORTED: x86_64-unknown-linux-gnu
16// UNSUPPORTED: x86_64-unknown-linux-gnu-LTO
17// UNSUPPORTED: s390x-ibm-linux-gnu
18// UNSUPPORTED: s390x-ibm-linux-gnu-LTO
19
20#include <omp.h>
21
22int main(void) {
23
24#pragma omp target nowait
25 {
26 }
27#pragma omp target nowait
28 {
29 }
30#pragma omp target nowait
31 {
32 __builtin_trap();
33 }
34#pragma omp taskwait
35}
36
37// clang-format off
38// CHECK: OFFLOAD ERROR: Kernel {{.*}} (__omp_offloading_{{.*}}_main_l30)
39// CHECK: OFFLOAD ERROR: execution interrupted by hardware trap instruction
40// TRACE: launchKernel
41// DEBUG: kernel_trap_async.c:
42// clang-format on
43

source code of offload/test/sanitizer/kernel_trap_async.c