What's new in Klocwork 2022.4

Here are the highlights for Klocwork 2022.4. If you're upgrading, also see the Limitations for items that affect how you use Klocwork.

C/C++

In this release we

  • enhanced defect suppression by improving how Klocwork handles relative paths

  • added support for several MISRA rules

C#

We added full support for version 7.3 of the C# language specification.

We also modified the way we calculate the cyclomatic complexity metric. For exceptions, the metric now counts catch statements instead of try statements.

Java

In this release we added support for Java 14, including fully supporting the Java 14 API for analysis and detecting AST-related defects.

We also made significant additions to the Java DISA STIG v5 taxonomy that is a significant increase in coverage of the standard.

Android 13

Android 13 is fully supported by Klocwork for both C/C++ and Java analysis, including ongoing improvements to Java analysis on Android.

Kotlin

We now support Gradle’s Kotlin DSL format. This provides an alternative syntax to the traditional Groovy DSL with an enhanced editing experience in supported IDEs.

Customizable links in the portal

You now can add custom links that appear on the right hand side of the portal, under the Technical Library, Support, or Resources headings. For more information, see Adding custom links to Validate.

IDE plugin support

We improved support for IDE plugins, including adding support for several new versions of CLion and IntelliJ IDEA.

Manage Helix QAC rule configuration files

If you want to manage the Helix rule configuration file (RCF) for a project, you can now import the configuration into Validate. For more information, see Importing your Helix QAC rule configuration file.

Coding standards

This release includes new and expanded standards coverage for the following coding standards:

  • CERT C
  • CWE
  • DISA STIG for Java
  • MISRA
  • OWASP

Klocwork checker improvements

From release to release, we improve issue detection to bring state-of-the-art capabilities to our customers. As a result, expect your analysis results to change as accuracy and coverage improve.

New Klocwork checkers

Checker Description
MISRA.LANG.EXTENSIONS This MISRA checker provides support for MISRA C 2012 Rule 1.2.
MISRA.PTR.SUB This MISRA checker provides support for MISRA C 2012 Rule 18.2, MISRA C++:2008 Rule 5-0-17, and MISRA C:2004 Rule Rule 17.2.
MISRA.PTR.SUB.OBJECT This MISRA checker provides support for MISRA C 2012 Rule 18.2, MISRA C++:2008 Rule 5-0-17, and MISRA C:2004 Rule Rule 17.2.

Modified Klocwork checkers

Checker Description
AUTOSAR.DECL.NONTYPE_SPECIFIER Reduced false positives
CERT.DCL.REF_TYPE.CONST_OR_VOLATILE Reduced false positives
DBZ.GENERAL Reduced false positives
DBZ.ITERATOR Overall improvements to the checker
DBZ.ITERATOR.CALL Overall improvements to the checker
JS.TS.NO.UNNECESSARY.CONDITION Overall improvements to the checker
JS.TS.STRICT.BOOLEAN.EXPRESSIONS Overall improvements to the checker
MISRA.FOR.COND.PURE Overall improvements to the checker
MISRA.FUNC.UNMATCHED.PARAMS Reduced false positives
MISRA.INCGUARD Reduced false positives
MISRA.MEMB.NON_STATIC Reduced false positives and new defects detected
STRONG.TYPE.ASSIGN.CONST New defects detected
UNINIT.STACK.MUST Reduced false positives

Enabled or disabled checkers

No checkers were added to the default enabled field of the checker configuration files for this release.

Taxonomy improvements

As part of our installation, we offer several custom taxonomy files that map our checkers to standards such as MISRA, CWE, OWASP, and DISA STIG.

Taxonomy New/updated

cert_c_all.tconf and cert_c_all_ja.tconf

cert_c_rules.tconf and cert_c_rules_ja.tconf

Added or modified checker mappings to the following rules:

  • CERT ENV33-C

  • CERT EXP36-C

cwe_2021_top_25_java.tconf and cwe_2021_top_25_java_ja.tconf

Added or modified checker mappings to the following weaknesses:

  • CWE-89

cwe_all_cxx.tconf and cwe_all_cxx_ja.tconf

