case empty_condition version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { switch () { case 1: ${POSITION_FRAG_COLOR} = vec4(1.0); } ${OUTPUT} } "" end case condition_float version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { float c = 1.0; switch (c) { case 1: ${POSITION_FRAG_COLOR} = vec4(1.0); } ${OUTPUT} } "" end case condition_bool version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { bool c = true; switch (c) { case 1: ${POSITION_FRAG_COLOR} = vec4(1.0); } ${OUTPUT} } "" end case condition_ivec2 version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { ivec2 c = ivec2(1, 1); switch (c) { case 1: ${POSITION_FRAG_COLOR} = vec4(1.0); } ${OUTPUT} } "" end case condition_struct version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} struct S { int m; }; void main () { S c = S(1); switch (c) { case 1: ${POSITION_FRAG_COLOR} = vec4(1.0); } ${OUTPUT} } "" end case duplicate_label version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { int c = 1; switch (c) { case 1: case 1: break; } ${OUTPUT} } "" end case float_label version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { int c = 1; switch (c) { case 1.0: break; } ${OUTPUT} } "" end case non_const_int_label version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { int c = 1; int l = 2; switch (c) { case l: break; } ${OUTPUT} } "" end case statement_before_label version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { switch (1) { ${POSITION_FRAG_COLOR} = vec4(1.0); case 1: ${POSITION_FRAG_COLOR} = vec4(0.0); } ${OUTPUT} } "" end case statement_before_default_label version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { switch (1) { ${POSITION_FRAG_COLOR} = vec4(1.0); default: ${POSITION_FRAG_COLOR} = vec4(0.0); } ${OUTPUT} } "" end case no_statement_after_label version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { switch (1) { case 0: break; case 1: } ${OUTPUT} } "" end case no_statement_after_default_label version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { switch (1) { case 0: break; default: } ${OUTPUT} } "" end case case_in_if version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { float f = 1.0; switch (1) { case 0: f = 0.0; if (f > 0.0) { case 1: f *= 2.0; } break; case 2: break; } ${OUTPUT} } "" end case default_in_if version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { float f = 1.0; switch (1) { case 0: f = 0.0; if (f > 0.0) { default: f *= 2.0; } break; case 2: break; } ${OUTPUT} } "" end case case_in_for_loop version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { float f = 1.0; switch (1) { case 0: f = 0.0; for (int i = 0; i < 2; i++) { case 1: f *= 2.0; } break; case 2: break; } ${OUTPUT} } "" end case default_in_for_loop version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { float f = 1.0; switch (1) { case 0: f = 0.0; for (int i = 0; i < 2; i++) { default: f *= 2.0; } break; case 2: break; } ${OUTPUT} } "" end case case_in_while_loop version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { float f = 1.0; switch (1) { case 0: f = 0.0; while (f > 0.0) { case 1: f *= 2.0; } break; case 2: break; } ${OUTPUT} } "" end case default_in_while_loop version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { float f = 1.0; switch (1) { case 0: f = 0.0; while (f > 0.0) { default: f *= 2.0; } break; case 2: break; } ${OUTPUT} } "" end case case_in_do_while_loop version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { float f = 1.0; switch (1) { case 0: f = 0.0; do { case 1: f *= 2.0; } while (f > 0.0); break; case 2: break; } ${OUTPUT} } "" end case default_in_do_while_loop version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { float f = 1.0; switch (1) { case 0: f = 0.0; do { default: f *= 2.0; } while (f > 0.0); break; case 2: break; } ${OUTPUT} } "" end case missing_colon version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { switch (1) { case 1 ${POSITION_FRAG_COLOR} = vec4(1.0); } ${OUTPUT} } "" end case missing_opening_brace version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { switch (1) case 1: ${POSITION_FRAG_COLOR} = vec4(1.0); } ${OUTPUT} } "" end case missing_closing_brace version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { switch (1) { case 1: ${POSITION_FRAG_COLOR} = vec4(1.0); ${OUTPUT} } "" end case double_case version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { switch (1) { case case 1: ${POSITION_FRAG_COLOR} = vec4(1.0); } ${OUTPUT} } "" end case double_default_1 version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { switch (1) { default: break; default: ${POSITION_FRAG_COLOR} = vec4(1.0); } ${OUTPUT} } "" end case double_default_2 version 300 es expect compile_fail both "" #version 300 es precision mediump float; ${DECLARATIONS} void main () { switch (1) { default default: ${POSITION_FRAG_COLOR} = vec4(1.0); } ${OUTPUT} } "" end