glsl: Support the 'invariant(all)' pragma
authorIan Romanick <ian.d.romanick@intel.com>
Thu, 6 Jan 2011 18:49:56 +0000 (10:49 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Thu, 6 Jan 2011 18:49:56 +0000 (10:49 -0800)
commit86b4398cd158024f6be9fa830554a11c2a7ebe0c
treef6a68f1bbcf218cbfefe30742054fd0002c99711
parente942f328365309a1d8240cfe8eb5d88391015f37
glsl: Support the 'invariant(all)' pragma

Previously the 'STDGL invariant(all)' pragma added in GLSL 1.20 was
simply ignored by the compiler.  This adds support for setting all
variable invariant.

In GLSL 1.10 and GLSL ES 1.00 the pragma is ignored, per the specs,
but a warning is generated.

Fixes piglit test glsl-invariant-pragma and bugzilla #31925.

NOTE: This is a candidate for the 7.9 and 7.10 branches.
src/glsl/ast_to_hir.cpp
src/glsl/glsl_lexer.lpp
src/glsl/glsl_parser.ypp
src/glsl/glsl_parser_extras.h