On 09/24/15 16:32, Cesar Philippidis wrote:
On 09/22/2015 08:29 AM, Nathan Sidwell wrote:

1) Don't have a fake gang reduction outside of worker & vector loops.
Deal with the receiver object directly.  I.e. 'ref_to_res' need not be a
null pointer for vector and worker loops.

What happens when there is no receiver object. E.g. a reduction inside a
routine? Specifically, inside lower_oacc_reductions, your doing this:

            /* This is the outermost construct with this reduction,
               see if there's a mapping for it.  */
            if (maybe_lookup_field (orig, outer))
              ref_to_res = build_receiver_ref (orig, false, outer);

That's going to ICE inside a routine.

Is it?  the 'maybe_lookup' should protect against that.  do you have a testcase?

nathan

Reply via email to