Compiler crashes when omp simd is used in an OpenCL file:
clang -c -fopenmp omp_simd.cl
kernel void test(global int *data, int size) {
#pragma omp simd for (int i = 0; i < size; ++i) { }
}
The problem seems to be the check added to verify block pointers have initializers. An OMPCapturedExprDecl is created to capture ‘size’ but there is no TypeSourceInfo.
The change just uses getType() directly.
Does simd result in block creation? My original understanding of it was that it will result in vector operations, not extra threads.