B11 - orphaned directive

void work() {
    #pragma omp for
    for (int i = 0; i < 100; i++) {
        // Work
    }
}

int main() {
    #pragma omp parallel
    {
        work();
    }
}
// dynamic extent
void work() {
    #pragma omp for
    for (int i = 0; i < 100; i++) {
        // Work
    }
}

// static extent
#pragma omp parallel
{
    work();
}
#include <stdio.h>
#include <omp.h>

void work() {
    #pragma omp for
    for (int i = 0; i < 8; i++) {
        printf("Thread %d executes i=%d\n",
               omp_get_thread_num(), i);
    }
}

int main() {
    #pragma omp parallel num_threads(4)
    {
        work();
    }

    return 0;
}