[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 307218. nickdesaulniers added a comment. - git-clang-format HEAD~ Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91895/new/ https://reviews.llvm.org/D91895 Files: clang/lib/Sema/AnalysisBasedWarnings.

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 307217. nickdesaulniers added a comment. - rewrite to handle a few more cases from the Linux kernel Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91895/new/ https://reviews.llvm.org/D91895 Files: cla

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. And for `drivers/hid/usbhid/hid-core.c` it looks like multiple labels are modeled as individual blocks in the control flow graph. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91895/new/ https://reviews.llvm.org/D9

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Testing this on the kernel with `-Wimplicit-fallthrough`, there's some additional cases that are still warning: // mm/vmscan.c 1371 mapping = page_mapping(page);

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 306787. nickdesaulniers added a comment. - check the successor's terminator Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91895/new/ https://reviews.llvm.org/D91895 Files: clang/lib/Sema/AnalysisBase

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/Sema/AnalysisBasedWarnings.cpp:1156 + const CFGBlock::AdjacentBlock &Succ = *P->succ_begin(); + const Stmt *Term = B.getTerminatorStmt(); + if (Succ->size() == 0 && Term && isa(Term))

[PATCH] D91895: [Clang] avoid -Wimplicit-fallthrough for fallthrough to break

2020-11-20 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. nickdesaulniers added reviewers: rsmith, aaron.ballman. Herald added a project: clang. Herald added a subscriber: cfe-commits. nickdesaulniers requested review of this revision. Clang differs slightly than GCC for the pattern: switch (x) { case 0: ++x