[vtk-developers] coding standards & switch case label accidental	fallthrough
    Sean McBride 
    sean at rogue-research.com
       
    Tue Apr  7 12:36:18 EDT 2015
    
    
  
Hi all,
I'd like to propose a coding standards change...
I have a patch here:
<https://gitlab.kitware.com/vtk/vtk/merge_requests/59>
that fixes clang -Wimplicit-fallthrough warnings, which warn when you have adjacent case labels in a switch without breaks between them.  In other words, warns when you forget a 'break', which is pretty common, and often not deliberate.
For deliberate fall-though, it provides a clang-only C++11 attribute to suppress the warning, which I wrapped into a macro VTK_FALLTHROUGH.
So I propose that, by agreed convention, all deliberate switch case fall-through must use VTK_FALLTHOUGH annotations, ex:
 switch(var)
   {
   case 1:
     bar();
     break;
   case 2:
     baz();
     VTK_FALLTHROUGH;
   case 3:
     foo();
     break;
   }
Failure to use VTK_FALLTHROUGH above will cause warnings on C++11 clang builds.  On other compilers it's less helpful, but still nicely self-documenting.
Cheers,
-- 
____________________________________________________________
Sean McBride, B. Eng                 sean at rogue-research.com
Rogue Research                        www.rogue-research.com 
Mac Software Developer              Montréal, Québec, Canada
    
    
More information about the vtk-developers
mailing list