Fix issues with computing discontinuous loops
Fix issues with computing discontinuous loops

AST analysis to narrow down usage of [[loop]] and [[unroll]] failed to account
for break statements inside switch statements. Add switch statement handling.
This fixes asserts/crashes in dEQP tests.

BUG=angleproject:937
TEST=dEQP-GLES3.functional.shaders.switch.*

Change-Id: I04fdfe4733772a2a234934123bbfacf0376df562
Reviewed-on: https://chromium-review.googlesource.com/265191
Tested-by: Olli Etuaho <38ae6c0e2772a20e8e989f80cb8c99d274e44242@nvidia.com>
Reviewed-by: Geoff Lang <b6fc25fe0362055230985c05cbfa8adb741ccc0f@chromium.org>

ppy/angle,vvuk/angle,larsbergstrom/angle,mikolalysenko/angle,larsbergstrom/angle,mybios/angle,ppy/angle,mlfarrell/angle,ecoal95/angle,csa7mdm/angle,bsergean/angle,mlfarrell/angle,domokit/waterfall,mlfarrell/angle,ppy/angle,bsergean/angle,mikolalysenko/angle,domokit/waterfall,MSOpenTech/angle,csa7mdm/angle,ecoal95/angle,ghostoy/angle,bsergean/angle,ecoal95/angle,mrobinson/rust-angle,ghostoy/angle,vvuk/angle,larsbergstrom/angle,bsergean/angle,mybios/angle,crezefire/angle,ghostoy/angle,ghostoy/angle,mrobinson/rust-angle,MSOpenTech/angle,vvuk/angle,mrobinson/rust-angle,mrobinson/rust-angle,mikolalysenko/angle,larsbergstrom/angle,mikolalysenko/angle,mybios/angle,ecoal95/angle,crezefire/angle,mrobinson/rust-angle,mybios/angle,mlfarrell/angle,vvuk/angle,MSOpenTech/angle,crezefire/angle,csa7mdm/angle,ppy/angle,crezefire/angle,ecoal95/angle,csa7mdm/angle,MSOpenTech/angle