On 09/25/2015 03:57 AM, Nathan Sidwell wrote:
> 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?

See gcc/testsuite/c-c++-common/goacc/routine-7.c.

Cesar

Reply via email to