summaryrefslogtreecommitdiffstats
path: root/3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/ast_to_hir.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/ast_to_hir.cpp')
-rw-r--r--3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/ast_to_hir.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/ast_to_hir.cpp b/3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/ast_to_hir.cpp
index d31c53465fc..09b688578f7 100644
--- a/3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/ast_to_hir.cpp
+++ b/3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/ast_to_hir.cpp
@@ -3045,10 +3045,12 @@ process_initializer(ir_variable *var, ast_declaration *decl,
/* Propagate precision qualifier for constant value */
if (type->qualifier.flags.q.constant) {
ir_constant *constant_value = rhs->constant_expression_value();
- constant_value->set_precision((glsl_precision)type->qualifier.precision);
- if (constant_value->type->is_array()) {
- for (unsigned i = 0; i < constant_value->type->length; i++) {
- constant_value->get_array_element(i)->set_precision((glsl_precision)type->qualifier.precision);
+ if (NULL != constant_value) {
+ constant_value->set_precision((glsl_precision)type->qualifier.precision);
+ if (constant_value->type->is_array()) {
+ for (unsigned i = 0; i < constant_value->type->length; i++) {
+ constant_value->get_array_element(i)->set_precision((glsl_precision)type->qualifier.precision);
+ }
}
}
}