Hi there.

Ok, not really malicious, but you know...

I have an issue when compiling a buggy glsl geometry shader. First of all, the buggy shader code goes like this:

!! BAD CODE !!
Code :
// dont mind the names, just for debug reasons
uvec4 abc( uint marker )
{
	return uvec4( marker ) >> uvec3(7,6,5,4) & uvec4(1) ;
}

BEFORE seeing the solution, do you see the buggy spot? Awesomely annoying!

!! GOOD CODE !!
Now the fix is simple:

Code :
// dont mind the names, just for debug reasons
uvec4 abc( uint marker )
{
	return uvec4( marker ) >> uvec4(7,6,5,4) & uvec4(1) ;
}

When I compile the BAD CODE code, I get the pure virtual function exception pretty much between glCompileShader and glGetShaderInfoLog. What a pity. The GOOD CODE, as the name implies, makes the bug disappear!

Click image for larger version. 

Name:	shader_code_error.jpg 
Views:	92 
Size:	13.9 KB 
ID:	1089

There is even no pure virtual function call handler called. I also tried to set one, but also not called. I checked that in purevirt.c.

That took some time to figure it out! I just thought there is some deeper trouble in the engine or something... I really sweat my pants full! However.

Can someone please check the code I posted above if the same "error" message occurs?
If so, I dont think that this is the right way to respond to the mistakes I made in GLSL code.

Thanks

#Edit#
Im using the latest AMD Driver