From: Keith.S.Thompson+u@gmail.com   
      
   pozz writes:   
   > Il 22/10/2025 21:41, Keith Thompson ha scritto:   
   [...]   
   >> That document is poorly written. The phrase "without any defined   
   >> behavior" strongly implies that the behavior is undefined, which is   
   >> simply wrong.   
   >> It says:   
   >> When a switch statement lacks a default case, if a value is   
   >> encountered that does not match any of the specified cases, the   
   >> program will continue execution without any defined behavior or   
   >> handling.   
   >> It would be more accurate to say:   
   >> When a switch statement lacks a default case, if a value is   
   >> encountered that does not match any of the specified cases, the   
   >> switch statement will do nothing and the program will continue   
   >> execution without handling the value.   
   >> A warning might be warranted, but the behavior is well defined.   
   >   
   > It is exactly what i wanted to read. Thanks for the explanation.   
   >   
   >   
   >> Note that the documentation is for the add-on tool clang-tidy, not for   
   >> the clang compiler.   
   >   
   > Sure   
   >   
   >   
   >> I've submitted a bug report :   
   >> https://github.com/llvm/llvm-project/issues/164699   
      
   My fix for this has been accepted into the llvm-project git repo.   
      
   The web page   
   https://clang.llvm.org/extra/clang-tidy/checks/bugprone/switch-m   
   ssing-default-case.html   
   has not yet been updated (not surprisingly).   
      
   commit b474be668091301d4a214da922f0cb98d416dc6b   
   Author: Keith Thompson    
   Date: 2025-10-23 02:41:12 -0700   
      
    [clang-tidy][NFC] Clarify switch-missing-default-case doc (#164699)   
   (#164709)   
      
    Falling through a defaultless switch statement has well defined   
    behavior. Fixes https://github.com/llvm/llvm-project/issues/164699.   
      
    Credit for noticing this problem goes to user "pozz" on comp.lang.c,   
    Message-ID: <10da67g$3q59f$1@dont-email.me>   
      
   diff --git clang-tools-extra/docs/clang-tidy/checks/bugprone/swi   
   ch-missing-default-case.rst clang-tools-extra/docs/clang-tidy/ch   
   cks/bugprone/switch-missing-default-case.rst   
   index 648c2c208a4e..3ce862ff8afc 100644   
   --- clang-tools-extra/docs/clang-tidy/checks/bugprone/switch-mis   
   ing-default-case.rst   
   +++ clang-tools-extra/docs/clang-tidy/checks/bugprone/switch-mis   
   ing-default-case.rst   
   @@ -9,8 +9,8 @@ on covering cases with non-enums where the compiler may not   
   issue warnings.   
    Switch statements without a default case can lead to unexpected   
    behavior and incomplete handling of all possible cases. When a switch   
   statement   
    lacks a default case, if a value is encountered that does not match any of the   
   -specified cases, the program will continue execution without any defined   
   -behavior or handling.   
   +specified cases, the switch statement will do nothing and the program will   
   +continue execution without handling the value.   
      
    This check helps identify switch statements that are missing a default case,   
    allowing developers to ensure that all possible cases are handled properly.   
      
   --   
   Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com   
   void Void(void) { Void(); } /* The recursive call of the void */   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|