1 // RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s 2 // REQUIRES: ompt 3 #include "callback.h" 4 #include <omp.h> 5 6 int main() 7 { 8 int x = 0; 9 #pragma omp parallel num_threads(2) 10 { 11 #pragma omp master 12 { 13 #pragma omp task 14 { 15 x++; 16 } 17 #pragma omp taskwait 18 print_current_address(1); 19 } 20 } 21 22 // Check if libomp supports the callbacks for this test. 23 // CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_sync_region' 24 // CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_sync_region_wait' 25 26 // CHECK: 0: NULL_POINTER=[[NULL:.*$]] 27 28 // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_taskwait_begin: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[RETURN_ADDRESS:0x[0-f]+]] 29 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_wait_taskwait_begin: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[RETURN_ADDRESS]] 30 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_wait_taskwait_end: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[RETURN_ADDRESS]] 31 // CHECK-NEXT: {{^}}[[MASTER_ID]]: ompt_event_taskwait_end: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[RETURN_ADDRESS]] 32 // CHECK-NEXT: {{^}}[[MASTER_ID]]: current_address={{.*}}[[RETURN_ADDRESS]] 33 34 return 0; 35 } 36