From 455429794c9d766b106e2d5230ea22f87dfcd585 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 26 Nov 2010 12:37:05 +0100 Subject: [PATCH] Propagate the ExprResult::isConstant attribute. --- src/libs/glsl/glslsemantic.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libs/glsl/glslsemantic.cpp b/src/libs/glsl/glslsemantic.cpp index 1c6cf67a7f2..177c547de7d 100644 --- a/src/libs/glsl/glslsemantic.cpp +++ b/src/libs/glsl/glslsemantic.cpp @@ -179,12 +179,14 @@ bool Semantic::visit(BinaryExpressionAST *ast) { ExprResult left = expression(ast->left); ExprResult right = expression(ast->right); + _expr.isConstant = left.isConstant && right.isConstant; return false; } bool Semantic::visit(UnaryExpressionAST *ast) { ExprResult expr = expression(ast->expr); + _expr.isConstant = expr.isConstant; return false; } @@ -193,6 +195,7 @@ bool Semantic::visit(TernaryExpressionAST *ast) ExprResult first = expression(ast->first); ExprResult second = expression(ast->second); ExprResult third = expression(ast->third); + _expr.isConstant = first.isConstant && second.isConstant && third.isConstant; return false; }