On Fri, Aug 01, 2025 at 11:39:34AM -0500, Robert Dubner wrote:
> --- a/gcc/cobol/genutil.cc
> +++ b/gcc/cobol/genutil.cc
> @@ -27,6 +27,9 @@
>   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
>   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>   */
> +
> +// cppcheck-suppress-file duplicateBreak
> +
>  #include "cobol-system.h"
>  #include "coretypes.h"
>  #include "tree.h"
> @@ -1267,7 +1270,7 @@ get_binary_value( tree value,
>                              cbl_field_type_str(field->type) );
>        cbl_internal_error("%s", err);
>        abort();
> -      // break; // break not needed after abort();
> +      break;

Why?  Just drop the break.  break isn't needed at the end of a switch
anyway.  And abort is noreturn.

> @@ -500,13 +502,13 @@ symbol_elem_cmp( const void *K, const void *E )
>        }
>        return strcasecmp(key.name, elem.name);
>      }
> -    // break; // This break not needed if all options do a return.
> +    break;
>    case SymSpecial:
>      return special_pair_cmp(k->elem.special, e->elem.special)? 0 : 1;
> -    // break; // This break not needed after return.
> +    break;
>    case SymAlphabet:
>      return strcasecmp(k->elem.alphabet.name, e->elem.alphabet.name);
> -    // break; // This break not needed after return.
> +    break;
>    case SymFile:
>      // If the key is global, so must be the found element.
>      if( (cbl_file_of(k)->attr & global_e) == global_e &&
> @@ -514,7 +516,7 @@ symbol_elem_cmp( const void *K, const void *E )
>        return 1;
>      }
>      return strcasecmp(k->elem.file.name, e->elem.file.name);
> -    // break; // This break not needed after return.
> +    break;
>    }

Similarly for all of these, break after return is just unneeded extra
clutter, plus we have the -Wimplicit-fallthrough warning on, so if one
case would for whatever reason fall through into another one without magic
comment or [[fallthrough]]; attribute etc., we'd get warnings on it.

        Jakub

Reply via email to