ANGLE AST Validation Bypass

Fuzz-derived GLSL ES reproducer — evidence of malformed shader output reaching GPU driver
Backend: detecting...
validateAST: --
Renderer: --
Shader source (262 byte reproducer)
#version 300 es
precision mediump float;
int u0mode; out vec4 fragOut;
void main(){
  vec4 c = vec4(0);
  for(int i=0;i<0;i++){ if(0==u0mode){break;} }
  switch(u0mode){ case 0: case 1: ; }
  switch(u0mode){
    case 0: break;
      vec4 c = vec4(0);
      for(int i=0;i<0;i++) fragOut.g=.0;
    default: c.a=.0;
  }
}
Running...
Translated source (live — from this browser via WEBGL_debug_shaders)
Launch Chrome with --enable-webgl-developer-extensions to populate
Standalone analysis — malformed output evidence (static — from offline ANGLE translator analysis)
HLSL output (D3D path):
switch (_u0mode) {
  case (0):
    break;
  default:
    (_c3006.w = 0.0);    // UNDECLARED — declaration was dropped
    break;
}

ESSL output:
switch (_uu0mode) {
  case (0):
    break;
  default:
    (_uc.w = 0.0);       // UNDECLARED — same corruption
}

GLSL 4.50 output:
switch (_uu0mode) {
  case (0):
    break;
  default:
    (_uc.w = 0.0);       // UNDECLARED — same corruption
}

In all cases ANGLE returns compilation success while emitting
code referencing variables (_c3006 / _uc) that are never declared.