glsl: Add pragma to disable all warnings
authorIan Romanick <ian.d.romanick@intel.com>
Thu, 1 Nov 2018 20:50:14 +0000 (13:50 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Thu, 8 Nov 2018 19:00:00 +0000 (11:00 -0800)
commitc5a4c264508d3b36663779b89ec0dbaf7653df96
tree0e27e48dc1617316c2312a271963ff36bc0befe4
parent011abfc963a734953a0edd9c7a4fa01570627050
glsl: Add pragma to disable all warnings

Use #pragma warning(off) and #pragma warning(on) to disable or enable
all warnings.  This is a big hammer.  If we ever need a smaller hammer,
we can enhance this functionality.

There is one lame thing about this.  Because we parse everything, create
an AST, then convert the AST to GLSL IR, we have to treat the #pragma
like a statment.  This means that you can't do something like

'    void
'    #pragma warning(off)
'    __foo
'    #pragma warning(on)
'    (float param0);

Fixing that would, as far as I can tell, require a huge amount of work.

I did try just handling the #pragma during parsing (like we do for
state for the whole shader.

v2: Fix the #pragma lines in the commit message that git-commit ate.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/compiler/glsl/ast.h
src/compiler/glsl/ast_to_hir.cpp
src/compiler/glsl/glsl_lexer.ll
src/compiler/glsl/glsl_parser.yy
src/compiler/glsl/glsl_parser_extras.cpp
src/compiler/glsl/glsl_parser_extras.h
src/compiler/glsl/tests/warnings/032-__-in-function-name-pragma-disable.vert [new file with mode: 0644]
src/compiler/glsl/tests/warnings/032-__-in-function-name-pragma-disable.vert.expected [new file with mode: 0644]