[Mesa-dev] [PATCH 07/13] glsl: assert on incoherent point mode layout-id-qualifier validation
Andres Gomez
agomez at igalia.com
Tue Nov 22 08:19:45 UTC 2016
The point mode value in an ast_type_qualifier can only be true if the
flag is already set since this layout-id-qualifier can only be or not
be present in a shader.
Hence, it is useless to check for its value if the flag is already
set. Just replaced with an assert.
V2: assert instead of checking for coherence and raising a compilation
error. Suggested by Timothy.
Signed-off-by: Andres Gomez <agomez at igalia.com>
---
src/compiler/glsl/ast_type.cpp | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/src/compiler/glsl/ast_type.cpp b/src/compiler/glsl/ast_type.cpp
index 6c1efc2..a21480d 100644
--- a/src/compiler/glsl/ast_type.cpp
+++ b/src/compiler/glsl/ast_type.cpp
@@ -316,10 +316,8 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc,
}
if (q.flags.q.point_mode) {
- if (this->flags.q.point_mode && this->point_mode != q.point_mode) {
- _mesa_glsl_error(loc, state, "conflicting point mode used");
- return false;
- }
+ /* Point mode can only be true if the flag is set. */
+ assert (!this->flags.q.point_mode || (this->point_mode && q.point_mode));
this->flags.q.point_mode = 1;
this->point_mode = q.point_mode;
}
@@ -581,12 +579,10 @@ ast_type_qualifier::validate_in_qualifier(YYLTYPE *loc,
"conflicting ordering specified");
}
- if (state->in_qualifier->flags.q.point_mode && this->flags.q.point_mode
- && state->in_qualifier->point_mode != this->point_mode) {
- r = false;
- _mesa_glsl_error(loc, state,
- "conflicting point mode specified");
- }
+ /* Point mode can only be true if the flag is set. */
+ assert (!state->in_qualifier->flags.q.point_mode
+ || !this->flags.q.point_mode
+ || (state->in_qualifier->point_mode && this->point_mode));
return r;
}
--
2.9.3
More information about the mesa-dev
mailing list