We have been interchanging spv and SPIRV_Cross_ for a while, which causes weirdness since we don't explicitly ban SPIRV_Cross identifiers, as these identifiers are generally used for interface variable workarounds.
do/while loops are not guaranteed to be supported in ESSL 1.0 / OpenGLES 2.0 implementations.