Added or modified checker mappings to the following weaknesses:

  • CWE-416

  • CWE-562

  • CWE-783

disa_stig_v5_cs.tconf and disa_stig_v5_cs_ja.tconf

Modified checker mappings to the following IDs:

  • V-222606 (APSC-DV-002530)

  • V-222607 (APSC-DV-002540)

  • V-222609 (APSC-DV-002560)

  • V-222612 (APSC-DV-002590)

disa_stig_v5_java.tconf and disa_stig_v5_java_ja.tconf

Modified checker mappings to the following IDs:

  • V-222396 (APSC-DV-000160)

  • V-222397 (APSC-DV-000170)

  • V-222425 (APSC-DV-000460)

  • V-222430 (APSC-DV-000510)

  • V-222515 (APSC-DV-001460)

  • V-222522 (APSC-DV-001540)

  • V-222536 (APSC-DV-001680),

  • V-222542 (APSC-DV-001740)

  • V-222543 (APSC-DV-001750)

  • V-222551 (APSC-DV-001820)

  • V-222554 (APSC-DV-001850)

  • V-222555 (APSC-DV-001860)

  • V-222569 (APSC-DV-002010)

  • V-222571 (APSC-DV-002030)

  • V-222572 (APSC-DV-002040)

  • V-222577 (APSC-DV-002230)

  • V-222585 (APSC-DV-002310)

  • V-222589 (APSC-DV-002350)

  • V-222596 (APSC-DV-002500)

  • V-222602 (APSC-DV-002490)

  • V-222604 (APSC-DV-002510)

  • V-222606 (APSC-DV-002530)

  • V-222608 (APSC-DV-002490)

  • V-222609 (APSC-DV-002560)

  • V-222612 (APSC-DV-002590)

  • V-222641 (APSC-DV-003100)

  • V-222642 (APSC-DV-003110)

Helix QAC taxonomies The Helix QAC taxonomies have been updated to Helix QAC version 2022.4.
jsf_av_rev_c_cpp.tconf and jsf_av_rev_c_cpp_ja.tconf

Modified checker mappings to the following rules:

  • Rule 001

  • Rule 003

  • Rule 110

misra_c_2004_certified.tconf and misra_c_2004_certified_ja.tconf

Added or modified checker mappings to the following rules:

  • 17.2

  • 17.3

misra_c_2012_c90_all_checkers.tconf and misra_c_2012_c90_all_checkers_ja.tconf

misra_c_2012_c90_certified.tconf and misra_c_2012_c90_certified_ja.tconf

misra_c_2012_c99_all_checkers.tconf and misra_c_2012_c99_all_checkers_ja.tconf

misra_c_2012_c99_certified.tconf and misra_c_2012_c99_certified_ja.tconf

misra_c_2012_with_amd1_c90_all_checkers.tconf and misra_c_2012_with_amd1_c90_all_checkers_ja.tconf

misra_c_2012_with_amd1_c90_certified and misra_c_2012_with_amd1_c90_certified_ja.tconf

misra_c_2012_with_amd1_c99_all_checkers.tconf and misra_c_2012_with_amd1_c99_all_checkers_ja.tconf

misra_c_2012_with_amd1_c99_certified.tconf and misra_c_2012_with_amd1_c99_certified_ja.tconf

misra_c_2012_with_amd2_c11_all_checkers.tconf and misra_c_2012_with_amd2_c11_all_checkers_ja.tconf

misra_c_2012_with_amd2_c11_certified.tconf and misra_c_2012_with_amd2_c11_certified_ja.tconf

Added or modified checker mappings to the following rules:

  • 1.2

  • 18.2

  • 18.3

misra_c_2012_with_amd2_c90_all_checkers.tconf and misra_c_2012_with_amd2_c90_all_checkers_ja.tconf

misra_c_2012_with_amd2_c90_certified and misra_c_2012_with_amd2_c90_certified_ja.tconf

misra_c_2012_with_amd2_c99_all_checkers.tconf and misra_c_2012_with_amd2_c99_all_checkers_ja.tconf

