Can uniform blocks get removed by GLSL compiler?

Hello,

is it legal for the GLSL compiler to optimze away a whole uniform block (layout std140 !) given that _no_ uniform from it is used? I know, that the layout itself is well defined by the specs and a single uniform in it can not get 'optimized away' (that's what layout packed is for). However, if none of the uniforms are used / no uniform is active, can the uniform block become inactive?

This seems to happen on MacOS X, but on the other hand, the uniform buffer implementation there (and OpenGL/GLSL in general) is quite buggy (I filed 2 bugreports today alone..) so I woudn't be surprised if that behavior is not ok. But couldn't find a definitive clue in the specs.