Without this patch, each of the following map clauses doesn't map
its variable into the target region because the variable is unused in
the target region, as discussed in D65835#1624669:
#pragma omp target map(a) {} #pragma omp target map(a) #pragma omp teams private(a) { a++; }
This patch fixes that by marking all map clause variables for
capturing. That means the capturing analysis now sometimes runs on a
capture region within a combined construct, so this patch adjusts the
analysis to be precise about how many capture regions remain in a
combined construct. Otherwise, existing tests break.