misra_c_2012_with_amd2_c99_certified.tconf and misra_c_2012_with_amd2_c99_certified_ja.tconf

New taxonomies related to MISRA C 2012 with Amendment 2.
misra_cpp_2008_certified.tconf and misra_cpp_2008_certified_ja.tconf

Added or modified checker mappings to the following rules:

  • 5-0-17

owasp_2013_10_java.tconf and owasp_2013_10_java_ja.tconf

Added or modified checker mappings to the following IDs:

  • A1

  • A6

  • A8

Improvements to supported compilers

We've added or improved support for the following compilers:

  • Clang
  • Compiler caching tools
  • Lapis Technology CCU8

  • GNU
  • Tasking Tricore

For the full list of supported C/C++ compilers, see C/C++ compilers supported for build integration.

Licensing

Klocwork now supports Reprise License Manager (RLM). FLEXlm/FlexNet Publisher support is deprecated, but will continue to work until the release of Klocwork 2023.1. You can continue to use your existing FLEX license files for the remainder of the Klocwork 2022 releases. If you need new license files, please contact license@perforce.com.

2021 licenses are not compatible with Klocwork 2022.4. You need a new license to use the latest version of the product. Contact license@perforce.com to obtain a new license.

Changes to system requirements

In this release, we've added support for

  • Windows 10 version 22H2

  • Debian 10.13, 11.5
  • Red Hat Enterprise Linux 8.7
  • Oracle Linux 8.6
  • Amazon Linux 2 (2.0.20221004.0 Update)

  • Fedora 37

  • Leap 15.4

  • SUSE Enterprise 12 SP4 to SP5

  • Eclipse 2022-09 (4.25)

  • Android Studio Dolphin (2021.3.1)

  • Visual Studio 2017 15.9.51

  • Visual Studio 2019 16.11.21

  • Visual Studio 2022 17.3.4

  • Visual Studio Code 1.63.2 (up to 1.73.1)

  • IntelliJ IDEA 2022.1 (up to 2022.1.4), 2022.2 (up to 2022.2.3)

  • CLion 2021.2 (up to 2021.2.4), 2021.3 (up to 2021.3.4), 2022.1 (up to 2022.1.3), 2022.2 (up to 2022.2.4)

  • Microsoft Edge 107.x

  • Firefox 107.x, 102.x ESR

  • Chrome 97.x to 107.x

  • Jenkins 2.378

In this release, we've ended support for

  • Windows 8.1

  • Debian 9.x

  • Fedora 35

  • Leap 15.3

  • SUSE Enterprise 12 SP3

  • Visual Studio 2012

  • Visual Studio 2013

  • Visual Studio Code 1.49.3 to 1.63.1

  • CLion 2019.2

  • Microsoft Edge 93.x to 96.x

  • Firefox 92.x to 95.x

  • Chrome 93.x to 95.x

For the complete list of supported versions, see System Requirements.

Maintenance for Klocwork 2020 ended

Maintenance for all versions of Klocwork 2020 ended March 31, 2022. The end of maintenance (EOM) date and end of sale (EOS) date was also March 31, 2022. For information about the availability of support for any release of Klocwork, see the Klocwork Product Lifecycle.

Pre-announcements

Take note of the following changes we have planned for upcoming releases.

Path API version upgrade in Klocwork 2023.1

After Klocwork 2023.1 is released, we recommend you review your custom checkers for potential race conditions and recompile by using the 2023.1 Klocwork Path API headers and library. Old custom checkers that are not recompiled will continue to work, but will not be able to use the parallelization feature improvements.

End of Life notice for FLEXlm/FlexNet Publisher as of Klocwork 2023.1

This is a six-month notice for the End-Of-Life and support for FLEXlm/FlexNet Publisher license files.

Klocwork is changing its license management tool by moving from FLEXlm/FlexNet Publisher to Reprise License Manager (RLM) as of Klocwork 2023.1.

New product license files will be generated for Reprise, and if you require a FLEX license file for older Klocwork versions we will provide this for you.

End of Life notice for macOS as of Klocwork 2023.1

Beginning with Klocwork 2023.1, the following operating systems and installers will not be supported:

  • macOS