The 'capture' modifier is an OpenACC 3.3NEXT (AKA 3.4) feature, which
permits a new kind of identifying the memory location of variables in a
data clause. However, it is only valid on data, combined, or compute
constructs.
This patch implements all of the proper restrictions.
OpenACC 3.3-NEXT has changed the way tags for copy, copyin, copyout, and
create clauses are specified, and end up adding a few extras, and
permits them as a list. This patch encodes these as bitmask enum so
they can be stored succinctly, but still diagnose reasonably.
This is the last set of 'no op' changes, and are all incredibly similar,
so they are being done together. They work the exact same for combined
constructs as they do for compute constructs, so this adds tests and
enables them.