Commit 5d507bc5 by Nicolas Capens Committed by Nicolas Capens

Only try folding constant array indexing if propagated.

The array folding logic generated an error when a constant array didn't have an array of literal constants. Change-Id: I48f58936cfa7e19e0f4026fb940654f20d9a9d5e Reviewed-on: https://swiftshader-review.googlesource.com/15551Tested-by: 's avatarNicolas Capens <nicolascapens@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent 9c010dd6
......@@ -2474,7 +2474,7 @@ TIntermTyped *TParseContext::addIndexExpression(TIntermTyped *baseExpression, co
TIntermConstantUnion *indexConstantUnion = indexExpression->getAsConstantUnion();
if(indexExpression->getQualifier() == EvqConstExpr && indexConstantUnion)
if(indexExpression->getQualifier() == EvqConstExpr && indexConstantUnion) // TODO: Qualifier check redundant?
{
int index = indexConstantUnion->getIConst(0);
if(index < 0)
......@@ -2486,7 +2486,7 @@ TIntermTyped *TParseContext::addIndexExpression(TIntermTyped *baseExpression, co
recover();
index = 0;
}
if(baseExpression->getType().getQualifier() == EvqConstExpr)
if(baseExpression->getType().getQualifier() == EvqConstExpr && baseExpression->getAsConstantUnion()) // TODO: Qualifier check redundant?
{
if(baseExpression->isArray())
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment