Built-in values declared as specialization constant

Support declaring built-in values as spec constants.

Refine the code in createSpvConstant().
This commit is contained in:
qining 2016-04-03 23:55:17 -04:00
parent a42533eca1
commit 4f4bb81cd9
4 changed files with 140 additions and 110 deletions

View file

@ -5713,6 +5713,10 @@ void TParseContext::addQualifierToExisting(const TSourceLoc& loc, TQualifier qua
error(loc, "cannot change qualification after use", "invariant", "");
symbol->getWritableType().getQualifier().invariant = true;
invariantCheck(loc, symbol->getType().getQualifier());
} else if (qualifier.specConstant) {
symbol->getWritableType().getQualifier().makeSpecConstant();
if (qualifier.hasSpecConstantId())
symbol->getWritableType().getQualifier().layoutSpecConstantId = qualifier.layoutSpecConstantId;
} else
warn(loc, "unknown requalification", "", "");
}