<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xml:lang="en-US">
  <id>tag:github.com,2008:https://github.com/cppcheck-opensource/cppcheck/releases</id>
  <link type="text/html" rel="alternate" href="https://github.com/cppcheck-opensource/cppcheck/releases"/>
  <link type="application/atom+xml" rel="self" href="https://github.com/cppcheck-opensource/cppcheck/releases.atom"/>
  <title>Release notes from cppcheck</title>
  <updated>2026-06-20T16:49:32Z</updated>
  <entry>
    <id>tag:github.com,2008:Repository/143131/2.21.1</id>
    <updated>2026-06-20T16:49:32Z</updated>
    <link rel="alternate" type="text/html" href="https://github.com/cppcheck-opensource/cppcheck/releases/tag/2.21.1"/>
    <title>2.21.1</title>
    <content type="html">&lt;p&gt;2.21.1: set version&lt;/p&gt;</content>
    <author>
      <name>dmcppcheck</name>
    </author>
    <media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/319471273?s=60&amp;v=4"/>
  </entry>
  <entry>
    <id>tag:github.com,2008:Repository/143131/2.21.0</id>
    <updated>2026-06-04T11:36:29Z</updated>
    <link rel="alternate" type="text/html" href="https://github.com/cppcheck-opensource/cppcheck/releases/tag/2.21.0"/>
    <title>Cppcheck-2.21.0</title>
    <content type="html">&lt;p&gt;Release Notes for Cppcheck 2.21&lt;/p&gt;
&lt;p&gt;Major bug fixes &amp;amp; crashes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fixed potential crash with incomplete preprocessor directive&lt;/li&gt;
&lt;li&gt;Fixed hang in createAst&lt;/li&gt;
&lt;li&gt;Fixed invalid AST for braced initialization and references/pointers&lt;/li&gt;
&lt;li&gt;Fixed cppcheckError with array typedef&lt;/li&gt;
&lt;li&gt;Fixed recheck which now correctly excludes non selected files&lt;/li&gt;
&lt;li&gt;Fixed potential crash when rechecking files in gui&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;New checks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MISRA C 2012 rule 10.3 now warns on assigning integer literals 0 and 1 to bool in C99 and later while preserving the existing C89 behavior.&lt;/li&gt;
&lt;li&gt;funcArgNamesDifferentUnnamed warns on function declarations/definitions where a parameter in either location is unnamed&lt;/li&gt;
&lt;li&gt;uninitMemberVarNoCtor warns on user-defined types where (1) some but not all members requiring initialization have in-class initializers or (2) there is a mixture of members which do/do not require initialization.&lt;/li&gt;
&lt;li&gt;fcloseInLoopCondition warns when fclose() is used as a while loop condition, which may skip the loop body or double-close the file handle.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C/C++ support:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;import project: include path in compile_commands.json now handled correctly&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GUI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Removed handling of Cppcheck Premium LOC license&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make it possible to specify the regular expression engine using the &lt;code&gt;engine&lt;/code&gt; element in a rule XML.&lt;/li&gt;
&lt;li&gt;Added CLI option &lt;code&gt;--exitcode-suppress&lt;/code&gt; to specify an error ID which should not result in a non-zero exitcode.&lt;/li&gt;
&lt;li&gt;Moved source code from &lt;a href=&quot;https://github.com/danmar/cppcheck&quot;&gt;https://github.com/danmar/cppcheck&lt;/a&gt; to &lt;a href=&quot;https://github.com/cppcheck-opensource/cppcheck&quot;&gt;https://github.com/cppcheck-opensource/cppcheck&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The official Windows binary is now built with Visual Studio 2026.&lt;/li&gt;
&lt;li&gt;Updated simplecpp to 1.7.0.&lt;/li&gt;
&lt;/ul&gt;</content>
    <author>
      <name>danmar</name>
    </author>
    <media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/60195?s=60&amp;v=4"/>
  </entry>
  <entry>
    <id>tag:github.com,2008:Repository/143131/2.20.1</id>
    <updated>2026-03-26T14:47:34Z</updated>
    <link rel="alternate" type="text/html" href="https://github.com/cppcheck-opensource/cppcheck/releases/tag/2.20.1"/>
    <title>2.20.1</title>
    <content type="html">&lt;p&gt;Fix #14606: Crash in Gui (&lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;4088215003&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https://github.com/cppcheck-opensource/cppcheck/issues/8346&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;/cppcheck-opensource/cppcheck/pull/8346/hovercard&quot; href=&quot;https://github.com/cppcheck-opensource/cppcheck/pull/8346&quot;&gt;#8346&lt;/a&gt;)&lt;/p&gt;</content>
    <author>
      <name>olabetskyi</name>
    </author>
    <media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/153490942?s=60&amp;v=4"/>
  </entry>
  <entry>
    <id>tag:github.com,2008:Repository/143131/2.20.0</id>
    <updated>2026-03-02T17:43:14Z</updated>
    <link rel="alternate" type="text/html" href="https://github.com/cppcheck-opensource/cppcheck/releases/tag/2.20.0"/>
    <title>Cppcheck-2.20.0</title>
    <content type="html">&lt;p&gt;Release Notes for Cppcheck 2.20&lt;/p&gt;
