flat                float _flat;
noperspective       float _noperspective;
in                  float _in;
out                 float _out;
workgroup           float _workgroup;
$es3                float _es3;
$pure               float _pure;
inline              float _inline;
noinline            float _noinline;
readonly            float _readonly;
writeonly           float _writeonly;

flat                void flat_fn() {}
noperspective       void noperspective_fn() {}
in                  void in_fn() {}
out                 void out_fn() {}
workgroup           void workgroup_fn() {}
$es3                void es3_fn() {}
$pure               void sk_pure_fn() {}
readonly            void readonly_fn() {}
writeonly           void writeonly_fn() {}
buffer              void buffer_fn() {}

float4 main(float2 xy) {
    return float4(1);
}

/*%%*
'flat' is not permitted here
'noperspective' is not permitted here
'in' is not permitted here
'out' is not permitted here
'workgroup' is not permitted here
'$es3' is not permitted here
'$pure' is not permitted here
'inline' is not permitted here
'noinline' is not permitted here
type 'float' does not support qualifier 'readonly'
type 'float' does not support qualifier 'writeonly'
'flat' is not permitted here
'noperspective' is not permitted here
'in' is not permitted here
'out' is not permitted here
'workgroup' is not permitted here
'$es3' is not permitted here
'$pure' is not permitted here
type 'void' does not support qualifier 'readonly'
type 'void' does not support qualifier 'writeonly'
'buffer' is not permitted here
*%%*/
