int f (int x) { int ret = 0; switch (x) { case 1: ret++; /* Fall through. */ /* Important comment about case 0. */ case 0: ret++; } return ret; } Noticed when building binutils with current master gcc.
This should be fixed by the first patch in http://gcc.gnu.org/ml/gcc-patches/2016-09/msg02426.html but it hasn't been reviewed.
Sorry, I opened the bug before I saw your patch. My email queue is getting too large..