Skip to content

seekable_format warning with -DNDEBUG: potential uninitialised local variable newOffset used #4756

Description

@RSpliet

Describe the bug
When seekable_format is compiled with -DNDEBUG (common for release builds), the assert inside the switch is eliminated. As a result the "unreachable" code from lines 190 onwards become reachable and the compiler correctly determines that in line 193 the variable is used uninitialised triggering a warning. Since compiling with DNDEBUG is a valid way to reduce run-time overhead in release environments, I suggest this use-of-uninitialised-variable should be mitigated without the use of assert(), perhaps by return -1; in the default case below the assert(0);

To Reproduce
Steps to reproduce the behavior:

  1. Compile seekable_format with -DNDEBUG.

Expected behavior
No warnings are expected during compilation of seekable format or linking of a static library file resulting from such compilation.

Compilation environment:

  • OS: Windows
  • Version 1.5.7, also head of MAIN
  • Compiler MSVC 19.29.30159.0
  • Flags /W4 /O2 /DNDEBUG
  • Build system CMake

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions