GL_ARB_vertex_program and GL_ARB_fragment_program do not allow reads from shader outputs, and many pieces of hardware (e.g., r300 and i915) don't allow this either. Because of that, Mesa and many drivers assume that there are no reads from shader outputs, and some drivers will assert otherwise.
See the _mesa_remove_output_reads() function.
commit 83baa8a6c5541829003bbffe1d2b8cee5a0263fd Author: Marek Olšák <maraeo@gmail.com> Date: Mon Aug 16 01:53:30 2010 +0200 st/mesa: remove output register reads inside shaders This is a GLSL2 regression fix. (I don't think there are any other candidates for this: 965 is fine with it, and radeon developers claimed to be OK with it).
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.