layout(set=0, binding=0) threadgroup float x;

layout(set=0, binding=1) threadgroup buffer myBuffer {
   float foo;
};

layout(set=0, binding=2) buffer myOtherBuffer {
   threadgroup float bar;
};

threadgroup texture2D tex;

threadgroup void a() {}

void b(threadgroup int b) {}

void c() {
    threadgroup bool x;
}

/*%%*
'threadgroup' is not permitted here
'threadgroup' is not permitted here
'threadgroup' is not permitted here
'threadgroup' is not permitted here
expected expression, but found 'threadgroup'
*%%*/
