1*1099498eSVignesh Balasubramanian // RUN: %gdb-compile-and-run 2>&1 | tee %t.out | FileCheck %s 2*1099498eSVignesh Balasubramanian 3*1099498eSVignesh Balasubramanian #include "../ompt_plugin.h" 4*1099498eSVignesh Balasubramanian #include <omp.h> 5*1099498eSVignesh Balasubramanian #include <pthread.h> 6*1099498eSVignesh Balasubramanian #include <stdio.h> 7*1099498eSVignesh Balasubramanian #include <unistd.h> 8*1099498eSVignesh Balasubramanian createPthreads()9*1099498eSVignesh Balasubramanianvoid createPthreads() { 10*1099498eSVignesh Balasubramanian int numThreads = 2; 11*1099498eSVignesh Balasubramanian pthread_t threads[numThreads]; 12*1099498eSVignesh Balasubramanian int i; 13*1099498eSVignesh Balasubramanian for (i = 0; i < numThreads; ++i) 14*1099498eSVignesh Balasubramanian pthread_create(&threads[i], NULL, ompd_tool_break, NULL); 15*1099498eSVignesh Balasubramanian 16*1099498eSVignesh Balasubramanian for (i = 0; i < numThreads; ++i) 17*1099498eSVignesh Balasubramanian pthread_join(threads[i], NULL); 18*1099498eSVignesh Balasubramanian } 19*1099498eSVignesh Balasubramanian main()20*1099498eSVignesh Balasubramanianint main() { 21*1099498eSVignesh Balasubramanian omp_set_num_threads(4); 22*1099498eSVignesh Balasubramanian printf("Application: Process %d started.\n", getpid()); 23*1099498eSVignesh Balasubramanian createPthreads(); // thread_data is set to 0x0 if called 24*1099498eSVignesh Balasubramanian 25*1099498eSVignesh Balasubramanian // Parallel region 1 26*1099498eSVignesh Balasubramanian #pragma omp parallel 27*1099498eSVignesh Balasubramanian { ompd_tool_test(0); } 28*1099498eSVignesh Balasubramanian 29*1099498eSVignesh Balasubramanian return 0; 30*1099498eSVignesh Balasubramanian } 31*1099498eSVignesh Balasubramanian 32*1099498eSVignesh Balasubramanian // CHECK-NOT: OMPT-OMPD mismatch 33*1099498eSVignesh Balasubramanian // CHECK-NOT: Python Exception 34*1099498eSVignesh Balasubramanian // CHECK-NOT: The program is not being run. 35