&lt;p&gt;GUI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix: The Misra C checkbox in &quot;Edit Project&quot; dialog is unchecked after reloading project.&lt;/li&gt;
&lt;li&gt;Fix: In the Misra Report, use proper icons according to misra classifications&lt;/li&gt;
&lt;li&gt;Fix: The platform files are not shown in the dropdown in ProjectFileDialog&lt;/li&gt;
&lt;li&gt;Troubleshooting: detailed progress view that shows what files the threads are working on&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Changed interface:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;removed CMake option &quot;DISABLE_CRTDBG_MAP_ALLOC&quot;&lt;/li&gt;
&lt;li&gt;CMake option &quot;BUILD_TESTS&quot; has been deprecated and will be removed in Cppcheck 2.22 - use &quot;BUILD_TESTING&quot; instead&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The built-in &quot;win*&quot; and &quot;unix*&quot; platforms will now default to signed char type instead of unknown signedness. If you require unsigned chars please specify &quot;--funsigned-char&quot;&lt;/li&gt;
&lt;li&gt;bumped minimum required CMake version to 3.22&lt;/li&gt;
&lt;li&gt;Support inline polyspace suppressions&lt;/li&gt;
&lt;/ul&gt;</content>
    <author>
      <name>danmar</name>
    </author>
    <media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/60195?s=60&amp;v=4"/>
  </entry>
  <entry>
    <id>tag:github.com,2008:Repository/143131/2.19.1</id>
    <updated>2026-01-02T16:53:19Z</updated>
    <link rel="alternate" type="text/html" href="https://github.com/cppcheck-opensource/cppcheck/releases/tag/2.19.1"/>
    <title>2.19.1</title>
    <content type="html">&lt;p&gt;2.19.1: set version (&lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3776340414&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https://github.com/cppcheck-opensource/cppcheck/issues/8080&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;/cppcheck-opensource/cppcheck/pull/8080/hovercard&quot; href=&quot;https://github.com/cppcheck-opensource/cppcheck/pull/8080&quot;&gt;#8080&lt;/a&gt;)&lt;/p&gt;</content>
    <author>
      <name>danmar</name>
    </author>
    <media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/60195?s=60&amp;v=4"/>
  </entry>
  <entry>
    <id>tag:github.com,2008:Repository/143131/2.19.0</id>
    <updated>2025-12-21T18:08:44Z</updated>
    <link rel="alternate" type="text/html" href="https://github.com/cppcheck-opensource/cppcheck/releases/tag/2.19.0"/>
    <title>2.19.0</title>
    <content type="html">&lt;p&gt;Release Notes for Cppcheck 2.19&lt;/p&gt;
&lt;p&gt;Major bug fixes &amp;amp; crashes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crash in CheckClass::checkConst()&lt;/li&gt;
&lt;li&gt;fuzzing crash (assert) in Token::update_property_info()&lt;/li&gt;
&lt;li&gt;Crash in checkConstVariable()&lt;/li&gt;
&lt;li&gt;Crash in valueFlowLifetimeClassConstructor()&lt;/li&gt;
&lt;li&gt;GUI: scratch pad crash&lt;/li&gt;
&lt;li&gt;Assert failure in getParentValueTypes()&lt;/li&gt;
&lt;li&gt;Crash in simplecpp::Macro::expand()&lt;/li&gt;
&lt;li&gt;crash in Tokenizer::simplifyCPPAttribute()&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;New checks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Detect zero initialization of unions in which its largest member is not&lt;br&gt;
declared as the first one. Depending on the compiler, there&#39;s no guarantee&lt;br&gt;
that the complete union will be zero initialized in such scenarios leading to&lt;br&gt;
potential access of uninitialized memory.&lt;/li&gt;
&lt;li&gt;Added warning when main() throws an exception&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C/C++ support:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fixed syntax error for C++23 lambda without parameter clause&lt;/li&gt;
&lt;li&gt;Added support for typeof and __typeof operators&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GUI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix bug: checks multiple configurations even though user provides defines&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Changed interface:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;some &lt;code&gt;preprocessorErrorDirective&lt;/code&gt; and &lt;code&gt;syntaxError&lt;/code&gt; errors got more specific error IDs.&lt;/li&gt;
&lt;li&gt;Removed deprecated platforms unix32-unsigned and unix64-unsigned&lt;/li&gt;
&lt;li&gt;Improve progress value&lt;/li&gt;
&lt;li&gt;Added float bits support in platform configuration&lt;/li&gt;
&lt;li&gt;Fixed --showtime not accounting for addons&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Performance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Introduced cache for followAllReferences() calls&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Infrastructure &amp;amp; dependencies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Removed deprecated support for builds with Qt5.&lt;/li&gt;
&lt;li&gt;Added make variables &lt;code&gt;CXXOPTS&lt;/code&gt; and &lt;code&gt;LDOPTS&lt;/code&gt; to extend existing &lt;code&gt;CXXFLAGS&lt;/code&gt; and &lt;code&gt;LDFLAGS&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Added make variables &lt;code&gt;CPPOPTS&lt;/code&gt; to extend existing &lt;code&gt;CPPFLAGS&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CPPFLAGS&lt;/code&gt; are not longer being passed to the linker command for &lt;code&gt;cppcheck&lt;/code&gt; and &lt;code&gt;testrunner&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Updated Qt to 6.10.0 (official Windows release only).&lt;/li&gt;
&lt;li&gt;The official Windows binary is now built against Boost 1.89 for increased performance.&lt;/li&gt;
&lt;li&gt;Updated to simplecpp 1.6.2&lt;/li&gt;
&lt;li&gt;The Visual Studio builds not longer set the &lt;code&gt;WIN32&lt;/code&gt; define.&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;DISALLOW_PROCESS_EXECUTOR&lt;/code&gt; for building without fork().&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The changes focus heavily on stability (crash fixes), C/C++ compatibility, reducing false positives, and improving performance.&lt;/p&gt;</content>
    <author>
      <name>danmar</name>
    </author>
    <media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/60195?s=60&amp;v=4"/>
  </entry>
  <entry>
    <id>tag:github.com,2008:Repository/143131/2.18.3</id>
    <updated>2025-09-02T19:12:05Z</updated>
    <link rel="alternate" type="text/html" href="https://github.com/cppcheck-opensource/cppcheck/releases/tag/2.18.3"/>
    <title>2.18.3</title>
    <content type="html">&lt;p&gt;2.18.3: Set version&lt;/p&gt;</content>
    <author>
      <name>danmar</name>
    </author>
    <media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/60195?s=60&amp;v=4"/>
  </entry>
  <entry>
    <id>tag:github.com,2008:Repository/143131/2.18.2</id>
    <updated>2025-08-29T20:10:20Z</updated>
    <link rel="alternate" type="text/html" href="https://github.com/cppcheck-opensource/cppcheck/releases/tag/2.18.2"/>
    <title>2.18.2</title>
    <content type="html">&lt;p&gt;2.18.2: Set version&lt;/p&gt;</content>
    <author>
      <name>danmar</name>
    </author>
    <media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/60195?s=60&amp;v=4"/>
  </entry>
  <entry>
    <id>tag:github.com,2008:Repository/143131/2.18.1</id>
    <updated>2025-08-16T06:34:54Z</updated>
    <link rel="alternate" type="text/html" href="https://github.com/cppcheck-opensource/cppcheck/releases/tag/2.18.1"/>
    <title>2.18.1</title>
    <content type="html">&lt;p&gt;2.18.1: Set version&lt;/p&gt;</content>
    <author>
      <name>danmar</name>
    </author>
    <media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/60195?s=60&amp;v=4"/>
  </entry>
  <entry>
    <id>tag:github.com,2008:Repository/143131/2.18.0</id>
    <updated>2025-07-20T12:25:55Z</updated>
    <link rel="alternate" type="text/html" href="https://github.com/cppcheck-opensource/cppcheck/releases/tag/2.18.0"/>
    <title>Cppcheck-2.18.0</title>
    <content type="html">&lt;p&gt;Release Notes for Cppcheck 2.18&lt;/p&gt;
&lt;p&gt;Changed interface:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updated path matching syntax for -i, --file-filter, suppressions, GUI excludes, and project file excludes.&lt;br&gt;
Old patterns that use a &lt;code&gt;*&lt;/code&gt; may need to use &lt;code&gt;**&lt;/code&gt; instead if it is intended to match path separators. More details can be seen in the manual.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Deprecations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for building with Qt 5 will be removed in Cppcheck 2.19.&lt;/li&gt;
&lt;li&gt;The platform &#39;unix32-unsigned&#39; has been deprecated and will be removed in Cppcheck 2.19. Please use &#39;--platform=unix32 --funsigned-char&#39; instead.&lt;/li&gt;
&lt;li&gt;The platform &#39;unix64-unsigned&#39; has been deprecated and will be removed in Cppcheck 2.19. Please use &#39;--platform=unix64 --funsigned-char&#39; instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updated Qt to 6.9.1 (official Windows release only).&lt;/li&gt;
&lt;li&gt;added CMake target &lt;code&gt;run-clang-tidy-csa&lt;/code&gt; to run Clang Static Analyzer&lt;/li&gt;
&lt;li&gt;added CMake option &lt;code&gt;ENABLE_CSA_ALPHA&lt;/code&gt; to enable the Clang Static Analyzer alpha checkers&lt;/li&gt;
&lt;li&gt;Updated TinyXML-2 to v11.0.0&lt;/li&gt;
&lt;li&gt;The minimum supported Python version has been bumped to 3.7.&lt;/li&gt;
&lt;li&gt;CMake will now unconditionally use Boost.Containers if available. If CMake option &lt;code&gt;USE_BOOST&lt;/code&gt; is specified it will now bail out when it is not found.&lt;/li&gt;
&lt;li&gt;Fix checking a project that contains several project file entries for the same file.&lt;/li&gt;
&lt;li&gt;Fixed --file-filter matching of looked up files in provided paths.&lt;/li&gt;
&lt;li&gt;Split up cstyleCast checker; dangerous casts produce portability/warning reports, safe casts produce style reports.&lt;/li&gt;
&lt;li&gt;Removed deprecated &#39;--showtime=&#39; value &#39;top5&#39;. Please use &#39;top5_file&#39; or &#39;top5_summary&#39; instead.&lt;/li&gt;
&lt;/ul&gt;</content>
    <author>
      <name>danmar</name>
    </author>
    <media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/60195?s=60&amp;v=4"/>
  </entry>
</feed>
