Menu

#44 Brcc crashes on following

1.5
open
nobody
brcc (29)
5
2009-08-08
2009-08-08
No

Brcc crashes on following code...

kernel void GPU_coadd_kernel3_54(float src[][],int size[],out float4 dest<>)
{
int threadID=instance().y;
int i=instance().x;
float4 o;
float4 i1;
float4 i2;
float i3;
float i4;
int ln=(size[threadID])>>2;//R:last elements will be treated separately
if(i>ln)return;
if(i<ln){
i1.x=src[threadID][8*i];
i2.x=src[threadID][8*i+1];
i1.y=src[threadID][8*i+2];
i2.y=src[threadID][8*i+3];
i1.z=src[threadID][8*i+4];
i2.z=src[threadID][8*i+5];
i1.w=src[threadID][8*i+6];
i2.w=src[threadID][8*i+7];
o=i1+i2;
dest=o;
}else{
//R:last elements
//o=0.f;
switch(size[threadID]-ln*4){
case 1:o.x=src[threadID][8*ln]+src[threadID][8*ln+1];//R:no break,falling through to next case
case 2:o.y=src[threadID][8*ln+2]+src[threadID][8*ln+3];
case 3:o.z=src[threadID][8*ln+4]+src[threadID][8*ln+5];

}
dest=o;
}
}

I know, there is unalowed switch statement.
But compiler should report syntax error (as it did for switch before, in other kernel), and not to crash badly.

Discussion


Log in to post a comment.