Rename EvqConst to EvqConstExpr
In GLSL ES a variable declared const is a compile-time constant, and
thus a constant expression. Parameters declared const are read-only but
not compile-time constant.
Bug 19511934
Change-Id: I6d02062ca62c4185a3384b31a4d3ce8dfcc86b35
Reviewed-on: https://swiftshader-review.googlesource.com/2441
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/compiler/ParseHelper.cpp b/src/OpenGL/compiler/ParseHelper.cpp
index 62caea8..384bcb9 100644
--- a/src/OpenGL/compiler/ParseHelper.cpp
+++ b/src/OpenGL/compiler/ParseHelper.cpp
@@ -311,7 +311,7 @@
const char* message = 0;
switch (node->getQualifier()) {
- case EvqConst: message = "can't modify a const"; break;
+ case EvqConstExpr: message = "can't modify a const"; break;
case EvqConstReadOnly: message = "can't modify a const"; break;
case EvqAttribute: message = "can't modify an attribute"; break;
case EvqUniform: message = "can't modify a uniform"; break;
@@ -375,7 +375,7 @@
//
bool TParseContext::constErrorCheck(TIntermTyped* node)
{
- if (node->getQualifier() == EvqConst)
+ if (node->getQualifier() == EvqConstExpr)
return false;
error(node->getLine(), "constant expression required", "");
@@ -485,14 +485,14 @@
overFull = true;
if (op != EOpConstructStruct && !type->isArray() && size >= type->getObjectSize())
full = true;
- if (param.type->getQualifier() != EvqConst)
+ if (param.type->getQualifier() != EvqConstExpr)
constType = false;
if (param.type->isArray())
arrayArg = true;
}
if (constType)
- type->setQualifier(EvqConst);
+ type->setQualifier(EvqConstExpr);
if (type->isArray() && type->getArraySize() != function.getParamCount()) {
error(line, "array constructor needs one argument per array element", "constructor");
@@ -698,7 +698,7 @@
//
bool TParseContext::arrayQualifierErrorCheck(int line, TPublicType type)
{
- if ((type.qualifier == EvqAttribute) || (type.qualifier == EvqConst)) {
+ if ((type.qualifier == EvqAttribute) || (type.qualifier == EvqConstExpr)) {
error(line, "cannot declare arrays of this qualifier", TType(type).getCompleteString().c_str());
return true;
}
@@ -848,7 +848,7 @@
//
bool TParseContext::nonInitConstErrorCheck(int line, TString& identifier, TPublicType& type, bool array)
{
- if (type.qualifier == EvqConst)
+ if (type.qualifier == EvqConstExpr)
{
// Make the qualifier make sense.
type.qualifier = EvqTemporary;
@@ -900,16 +900,16 @@
bool TParseContext::paramErrorCheck(int line, TQualifier qualifier, TQualifier paramQualifier, TType* type)
{
- if (qualifier != EvqConst && qualifier != EvqTemporary) {
+ if (qualifier != EvqConstExpr && qualifier != EvqTemporary) {
error(line, "qualifier not allowed on function parameter", getQualifierString(qualifier));
return true;
}
- if (qualifier == EvqConst && paramQualifier != EvqIn) {
+ if (qualifier == EvqConstExpr && paramQualifier != EvqIn) {
error(line, "qualifier not allowed with ", getQualifierString(qualifier), getQualifierString(paramQualifier));
return true;
}
- if (qualifier == EvqConst)
+ if (qualifier == EvqConstExpr)
type->setQualifier(EvqConstReadOnly);
else
type->setQualifier(paramQualifier);
@@ -1024,7 +1024,7 @@
// identifier must be of type constant, a global, or a temporary
//
TQualifier qualifier = variable->getType().getQualifier();
- if ((qualifier != EvqTemporary) && (qualifier != EvqGlobal) && (qualifier != EvqConst)) {
+ if ((qualifier != EvqTemporary) && (qualifier != EvqGlobal) && (qualifier != EvqConstExpr)) {
error(line, " cannot initialize this type of qualifier ", variable->getType().getQualifierString());
return true;
}
@@ -1032,7 +1032,7 @@
// test for and propagate constant
//
- if (qualifier == EvqConst) {
+ if (qualifier == EvqConstExpr) {
if (qualifier != initializer->getType().getQualifier()) {
std::stringstream extraInfoStream;
extraInfoStream << "'" << variable->getType().getCompleteString() << "'";
@@ -1071,7 +1071,7 @@
}
}
- if (qualifier != EvqConst) {
+ if (qualifier != EvqConstExpr) {
TIntermSymbol* intermSymbol = intermediate.addSymbol(variable->getUniqueId(), variable->getName(), variable->getType(), line);
intermNode = intermediate.addAssign(EOpInitialize, intermSymbol, initializer, line);
if (intermNode == 0) {