On Sat, Jun 5, 2010 at 3:10 AM, Richard Guenther
<richard.guent...@gmail.com> wrote:
> On Fri, Jun 4, 2010 at 11:39 PM, Andrew Pinski <pins...@gmail.com> wrote:
>> On Tue, Jun 1, 2010 at 12:21 PM, Artem Shinkarov
>> <artyom.shinkar...@gmail.com> wrote:
>>
>> +      error_at (loc, "index value is out of bound");
>>
>> That is wrong.  The Cell C/C++ language document says out of bounds
>> accesses are undefined (that is at runtime).
>
> I think we should implement whatever OpenCL specs and disregard
> whatever the (dead) Cell C/C++ language docs say.  The project is
> to improve GCCs generic vector facility, not to implement the Cell
> language spec.

Except it makes no sense that:
int f(void)
{
  vector int t;
  return t[55];
}
is rejected but

int f(void)
{
  vector int t;
  const int tt = 55;
  return t[tt];
}
is accepted in C but rejected in C++.

This is why OpenCL spec is not very good here really and not
consistent with the rest of the C/C++ standard.  In fact I would say
we should treat it as the same as arrays out of bounds where it is
just undefined at runtime rather than an error.  This is what the Cell
C/C++ language spec is trying to do rather than something more
specific to vectors.  The Cell C/C++ specifications was trying to be
as close to what the current C/C++ standard says about out of bounds
accesses rather than making up different rules.

Thanks,
Andrew Pinski

Reply via email to