diff --git a/Test/baseResults/310.comp.out b/Test/baseResults/310.comp.out index 4b65ea11..b4136b0a 100644 --- a/Test/baseResults/310.comp.out +++ b/Test/baseResults/310.comp.out @@ -29,7 +29,6 @@ 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 @@ -87,7 +86,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: 86 compilation errors. No code generated. +ERROR: 85 compilation errors. No code generated. Shader version: 310 diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 7b0f0660..8e570ae0 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1165,8 +1165,9 @@ 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", ""); + // Don't check 'restrict', it is different than the rest: + // "...but only restrict can be taken away from a calling argument, by a formal parameter that + // lacks the restrict qualifier..." } if (!builtIn && argQualifier.layoutFormat != formalQualifier.layoutFormat) { // we have mismatched formats, which should only be allowed if writeonly