Constant function parameters are not constant expressions.
Bug 19511934
Change-Id: I367a92ac0594d2bba91e26efe5c5af7dbe6f0d04
Reviewed-on: https://swiftshader-review.googlesource.com/2480
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/compiler/ParseHelper.cpp b/src/OpenGL/compiler/ParseHelper.cpp
index 384bcb9..63e5795 100644
--- a/src/OpenGL/compiler/ParseHelper.cpp
+++ b/src/OpenGL/compiler/ParseHelper.cpp
@@ -900,16 +900,16 @@
bool TParseContext::paramErrorCheck(int line, TQualifier qualifier, TQualifier paramQualifier, TType* type)
{
- if (qualifier != EvqConstExpr && qualifier != EvqTemporary) {
+ if (qualifier != EvqConstReadOnly && qualifier != EvqTemporary) {
error(line, "qualifier not allowed on function parameter", getQualifierString(qualifier));
return true;
}
- if (qualifier == EvqConstExpr && paramQualifier != EvqIn) {
+ if (qualifier == EvqConstReadOnly && paramQualifier != EvqIn) {
error(line, "qualifier not allowed with ", getQualifierString(qualifier), getQualifierString(paramQualifier));
return true;
}
- if (qualifier == EvqConstExpr)
+ if (qualifier == EvqConstReadOnly)
type->setQualifier(EvqConstReadOnly);
else
type->setQualifier(paramQualifier);
diff --git a/src/OpenGL/compiler/glslang.y b/src/OpenGL/compiler/glslang.y
index bd8e752..e4fe60d 100644
--- a/src/OpenGL/compiler/glslang.y
+++ b/src/OpenGL/compiler/glslang.y
@@ -1499,7 +1499,7 @@
parameter_type_qualifier
: CONST_QUAL {
- $$ = EvqConstExpr;
+ $$ = EvqConstReadOnly;
}
;
diff --git a/src/OpenGL/compiler/glslang_tab.cpp b/src/OpenGL/compiler/glslang_tab.cpp
index 6400be9..c79bf87 100644
--- a/src/OpenGL/compiler/glslang_tab.cpp
+++ b/src/OpenGL/compiler/glslang_tab.cpp
@@ -3689,7 +3689,7 @@
case 105:
{
- (yyval.interm.qualifier) = EvqConstExpr;
+ (yyval.interm.qualifier) = EvqConstReadOnly;
}
break;