/* { dg-do compile } */ /* { dg-additional-options "-funswitch-loops" } */ enum { MOD_WVG_MASK_TEX_USE_INT, MOD_WVG_MASK_TEX_USE_RED, MOD_WVG_MASK_TEX_USE_BLUE, MOD_WVG_MASK_TEX_USE_SAT, MOD_WVG_MASK_TEX_USE_VAL, MOD_WVG_MASK_TEX_USE_ALPHA } foo_num; float *foo_org_w; int *foo_new_w; float foo_fact; int foo_tex_use_channel, foo_i, foo_texres_0; void foo() { for (; foo_num;) switch (foo_tex_use_channel) { case MOD_WVG_MASK_TEX_USE_INT: foo_org_w[foo_i] = foo_new_w[foo_i] * foo_texres_0; break; case MOD_WVG_MASK_TEX_USE_RED: foo_org_w[foo_i] = 0; case MOD_WVG_MASK_TEX_USE_BLUE: foo_org_w[foo_i] = foo_fact + foo_org_w[foo_i]; break; case MOD_WVG_MASK_TEX_USE_SAT: foo_org_w[foo_i] = foo_fact; break; case MOD_WVG_MASK_TEX_USE_VAL: foo_org_w[foo_i] = 0; case MOD_WVG_MASK_TEX_USE_ALPHA: foo_org_w[foo_i] = foo_fact + foo_org_w[foo_i]; break; default: foo_org_w[foo_i] = foo_new_w[foo_i] * foo_texres_0; } }