home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.c      Meh, in C you gotta define EVERYTHING      243,242 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 241,440 of 243,242   
   Keith Thompson to pozz   
   Re: bugprone-switch-missing-default-case   
   23 Oct 25 16:17:15   
   
   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)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca