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.