Fix clang -Wimplicit-fallthrough warnings across llvm, NFC

Authored by rnk on Nov 1 2018, 12:54 PM.


Fix clang -Wimplicit-fallthrough warnings across llvm, NFC

This patch should not introduce any behavior changes. It consists of
mostly one of two changes:

  1. Replacing fall through comments with the LLVM_FALLTHROUGH macro
  2. Inserting 'break' before falling through into a case block consisting of only 'break'.

We were already using this warning with GCC, but its warning behaves
slightly differently. In this patch, the following differences are

  1. GCC recognizes comments that say "fall through" as annotations, clang doesn't
  2. GCC doesn't warn on "case N: foo(); default: break;", clang does
  3. GCC doesn't warn when the case contains a switch, but falls through the outer case.

I will enable the warning separately in a follow-up patch so that it can
be cleanly reverted if necessary.

Reviewers: alexfh, rsmith, lattner, rtrieu, EricWF, bollu

Differential Revision: https://reviews.llvm.org/D53950

llvm-svn: 345882