GLSL: Add error check for an argument dropping the 'restrict' qualifier

This commit is contained in:
John Kessenich 2019-04-19 04:57:43 -06:00
parent 08d61df040
commit f6873f7e49
2 changed files with 4 additions and 1 deletions

View File

@ -29,6 +29,7 @@ ERROR: 0:94: 'writeonly' : argument cannot drop memory qualifier when passed to
ERROR: 0:97: '' : memory qualifiers cannot be used on this type
ERROR: 0:98: '' : memory qualifiers cannot be used on this type
ERROR: 0:109: 'format' : image formats must match
ERROR: 0:110: 'restrict' : argument cannot drop memory qualifier when passed to formal parameter
ERROR: 0:110: 'format' : image formats must match
ERROR: 0:111: 'format' : image formats must match
ERROR: 0:114: 'image load-store format' : not supported with this profile: es
@ -86,7 +87,7 @@ WARNING: 0:238: '#define' : names containing consecutive underscores are reserve
ERROR: 0:244: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group
ERROR: 0:245: 'gl_ViewIndex' : undeclared identifier
ERROR: 0:255: 'gl_ViewIndex' : undeclared identifier
ERROR: 85 compilation errors. No code generated.
ERROR: 86 compilation errors. No code generated.
Shader version: 310

View File

@ -1156,6 +1156,8 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction
error(arguments->getLoc(), message, "readonly", "");
if (argQualifier.writeonly && ! formalQualifier.writeonly)
error(arguments->getLoc(), message, "writeonly", "");
if (!builtIn && argQualifier.restrict && ! formalQualifier.restrict)
error(arguments->getLoc(), message, "restrict", "");
}
if (!builtIn && argQualifier.layoutFormat != formalQualifier.layoutFormat) {
// we have mismatched formats, which should only be allowed if writeonly