bugs in nVidia's GLSL

1.) “invariant gl_Position;” should not be allowed in a fragment shader, since gl_Position has no meaning there.
2.) a semicolon after the body of a function seems not to be allowed by GLSL. So,

main()
{

};

should cause some error.

I found these two problems while trying to get some GLSL1.50 shaders (developed on a nVidia card) run on an ATI card.