Hello! I'm slowly enabling -Wimplicit-fallthrough on projects in the Mac / iOS ports. <http://trac.webkit.org/changeset/162793> <http://clang.llvm.org/docs/LanguageExtensions.html#the-clang-fallthrough-attribute>
This means that if you write any switch statements with implicit fallthroughs it will produce build errors in projects with the warning enabled. If you're writing a switch with a fallthrough, use the "FALLTHROUGH;" annotation (which expands to [[clang::fallthrough]];) to appease the warning. The intent of this warning is to catch at compile time any accidental switch fallthroughs, and therefore explicitly annotate everywhere a fallthrough was intended. Thanks, - JoePeck -- For example. Here is a switch with an implicit fallthrough but no compiler recognized annotation: switch (input) { case 1: output -= 5; // fallthrough default: output += 5; } When the warning is enabled you will see a build error like: main.cpp:9:5: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] default: ^ main.cpp:9:5: note: insert 'FALLTHROUGH;' to silence this warning default: ^ FALLTHROUGH; main.cpp:9:5: note: insert 'break;' to avoid fall-through default: ^ break; Use "FALLTHROUGH;" to annotate the fallthrough and build without errors: switch (input) { case 1: output -= 5; FALLTHROUGH; default: output += 5; }
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev