For the latest information on PC-lint Plus, please refer to the news page on our website.
PC-lint Plus 2025 includes several new featues and numerous improvements including:
Support for the MISRA C:2023 and MISRA C:2025 coding guidelines.
Introductory support for the MISRA C++:2023 coding guidelines.
Significantly improved support for AUTOSAR C++ coding guidelines.
A new Diagnostic Accounting feature.
The new Unused Suppressions facility may be used to detect unused suppression options.
The new View graphical extension for managing and interacting with analysis results.
Over 100 improvements and bug fixes.
| PCLP-5001 | |
| PCLP-4593 | |
| PCLP-5021 | |
| PCLP-5190 | |
| Added support for function attributes warn_unused_result and nodiscard |
|
| New message 9140 supports AUTOSAR M6-6-3 |
|
| New message for use of delete on void pointers |
|
| Add new message 2721 and 9223 to support MISRA C 2012 AMD-1 Rule
21.19 |
|
| New message 9197 supports MISRA C 2012 Rule 14.2 |
|
| Reintroduced message 962 from PC-lint 9 |
|
| Parallel builds with imposter are now supported |
|
| Template classes, functions, and variables can be deprecated |
|
| Added support for MISRA C 2012 Rule 12.4 |
|
| New message 3980 supports MISRA C++ 7-5-3 |
|
| New message 9189 helps support AUTOSAR A7-1-7 |
|
| Add new message 1950 to support AUTOSAR Rule A12-1-5 |
|
| New message 9241 supports AUTOSAR19 A5-2-6 |
|
| Add new message 2506 to support AUTOSAR Rule A21-8-1 and CERT C
Rule STR37-C |
|
| New message 9453 supports AUTOSAR A8-5-2 |
|
| Add new message 2469 to support AUTOSAR M3-2-4 |
|
| Add new messages 2507 to support MISRA C Rule 19.1 |
|
| New fuv flag option |
|
| Diagnostic Accounting Feature |
|
| New message 3708 and 9508 support AUTOSAR Rule A3-3-2 |
|
| New messages 9191 and 9192 supports AUTOSAR A6-5-2 |
|
| New message 9193 supports AUTOSAR M6-5-4 |
|
| New messages 9194 and 9195 supports AUTOSAR M6-5-5 |
|
| New message 9196 supports AUTOSAR M6-5-6 |
|
| Add new message 1803 to support AUTOSAR Rule A7-1-2 |
|
| New message 1955 supports AUTOSAR Rule A7-1-5 |
|
| Add new message 3717 to support AUTOSAR19 Rule A7-3-1 |
|
| Add new messages 9220 and 9221 to support MISRA C++ 2008 Rule 7-4-3 |
|
| New message 3780 supports AUTOSAR A7-5-1 |
|
| Add new message 9206 to support AUTOSAR Rule A8-2-1 |
|
| New message 3910 supports AUTOSAR19 A8-4-5 |
|
| New messages 3715 and 3716 supports AUTOSAR19 A8-4-6 |
|
| Add message 3915 to support AUTOSAR19 Rules A8-4-4 and A8-4-8 |
|
| New message 9249 supports AUTOSAR M10-2-1 |
|
| New messages 9242, 9243, 9244, 9245, and 9246 support AUTOSAR
A11-0-2 |
|
| New messages 3513, 3713, and 3913 supports AUTOSAR A12-0-1 |
|
| Add new message 1947 to support AUTOSAR Rule A12-1-2 |
|
| Add new message 1801 to support AUTOSAR Rule A12-4-1 |
|
| Add new message 1424 to support AUTOSAR Rule A12-8-3 |
|
| Add new message 1957 to support AUTOSAR Rule A12-8-6 |
|
| New message 3714 and 9514 supports AUTOSAR A13-1-2 |
|
| Add new messages 9266 and 9267 to support AUTOSAR Rule A13-1-3 |
|
| Add new message 9239 to support AUTOSAR Rule A13-5-4 |
|
| New messages 1804 and 1805 support AUTOSAR19 A14-5-1 |
|
| Add new message 9248 to support AUTOSAR Rule A14-5-3 and MISRA
C++ Rule 14-5-1 |
|
| Add new message 9250 to support AUTOSAR Rule M14-6-1 |
|
| Add new messages 9302 and 9303 to support AUTOSAR Rule A15-1-3 |
|
| New message 3712 and 3912 supports AUTOSAR A15-2-1 |
|
| New message 3433 supports AUTOSAR M15-3-3 |
|
| New message 3548 supports AUTOSAR A15-4-3 |
|
| Added support for AUTOSAR Rule A15-5-1 with new message 9470 Support for AUTOSAR Rule A15-5-1 is now provided. |
|
| New message 3904 supports AUTOSAR A18-5-4 |
|
| Add new messages 3435 and 3436 and enable 3047 to support
AUTOSAR19 Rule A18-5-9 |
|
| Add new messages 3709 and 3710 to support AUTOSAR19 Rule A18-5-11 |
|
| New message 3711 supports AUTOSAR 18-9-3 |
|
| New message 3905 supports AUTOSAR A18-9-4 |
|
| New message 2840 supports AUTOSAR M6-5-2 |
|
| New message 9188 adds support for MISRA C 2012 AMD-3 Rule 18.9 |
|
| New message 3537 supports AUTOSAR M9-3-1 |
|
| Add new message 9222 to support MISRA C 2012 AMD 4 Rule 7.6 |
|
| Added new message supporting MISRA C 2012 Rule 10.1 |
|
| Add sub-option for stack usage to allocate variables at the start of the
function |
|
| Commas are now optional when specifying multiple messages for -e(, –e(,
-e{, and –e{ |
|
| New message 2776 replaces 1776 for C modules |
|
| Add new messages 9277 and 9278 to support MISRA C 2012 Rule 5.8 and
MISRA C 2012 Rule 5.9 |
|
| Add new message 9279 to support AUTOSAR A2-10-4 |
|
| Add new message 9155 to identify commented-out code |
|
| Support for MISRA C++:2023 |
|
| Added new message 9184 to support MISRA C++ 2023 Directive 5.7.2 |
|
| New message 9251 supports MISRA C++:2023 Rule 5.13.6 |
|
| New message 9257 supports MISRA C++:2023 Rule 6.7.1 |
|
| Add new message 1806 to support MISRA C++:2023 Rule 6.8.4 |
|
| New message 9164 reports on uses of reinterpret_cast |
|
| New message 9161 supports MISRA C++:2023 Rule 8.2.9 |
|
| New message 9207 supports MISRA C++:2023 Rule 8.3.2 |
|
| Add new message 9256 to support MISRA C++:2023 Rule 10.1.2 |
|
| New message 9253 reports on the use of bit-fields |
|
| Add new message 1953 to support MISRA C++:2023 Rule 13.3.2 |
|
| New message 1956 reports on symmetric operators implemented as
member functions |
|
| Added support for MISRA C++ 2023 Rule 17.8.1 |
|
| Added support for MISRA C++ 2023 Rule 22.4.1 |
|
| Add new message 3911 to support MISRA C++:2023 Rule 28.6.1 |
|
| Add new message 3907 to support MISRA C++:2023 Rule 9.5.2 |
|
| Add new message 9217 to support MISRA C++:2023 Rule 10.4.1 |
|
| Add new message 9255 to support MISRA C++:2023 Rule 6.0.3 |
|
| Explicit support for MISRA C:2023 |
|
| Support for MISRA C:2025 |
|
| Added Unused Suppressions Tool |
|
| Update 9103 to fully support MISRA C++ Rule 2-10-5 |
|
| Emit function location for 9070 |
|
| Re-enabled message 767 |
|
| Assembly related errors are no longer emitted. |
|
| Messages 419 and 420 now also issued for non-buffer arguments |
|
| Messages 750, 1401, 1540, 1541, 1565, 1566, 1578, 1579, 1927 are now
issued in a consistent order |
|
| Enabled support for MISRA 2004 Rule 20.3 and MISRA 2012 Directive
4.11 |
|
| Added supplemental message for message 455 |
|
| Support language extension specifying an explicit address using a colon |
|
| -efunc can now be used to suppress messages within special member
functions and conversion operators. |
|
| Emit message 686 in response to suppression of message 322 |
|
| Corrected representation of format string checking for wide-string
functions |
|
| Message 9035 added as a way to support MISRA C 2004 Rule 1.1 |
|
| Removing section "Differences from PC-lint 9" and documenting the
default value of -vt_depth |
|
| Update message 9264 for MISRA C++ 2008 Rule 5-0-15 |
|
| Added messages 2452, 2453, and 2455 as support mechanisms for MISRA
C 2012 Rule 1.3 |
|
| Improved built-in function semantics |
|
| Update MISRA C++ 2008 configuration template |
|
| Add -isystem and -Hincdir= to the list of defaults for
–prefix-directory-options in pclp_config.py |
|
| Added support for MISRA C 2012 Directive 4.13 |
|
| Variables marked with attribute unused are now exempt from message 438 |
|
| Use of the __generic keyword no longer elicits errors when using IAR
compiler configurations |
|
| Built-in function semantics for std::jthread |
|
| Do not emit message 1764 for universal reference parameter of template
instantiated with a lambda |
|
| Include metrics that evaluate to a metric host/collection on the metric
report |
|
| Added support for AUTOSAR19 Rule A5-0-4 |
|
| Support for AUTOSAR Rule A5-1-2 |
|
| Enable message 1764 to support AUTOSAR19 Rule A8-4-9 |
|
| Add support for AUTOSAR19 Rule A8-4-10 |
|
| Added support for AUTOSAR Rule M10-1-2 |
|
| Message 4787 and 5630 have been moved to 163 and 164 respectively |
|
| Added support for AUTOSAR19 Rule A18-5-10 |
|
| Improvements to the documentation of the section covering the utility
pclp_config |
|
| Update size option extraction method for TI compiler configurations |
|
| Improved loop counter detection for message 850 |
|
| Message 2467 will only report definitions |
|
| Clean up temporary IAR compiler output files when generating an IAR
compiler configuration with pclp_config.py |
|
| Improve documentation of limitations on thread analysis messages during
the second phase |
|
| Deprecated type names are now compared against fully qualified types |
|
| Support MISRA C 2012 AMD-4 Directive 5.2 |
|
| Partial support for MISRA C 2012 AMD-4 Directive 5.3 |
|
| Assistance for MISRA C 2012 AMD-4 Rule 22.14 |
|
| Support MISRA C 2012 AMD-4 Rule 22.17 |
|
| Update generic selection expression checks to consider type predicates |
|
| Add detail message parameter to 1940 |
|
| Modify 9034 to consider the rank of essentially signed integer constant
expressions |
|
| Update messages 9078, 9079, 9087, and 9295 to only report conversions
involving object pointers |
|
| Message 9080 no longer emits while initializing an object containing
pointers with 0 |
|
| Update 1776 to support additional implied assignment contexts |
|
| Modify 9028 to account for operand rank |
|
| Category of MISRA C 2012 Rule 13.6 changed from Mandatory to
Required |
|
| Modify message 533 to consider the current C language standard |
|
| Category of MISRA C 2012 Rule 17.5 changed from Advisory to Required |
|
| Added documentation of the ’c’ flag for the -size option. |
|
| Message 977 no longer emitted for some conditional-expressions |
|
| Expand message 1537 to support AUTOSAR M9-3-1 |
|
| Added missing thread analysis semantic documentation |
|
| Improve documentation for the -h option |
|
| Documentation Improvement |
|
| Clarify that the –compiler-options option is not required for the IAR
compiler |
|
| Deprecations of C++ types may omit the struct, class, union, or enum
keyword |
|
| Fixed false positive 8516 for non-compliant file paths |
|
| Improved message descriptions for messages 810 and 423 |
|
| Added version and copyright information to the PC-lint Plus executable
on Windows |
|
| Updated pclp_config to provide a warning when suspicious include path
parsing is detected |
|
| Enable support for AUTOSAR19 Rule A2-10-1 / AUTOSAR17 Rule
A2-11-1 |
|
| Support usage of __lint_assert in constexpr contexts |
|
| Improving the Documentation of the [+/-]libm Option |
|
| New Query functions for C++20 and C++23 features |
|
| Locker classes no longer need to have default constructors |
|
| Including a query example for tautological assignment |
|
| Soften message 9224 for test of integer literal zero |
|
| Improved support for MISRA C 2012 Rule 1.3 |
|
| Add support for Keil uVision armclang compiler |
|
| Fallthrough attributes are now excused from message 9138 |
|
| Citations are now rendered when viewing message descriptions using -help
or -dump_messages |
|
| Improving the Integration of PC-lint Plus into Eclipse-based IDEs |
|
| Emphasize the effects of marking code as library on analysis |
|
| Better support IAR ARM compiler configurations for atomics |
|
| Added getValue query for StringLiteral AST nodes |
|
| Message 970 no longer emitted for postfix operator parameters |
|
| Harmonize emission conditions of messages 720, 820, and 9084 |
|
| Message 9008 no longer emitted in template instantiations |
|
| Update description of message 606 |
|
| Message 9436 now emitted for constant static data members |
|
| Thread Analysis message source locations can now emit base names |
|
| -deprecate options in coding standard configuration files no longer use
deprecation commentary |
|
| Improve reporting of MISRA C 2012 AMD 4 Rule 22.18 |
|
| Updated AUTOSAR append text to include the version |
|
| Use of coding standard configuration files represented in message 900 |
|
| pclp_config now accepts command line arguments when invoked from
another python module |
|
| Deprecate CryptDecrypt and mktemp in au-cwe.lnt |
|
| Corrected append text for CERT C Recommendation EXP05-C |
|
| Updated message description for error 52 |
|
| Support GCC configurations using C++23 with the pclp_config.py tool |
|
| Add message 1765 |
|
| Extend the fbl flag option to identifier lookups in dependent base classes |
|
| Added isOrdinary, isWide, isUTF8, isUTF16, isUTF32, isUnevaluated, and
containsNonAscii queries for StringLiteral AST nodes |
|
| Add support for GCC’s assume attribute |
|
| Add section about PCLP_NO_LNT_VERSION_CHECK to the "Using PC-lint Plus
in Safety Critical Applications" document |
|
| C and C++ language standards can now be specified with pclpvscfg |
|
| Improve rendering of paragraph separations for -help and -dump_messages |
|
| Add pclp_config option transformation for TI compilers defines |
|
| Added new language option flags in database of pclp_config |
|
| Informational message 2751 replaced with warning message 2541 |
|
| Add project configuration support for Microchip compilers |
|
| Enhance message presentation when enabling MISRA C 2012 amendments
|
|
| Use of MISRA guideline headline text |
|
| Updated the "Using PC-lint Plus in Safety Critical Applications"
document |
|
| Message 1946 no longer emits for functional casts using curly braces or
those resulting in a constructor call |
|
| Noted potential limitation when using pclp_config.py with a non-English
locale |
|
| Fix 9003 false negative |
|
| Fixed false positive 9045 for nested structures |
|
| Resolved false positive 9119 for functional style casts using brace
initialization |
|
| Resolved false positive 9034 when true and false macros are used as macro
arguments |
|
| Assumption that pointer may be null is now applied following a comparison
against null |
|
| Resolve false negative 1774 for if, while, for, and switch statement
condition and/or initializer variables |
|
| Fix 438, 838, 522, and 523 false positives related to lambda captures |
|
| Message hooks inappropriately executed for supplementals of suppressed
messages |
|
| Functions named "random" or "rand" within user-defined namespaces are
no longer reported by message 2461 |
|
| Fix false positive 9049 within lambda body |
|
| Resolved false negative 9060 in long block comments |
|
| Correction of internal error 795D141F in thread analysis semantic
processing |
|
| Removed claim about 605’s applicability in message 1537’s description |
|
| 586 reports deprecated macros in a nested macro expansion |
|
| Memory leaks fixed |
|
| Fixed false negative for 1781 and 1940 when parameter is reference to
pointer |
|
| Fixed false positive for 1781 and 1940 when parameter is reference to
pointer |
|
| Potential crash when using defaulted virtual destructors in C++03 mode |
|
| Removed duplicate message 9436 when using an array function parameter
in a template |
|
| Resolve false positive for 9128 |
|
| Variable access information in thread analysis function reports issued in
inconsistent order |
|
| Messages 550, 551, 552, 727, 728, 729, and 738 will now respect all
unevaluated contexts |
|
| Thread Analysis messages issued in inconsistent order |
|
| Message 979, 1401, and 9175 locations have been fixed for out of line
template class method instantiations |
|
| Duplicate 586 messages have been resolved |
|
| Limit the situations in which message 923 is enabled within au-misra3.lnt |
|
| Resolve false positive 757, 758, 759, 768, 769 and false negative 749, 751,
752, 753, 754 in macro expansion |
|
| Resolved crash for CXXRecordDecl’s getLambdaStaticInvoker,
isProvablyNotDerivedFrom, and isVirtuallyDerivedFrom’ queries |
|
| Changed CXXRecordDecl’s isCLike and isDerivedFrom queries to return
None for forward declarations |
|
| Correct return value for isLocalClass Query function |
|
| Eliminated some duplicated type deprecations |
|
| Resolve false positive 1550 in lambda parameter default argument |
|
| Remove CWE-398 category |
|
| Internal error when using the hasICEInitializer Query function on a
variable without an initializer |
|
| Internal error when using the getBitWidthValue Query function on a
bit-field with value-dependent width |
|
| Barr C rule 7.1.o not honored in the naming conventions |
|
| Fix hang when a using directive attempts to create a cycle in the strong
type hierarchy |
|
| Resolve error messages related to enumeration template parameters with
underlying character or Boolean types |
|
| Corrected message 1962 to be an Elective Note |
|
| Preprocessing-only mode now expands system headers |
|
| Corrected append text for CERT C rules |
|
| Added missing built-in function semantics for Qt’s QMutexLocker class |
|
| Resolved internal errors 19F5CC61 and 998C0E63 for constrained function
template arguments |
|
| Correct default Visual Studio language standards |
|
| Internal error 499C50D3 when processing indeterminate mutexes |
|
| Change the suppression options used to enable the messages supporting
MISRA C Rule 11.6 |
|
| Removed message 754 and 768 for MISRA C Rule 2.8 |
|
| Resolved false negative 818, 843, 844, 952, 953, 954, 1764, and 1803 for
initializer lists |
|
| Resolved sporadic false negative 9012 |
|
| Update support claim for MISRA C++ 2008 rule 0-1-4 and
AUTOSAR17/AUTOSAR19 rule M0-1-4 |
|
| Corrected append text for several CERT C guidelines |
|
| Message 756 is disabled |
|
| Variable-not-accessed messages not issued for arrays |
|
| Message 522 incorrectly emitted for call to function that modifies object
through pointer to const structure |
|
| False positive instance of message 522 for call to const member function
but has external side-effects |
|
| Message 1565 does not report the status of sub-objects within data
members of class type |
|
| Messages 1579 does not work as expected |
|
| The undocumented +fil flag is not implemented |
|
| False positive message 9175 for lambda functions that modify local
variables captured by reference |
|
| Messages 9128 may be incorrectly emitted within the instantiation of a
template with a non-type template parameter |
|
| False positive 650 for shifted values |
|
| Message 2650 incorrectly reported for redundant portion of comparison
operators |
|
| Messages 9131 and 9240 do not treat dependent qualified identifiers as
primary or postfix expressions |
|
| False positives for Strong Type messages when using template parameters |
|
| False positive 587 and 650 for result of bitwise AND dependent on former
sign bit of promoted value |
|
| Message 9079 incorrectly emitted for some equality operations in C mode |
|
| Messages 754 and 768 do not consider appearances in member designators
as references |
|
| Message 9057 not emitted for ull or Ull suffixes |
|
| Message 9031 does not support expanded definition of composite
expressions introduced in MISRA C:2023 |
|
PC-lint Plus 2.2 improves support for C++20, introduces support for C++23, addresses compatibility issues with recent versions of GCC and Visual Studio, and resolves several defects.
| PCLP-4697 | |
| PCLP-3964 | Added support for C++20 literal class non-type template parameters to Value Tracking |
| PCLP-4334 | |
| PCLP-4647 | Improved instructions for integrating PC-lint Plus with the SEGGER IDE |
| PCLP-4671 | |
| PCLP-4708 | |
| PCLP-4725 | |
| PCLP-4746 | Improved Strong Types in deduced types and template argument deduction |
| PCLP-4750 | |
| PCLP-939 | |
| PCLP-960 | |
| PCLP-2135 | |
| PCLP-2603 | |
| PCLP-2614 | |
| PCLP-3004 | Message 1565 does not report the status of sub-objects within data members of class type |
| PCLP-3198 | |
| PCLP-3213 | |
| PCLP-3223 | |
| PCLP-3803 | |
| PCLP-3856 | False positive side-effect related messages for a lambda that has side effects |
| PCLP-4010 | |
| PCLP-4046 | False positive 1764 for universal reference parameter of template instantiated with a lambda |
| Support for C++20 Module Partitions |
|
| Added support for C++20 literal class non-type template parameters to
Value Tracking |
|
| Resolved syntax errors when using recently updated versions of Visual
Studio 2022 standard library headers in C++20 mode |
|
| Improved instructions for integrating PC-lint Plus with the SEGGER IDE |
|
| Add support for C17, C23, and C++23 language standards |
|
| Improved type printing
|
|
| Added detail parameters to message 540 |
|
| Improved Strong Types in deduced types and template argument
deduction |
|
| Improve filenames for file metrics |
|
| Resolved crash when missing enumeration constant is used in constexpr
functions |
|
| Resolved crash when parsing overloaded shift operator with variadic
arguments |
|
| Internal error D8BD27EC during instantiation of templated lambdas |
|
| Moved coroutine implementation out of experimental namespace |
|
| Resolved error when using a templated consteval function |
|
| Updated messages to support C++20 parenthesized list initialization |
|
| Fixed rendering of Unicode characters when dumping queries on Windows |
|
| Resolved false negative 578 for static local variables |
|
| Correct support for Keil armcc compiler |
|
| Fixed location information of message 631 |
|
| Resolved false negative 9035 for VLA through typedef |
|
| Resolved false negative 971 when used as enum-base |
|
| Resolved false negative 9141 and 753 for friend class forward declarations |
|
| Resolved false negative 1901 and 1946 for variable templates |
|
| Resolved false negative 768 for multiple anonymous structs |
|
| Resolved false positive 9447 in template classes members with explicit
template arguments |
|
| Resolved false positive 9447 with typedef return type |
|
| Resolved false positive 957 with internal linkage parameters |
|
| Resolved false positive 912 and 915 for enum with base promotable to int |
|
| Resolved false positive 911 for default template argument |
|
| Correct typename in messages 641 and 911 for enumerations with
promotable integer base type |
|
| Change message number 541 to 2005 |
|
| Message 756 is disabled |
|
| Message 9103 not issued for inter-module reuse |
|
| False negative 9003 for static variables |
|
| Message 767 is disabled |
|
| False positive instance of message 522 for call to const member function
but has external side-effects |
|
| Message 1565 does not report the status of sub-objects within data
members of class type |
|
| PCLP-3198 | False positive 9045 for nested structures |
| PCLP-3213 | False positive implicit conversion messages when an explicit cast expression
is used as a template argument for a non-type template parameter |
| The undocumented +fil flag is not implemented |
|
| False positive 650 for shifted values |
|
| False positive side-effect related messages for a lambda that has side effects |
|
| False positive 9049 within lambda body |
|
| False positive 1764 for universal reference parameter of template
instantiated with a lambda |
|
PC-lint Plus 2.1 includes several new featues and numerous improvements including:
Support for CWE weakness detection using au-cwe.lnt.
Support for MISRA C 2012 AMD-3 and introductory support for AMD-4.
Improvements to Metrics including the new num_switch_cases, num_incoming_calls, num_calling_functions, and num_called_functions function metrics.
Improvements to Queries including support for non-persistent variables in query echoes, new type-related functions, and the ability to suppress Query execution in library regions.
Introductory support for C++20 Modules.
Support generating a compiler configuration for the Green Hills compilers using pclp_config.
Integration support for Visual Studio Code.
Improved support for using PC-lint Plus in conjunction with anti-virus tools.
Optional shell-like parsing of compiler options with pclp_config which supports quoted arguments containing spaces.
Improved support for recent versions of GCC.
pclp_config support for SEGGER compilers and IDE.
| PCLP-3086 | |
| PCLP-3607 | |
| PCLP-3763 | |
| PCLP-3874 | |
| PCLP-4039 | New function metrics for incoming and outgoing function calls |
| PCLP-4256 | |
| PCLP-4352 | New fql flag option to control Query execution in library regions |
| PCLP-4382 | |
| PCLP-4396 | Support MISRA C 2012 AMD-4 Rule 9.6 using messages 2903 and 2904 |
| PCLP-939 | |
| PCLP-960 | |
| PCLP-2135 | |
| PCLP-2603 | |
| PCLP-2614 | |
| PCLP-3004 | Message 1565 does not report the status of sub-objects within data members of class type |
| PCLP-3198 | |
| PCLP-3213 | |
| PCLP-3223 | |
| PCLP-3803 | |
| PCLP-3856 | False positive side-effect related messages for a lambda that has side effects |
| PCLP-4010 | |
| PCLP-4046 | False positive 1764 for universal reference parameter of template instantiated with a lambda |
| PCLP-4361 | |
| PCLP-4230 | False positive message 9006 for dependent sizeof expressions |
| PCLP-3201 | |
| Add compiler configuration support for Green Hills compilers |
|
| Add compiler configuration support for SEGGER compilers |
|
| Introductory support for CWE |
|
| Support for C++20 Modules module and import syntax and new
-build_module_interface_unit option to build C++20 module interface units
|
|
| New function metrics for incoming and outgoing function calls |
|
| Support C++20 using enum |
|
| New fql flag option to control Query execution in library regions |
|
| New metric function.num_switch_cases |
|
| Support MISRA C 2012 AMD-4 Rule 9.6 using messages 2903 and 2904 |
|
| Add Boolean function result inferencing for Value Tracking |
|
| Add anchored expressions to Value Tracking messages to enable -equery
suppressions |
|
| False negative instance of message 9034 involving compound assignment |
|
| Add pclp_config version to generated compiler configuration header files |
|
| Improve side effect classification for GNU Statement Expressions |
|
| Document integration with Visual Studio Code |
|
| Fix typo in custom message text for BARR-C 5.1a |
|
| Correct omission of documentation for existing C++98 support in
description of -std and fix various trivial documentation typos |
|
| Expand recognition of Boolean type hierarchies defined using Strong Types
when determining whether an expression is Boolean for the purposes of
MISRA C 2004 rules |
|
| Add no_specific_walk semantic, a new name for the previously
undocumented nowalk semantic |
|
| Add support for asm and __asm keywords for IAR compiler configs |
|
| Resolve additional spurious pre-run crash messages caused by remote code
injection by antivirus software |
|
| Improve compiler configuration support for Microchip XC8 |
|
| Added missing thread analysis semantic documentation |
|
| Improved pclp_config support for extracting compiler predefined macros |
|
| Support __atomic_is_lock_free built-in for sizes up to long long |
|
| Updated descriptions for messages 9225 and 1502 |
|
| Expanded description of +fnr to clarify that it specifically applies to
functions not available to be walked |
|
| New –shell-parse-compiler-options option for pclp_config.py |
|
| Add instructions for locating GCC compiler for STM32CubeIDE users |
|
| Recognize TI –include_path options with unquoted paths |
|
| Updated descriptions of message 759 and the flo flag option |
|
| Expanded support for __int128, __int128_t, and __uint128_t |
|
| Add version number, date, and revision history to "Using PC-lint Plus in
Safety Critical Applications" document |
|
| New faa flag option controls aligned allocations |
|
| New Query functions for working with types |
|
| Support accessing contextual values of non-persistent variables within the
body of echo expressions in Queries |
|
| Support for MISRA C 2012 AMD-3 |
|
| Add new message 9202 to support MISRA C 2012 AMD-3 Rule 6.3 |
|
| Add new message 9203 to support MISRA C 2012 AMD-3 Rule 8.16 |
|
| Add new message 9205 to support MISRA C 2012 AMD-3 Rule 8.17 |
|
| Add new message 841 to support MISRA C 2012 AMD-3 Rule 17.10 |
|
| Add new message 9211 to support MISRA C 2012 AMD-3 Rule 23.1 |
|
| Add new message 2419 and 9213 to support MISRA C 2012 AMD-3 Rule
23.2 |
|
| Add new message 9208 to support MISRA C 2012 AMD-3 Rule 23.3 |
|
| Add new message 2416 to support MISRA C 2012 AMD-3 Rule 23.4 |
|
| Add new message 9210 to support MISRA C 2012 AMD-3 Rule 23.8 |
|
| Add new message 2505 to support MISRA C 2012 AMD-3 Rule 7.5 |
|
| Add new messages 2502 and 9503 reporting alignment conflicts to support
MISRA C 2012 AMD-3 Rule 8.15 |
|
| Add new message 2417 to support MISRA C 2012 AMD-3 Rule 17.13 |
|
| Add new messages 2504 and 9504 to support MISRA C 2012 AMD-3 Rule
21.22 |
|
| Add new message 9218 to support MISRA C 2012 AMD-3 Rule 21.23 |
|
| Add new message 9214 to support MISRA C 2012 AMD-3 Rule 23.5 |
|
| Add new message 9216 to support MISRA C 2012 AMD-3 Rule 23.6 |
|
| Add new message 9219 to support MISRA C 2012 AMD-3 Rule 23.7 |
|
| Updates to au-misra3.lnt and au-misra3-amd2.lnt as per MISRA C 2012
Amendment 3 |
|
| Add complex floating essential type for MISRA C 2012 AMD-3 |
|
| Add support for Visual Studio /FI and /external:I options |
|
| Correct false positive 779 messages issued for type-dependent expressions |
|
| Detect character size when generating compiler configurations for TI
compilers |
|
| Exclude ti_edg implementation detail compiler database entry from the
list of compilers shown by pclp_config |
|
| Add support for compiler relative include file search directories. |
|
| Remove temporary compiler generated files within the configuration utility
pclp_config |
|
| Improved and corrected determining of compiler versions within the
pclp_config utility. |
|
| Improved error messages for pclp_config when a command uses
–compiler-database where –compilation-db was intended |
|
| Updated manufacturer of the Freescale compilers |
|
| Correct minor issues in generated Visual Studio compiler configuration
files |
|
| Improved Visual Studio configuration file comments |
|
| Include right shifts for message 9053 |
|
| Message 527 now reports code that is unreachable due to a prior infinite
loop |
|
| Recognize the assignment of a constant value in a Boolean context as itself
representing a constant value |
|
| Support MISRA C 2012 AMD-4 |
|
| Support MISRA C 2012 AMD 4 Rule 18.10 |
|
| Support MISRA C 2012 AMD 4 Rule 12.6 |
|
| Improved pclp_config support for Visual Studio compiler options that
start with a dash |
|
| Revise when thread analysis processing is inhibited |
|
| New message 1797 improves support for MISRA C++ Rule 14-5-3 and
AUTOSAR M14-5-3 |
|
| Add warning message for when an object is used as a mutex and then as
a locker. |
|
| Enable include_next preprocessor keyword in TI compiler configurations
generated by pclp_config |
|
| Examples added to description of the -cond option |
|
| Note the constraints of -setenv when used in a configuration file |
|
| Recognize C++23 feature test macros in pclp_config |
|
| Additional instructions for integrating PC-lint Plus with IAR Embedded
Workbench |
|
| Improved link navigation for Revision History entries |
|
| Improved instructions for integrating PC-lint Plus with Visual Studio
Code |
|
| Updates to au-misra3.lnt and au-misra3-amd2.lnt as per MISRA C 2012
Amendment 4 |
|
| Improve Keil ARMCC and Microchip XC8 compiler configuration
generation |
|
| Improved support for Microchip XC8 keywords and predefined macros |
|
| Correct false negative 9102 for digraph sequence "<:" |
|
| False positive 725 within template instantiations |
|
| Correct false positive 550 for braced member-init-lists |
|
| Correct false positive 776 for the summation of two ints cast to a long of
the same size |
|
| False positive message 9006 for dependent sizeof expressions |
|
| Correct rare memory corruption in thread analysis semantic processing |
|
| Correct rare memory corruption in file stream semantic processing |
|
| Resolve crash/internal error 292B4782 for constant division by zero |
|
| Resolve false positive instances of messages 550, 551, and 552 for rewritten
comparison operators in C++20 |
|
| Correct handing of C/C++ options when determining size options in
pclp_config |
|
| Update pclp_config to prefer setting size_t to unsigned long over unsigned
long long when both types are the same size to match recommendation
from C++ standard |
|
| False negative messages 1524, 1732, and 1733 for new expression appearing
in a member init list |
|
| Memory leak when using -cond and -egrep/+egrep options |
|
| Correct false positive message 504 for shift assignment operators |
|
| Resolve internal error 187F3BF3 (-37) |
|
| False negative 785 for uninitialized members of a structure nested within
a union |
|
| Correct name of the file argument of the thread_report options in built
in help and the Reference Manual. |
|
| Remove unimplemented pclp_config option –ignore-options |
|
| Resolve a crash/internal error/hang that could occur during Global
Wrap-up when using the Metrics feature on a large project using many
concurrent analysis threads |
|
| Remove inapplicable C++ configuration from the Microchip XC8 and XC16
compiler database entries |
|
| Correct handing of C/C++ options when determining size options in
pclp_config |
|
| Correct false positive 9107 for class template static data members |
|
| Resolve internal errors when evaluating certain Hook fields or Query
functions for value-dependent expressions |
|
| Correct false positive 9102 for digraph sequence "<::" |
|
| Incorrect deprecation text for AUTOSAR Rule M18-7-1 |
|
| Updated pclp_config to handle fixed precision floating point types in
standard header files |
|
| Internal error when the isCXX11ConstantExpr Query function is
evaluated in a C module |
|
| Incorrect library region determination for certain Hook events |
|
| User-defined hooks executed twice for label statements |
|
| Corrected invalid string escape sequences in pclp_config |
|
| Resolve Python error while generating include options when using
pclp_config.py to generate a compiler configuration without specifying a
compiler binary using –compiler-bin |
|
| Resolved an issue in Value Tracking that manifested as a hang before
crashing due to memory exhaustion |
|
| Inappropriate evaluation of Query echo reflections |
|
| Resolved false negatives of message 550 and 551 due to supressions |
|
| Enable usage of _Float16 and __bf16 types |
|
| Enable usage of _Complex _Float16 type |
|
| Resolve false negatives in the value of the file.num_include_directives
metric in Linux and macOS builds of PC-lint Plus |
|
| Message 756 is disabled |
|
| Message 9103 not issued for inter-module reuse |
|
| False negative 9003 for static variables |
|
| Message 767 is disabled |
|
| False positive instance of message 522 for call to const member function
but has external side-effects |
|
| Message 1565 does not report the status of sub-objects within data
members of class type |
|
| PCLP-3198 | False positive 9045 for nested structures |
| PCLP-3213 | False positive implicit conversion messages when an explicit cast expression
is used as a template argument for a non-type template parameter |
| The undocumented +fil flag is not implemented |
|
| False positive 650 for shifted values |
|
| False positive side-effect related messages for a lambda that has side effects |
|
| False positive 9049 within lambda body |
|
| False positive 1764 for universal reference parameter of template
instantiated with a lambda |
|
PC-lint Plus 2.0 introduces major new features:
Metrics provides an intuitive and flexible solution for verifying, reporting, and extending over one hundred code metrics including cyclomatic complexity, number of paths, categorized line and statement counts, and Halstead measures. Metrics are available at the project, module, file, class, and function level. PC-lint Plus Metrics make it easy to check for violations of metric thresholds or constraints, create custom metrics, and calculate derived information such as minimum, maximum, and average metric values. Metric reports are available in XML, JSON, and CSV format. For more details, see the Metrics chapter of the Reference Manual.
Queries enables the creation of entirely new custom messages directly within PC-lint Plus configuration files using a convenient syntax operating on a parsed AST representation. Custom messages can be used to automatically check your own novel coding guidelines or add specialized analysis to validate the usage of project-specific APIs. Queries also enable an unprecedented level of control over message suppression by providing access to AST information which can examine, e.g., whether a member function is virtual or whether a class has any data members when determining whether a specific message should be emitted or suppressed. For more details, see the PC-lint Plus Query Language chapter of the Reference Manual.
This release of PC-lint Plus also includes:
Improved support for the latest C++ standards
Support for Visual Studio 2022
Support for AUTOSAR19 and new AUTOSAR messages
Refinements to MISRA support
Performance improvements
...and many other improvements discussed in the detailed revision history below
| PCLP-386 | |
| PCLP-2285 | |
| PCLP-3526 | |
| PCLP-3529 | |
| PCLP-3531 | |
| PCLP-3533 | |
| PCLP-3539 | |
| PCLP-3548 | |
| PCLP-3813 | |
| PCLP-3987 | |
| PCLP-3959 | |
| PCLP-3548 | |
| PCLP-3541 | |
| PCLP-3539 | |
| PCLP-3538 | |
| PCLP-3537 | |
| PCLP-3533 | |
| PCLP-3532 | |
| PCLP-3531 | |
| PCLP-3529 | |
| PCLP-3528 | |
| PCLP-3527 | |
| PCLP-3526 | |
| PCLP-3523 | |
| PCLP-3511 | |
| PCLP-2972 | |
| PCLP-2969 | |
| PCLP-4042 | |
| PCLP-4041 | Update documentation with correct version of AUTOSAR targeted by au-autosar.lnt |
| PCLP-4074 | Document limitations for support of MISRA C++ 2008 Rule 3-4-1 |
| PCLP-4073 | |
| PCLP-4070 | Expand support for AUTOSAR A1-1-1 and change support level to "partially supported" |
| PCLP-3913 | |
| PCLP-3920 | |
| PCLP-3912 | |
| PCLP-3816 | |
| PCLP-3814 | |
| PCLP-3190 | |
| PCLP-3095 | |
| PCLP-4014 | |
| PCLP-4007 | Exclude initialization of pointers from MISRA C 2004 Rule 10.1 |
| PCLP-4004 | Use int as destination underlying type for the purpose of initialization for MISRA C 2004 |
| PCLP-4003 | Exclude Boolean operators from MISRA C 2004 underlying type rules |
| PCLP-4076 | Add -append options for message 829 (+headerwarn option issued) used in au-misra3-amd2.lnt |
| PCLP-4075 | Parameterize -append options for message 829 (+headerwarn option issued) used in au-misra-cpp.lnt |
| PCLP-4074 | Document limitations for support of MISRA C++ 2008 Rule 3-4-1 |
| PCLP-386 | Introducing Metrics |
| PCLP-2285 | New options to control parsing limits |
| PCLP-3526 | Added support for AUTOSAR Rule A5-1-7 |
| PCLP-3529 | Added support for AUTOSAR Rule A3-1-5 Support for AUTOSAR Rule A3-1-5 is now provided. |
| PCLP-3531 | Added support for AUTOSAR Rule A7-1-9 Complete support for AUTOSAR Rule A7-1-9 is now provided. |
| PCLP-3533 | Added support for AUTOSAR Rule A13-5-5 Message 9444 is issued whenever the function is a class/struct member. Message 9445 is issued whenever the function is not noexcept (noexcept(true), throw(), or __declspec(nothrow)). Message 9446 is issued whenever the parameters to the function have different types. Support for AUTOSAR Rule A13-5-5 is now provided. |
| PCLP-3539 | Added support for AUTOSAR Rule A5-1-8 Support for AUTOSAR Rule A5-1-8 is now provided. |
| PCLP-3548 | Added support for AUTOSAR Rule A13-2-1 Message 9448 is issued whenever the return value of a user defined assignment operator is not a reference to the left hand parameter (’*this’ for member functions and the first parameter for non-member functions) with the same const/volatile qualification. Support for AUTOSAR Rule A13-2-1 is now provided. |
| PCLP-3813 | Introducing Queries |
| PCLP-3987 | Introduce support for new C++20 features The C++20 Modules feature is not currently supported. |
| PCLP-1962 | Ignore unevaluated contexts for message 1938 |
| PCLP-1977 | Improve performance of processing files containing heavy use of macro
expansion including common Boost headers |
| PCLP-2113 | Mark std::uncaught_exception as dangerous |
| PCLP-2245 | Evaluate qualified calls to virtual functions with static dispatch |
| PCLP-2606 | New fit flag to consider functions not declared as noexcept to be impure
if they throw an exception |
| PCLP-2969 | Improved support for AUTOSAR Rule A10-3-5 |
| PCLP-2972 | Improved support for AUTOSAR Rule A12-4-2 |
| PCLP-2997 | Deterministic field and base order for rendering of class/struct/union
objects in Value Tracking messages |
| PCLP-3067 | Update options for specifying language versions |
| PCLP-3095 | Do not emit message 9176 for dependent types //lint -w1 +e9176 template<typename T, typename U> void f() { T* t = 0; reinterpret_cast<U*>(t); } void g() { f<int, double>(); } previously emitted two instances of message 9176, one for the generic cast from T* to U* and a second for the specific cast from int* to double*. Message 9176 now only reports the latter. |
| PCLP-3291 | Update documentation for message 422 |
| PCLP-3357 | Improved analysis of constant arrays |
| PCLP-3511 | Support for AUTOSAR 19 |
| PCLP-3516 | New builtin function semantics for the log, logf, and logl functions |
| PCLP-3523 | New message 9456 supports AUTOSAR A6-5-3 |
| PCLP-3527 | Support for AUTOSAR Rule A2-13-5 |
| PCLP-3528 | Support for AUTOSAR19 Rule A2-13-6 AUTOSAR19 Rule A2-13-6 is now supported by the new messages 9443 (universal-character-name used in identifier). |
| PCLP-3532 | Message 1511 parameterized with access of hidden function |
| PCLP-3537 | Support AUTOSAR Rule A5-1-3 |
| PCLP-3538 | Support for AUTOSAR A5-1-6 provided by new message 3903 |
| PCLP-3541 | Improved support for AUTOSAR Rule A13-6-1 |
| PCLP-3594 | Improve analysis of pointers initialized in if statements |
| PCLP-3595 | Improve analysis of multiple return points in functions returning
structures |
| PCLP-3619 | Improve handling of user-defined conversions in Value Tracking |
| PCLP-3669 | Remove the deprecated +fdu flag option |
| PCLP-3814 | Improve support for exceptions to MISRA C 2012 Rule 10.3 |
| PCLP-3816 | Extend scope of message 9034 to include switch case values |
| PCLP-3872 | Improve text of mapped clang error and supplemental messages |
| PCLP-3880 | Update license information for LLVM |
| PCLP-3901 | Update information on accommodating the _bit compiler extension |
| PCLP-3905 | Improved performance of -d/-u options appearing between
-env_push/-env_pop options |
| PCLP-3912 | Improve support for MISRA C 2012 Rule 1.1 using message 793 |
| PCLP-3913 | Fix typo in appended text for CERT-C Rule POS54-C |
| PCLP-3919 | Add walk_parent_expr hook field as alias for walk_pexpr |
| PCLP-3920 | Remove unused suppression from MISRA C 2012 Rule 10.3 |
| PCLP-3930 | Exclude deduction guides from messages reporting function declarations |
| PCLP-3935 | Support for integer types of arbitrary size |
| PCLP-3955 | Improve performance for const array initialization chains when many array
elements are initialized in terms of other arrays referencing further such
arrays with interleaving function invocations int g(); int const a[] = { 1+g(), 2+g(), 3+g() }; int const * const b[] = { a+g(), a+g(), a+g() }; int const * const * const c[] = { b+g(), b+g(), b+g() }; void f() { c; } which previously exhibited performance differences based on the presence or absence of const qualification. |
| PCLP-3960 | Added support for Visual Studio 2022 The C++ feature test macros in the generated compiler configuration header files are now filtered to match what PC-lint Plus supports. A new option (–dont-filter-feature-test-macros) has been added to disable this filtering if required. |
| PCLP-4003 | Exclude Boolean operators from MISRA C 2004 underlying type rules |
| PCLP-4004 | Use int as destination underlying type for the purpose of initialization for
MISRA C 2004 |
| PCLP-4007 | Exclude initialization of pointers from MISRA C 2004 Rule 10.1 |
| PCLP-4009 | Clarify descriptions of messages 3402 and 3702 |
| PCLP-4013 | Corrected and improved thread analysis reports |
| PCLP-4014 | Add Undecidable classification for MISRA C 2012 Rule 2.1 |
| PCLP-4021 | Update Frequently Asked Questions entry regarding the creation of
custom messages |
| PCLP-4025 | Linux builds now require glibc 2.17 |
| PCLP-4026 | Support the char8_t keyword in clang and GCC compiler configurations
generated with pclp_config |
| PCLP-4033 | Increase default template recursion depth limit |
| PCLP-4036 | Update GCC compiler configuration generation |
| PCLP-4041 | Update documentation with correct version of AUTOSAR targeted by
au-autosar.lnt |
| PCLP-4042 | Add missing AUTOSAR Rule M17-0-3 to au-autosar.lnt |
| PCLP-4043 | Removed error messages |
| PCLP-4048 | Improvements to pclp_config |
| PCLP-4057 | Improved support for GCC 11 compiler configurations generated by
pclp_config |
| PCLP-4070 | Expand support for AUTOSAR A1-1-1 and change support level to
"partially supported" |
| PCLP-4073 | Remove mapping of messages previously used to provide support for
AUTOSAR A4-7-1 and mark this rule as not supported |
| PCLP-4074 | Document limitations for support of MISRA C++ 2008 Rule 3-4-1 |
| PCLP-4075 | Parameterize -append options for message 829 (+headerwarn option issued)
used in au-misra-cpp.lnt |
| PCLP-4076 | Add -append options for message 829 (+headerwarn option issued) used in
au-misra3-amd2.lnt |
| PCLP-4093 | Update hardware requirements to reflect uniform requirement for 64-bit
CPU |
| PCLP-4094 | Parse JSON compilation databases as JSON instead of YAML within
pclp_config |
| PCLP-4095 | Include instructions for generating a JSON compilation database with
iarbuild |
| PCLP-4100 | Improvements to the representation of symbols and types in message
parameters - The Boolean type is represented as bool instead of _Bool in C++ mode. - The restrict qualifier is consistently represented in C mode even when written using an alternate keyword such as __restrict. - Defaulted template type parameters are elided from the representation of the instantiated type. - The representation of nested template types elides spaces between adjacent closing angle brackets in C++11 and later. |
| PCLP-4208 | Support multiple parsing behaviors for JSON compilation databases |
| PCLP-2391 | Resolve false positive instance of message 2434 for dereference of pointer
lexically subsequent to but excluded from control flow after an earlier
conditional deallocation within a loop |
| PCLP-2859 | Resolve error 4714 for noexcept default constructor with default member
initializer |
| PCLP-2999 | False negative instance of message 1536 involving address of private array
element |
| PCLP-3190 | Resolve false negative instance of message 9011 when loop exit point count
is exceeded only with consideration of a goto statement within a nested
loop |
| PCLP-3242 | Resolve false positive 641 involving a conditional operator expression
where both the second and third operand are of the same enumeration
type |
| PCLP-3633 | Inappropriate suppression of messages 451, 537, and 967 |
| PCLP-3652 | Fixed crash for a friend function declaration containing an expression-form
noexcept specifier with a default argument |
| PCLP-3855 | Resolve unexpected syntax error for structured binding to const reference
with Visual Studio standard library |
| PCLP-3864 PCLP-3921 | Resolve internal error involving switch statements containing nested
control structures where all independent paths are certain to uniformly
throw, continue, or exit |
| PCLP-3907 | Resolve false positive 727, 728, or 729 when taking the address of a
parenthesized variable name |
| PCLP-3927 | Improve recognition of temporary output file paths when configuring TI
compilers |
| PCLP-3931 | Resolve internal error associated with use of deduction guides |
| PCLP-3936 | Correct domain error semantics for the log1p, log1pf, and log1pl functions |
| PCLP-3959 | Message 9046 removed as supporting mechanism for AUTOSAR |
| PCLP-3974 | False position message 2751 when thread root function is prefixed with
the address-of operator |
| PCLP-3984 | Properly handle backslashes in the command field of JSON compilation
databases |
| PCLP-4027 | Unintentionally extended comments in pclp_config-generated compiler
configuration files --compiler-options=-I\ could result in the following line generated in the produced configuration file: -i"\" // From compiler option(s): -I\ Compiler options are now enclosed in single quotes within the explanatory comment. |
| PCLP-4029 | Resolve template substitution failure for certain non-type template
arguments of enumeration type |
| PCLP-4165 PCLP-3630 | Fix potential crash or hang when analyzing repeated definitions of a single
function across multiple modules while using a large number of concurrent
threads |
| PCLP-4188 PCLP-3956 | Resolve false negative 1540 for data members after a const data member |
| PCLP-4192 | Recognize __declspec(uuid) |
| PCLP-4200 | Recognize __declspec(thread) |
| PCLP-939 | |
| PCLP-960 | |
| PCLP-2135 | |
| PCLP-2603 | |
| PCLP-2614 | |
| PCLP-3004 | Message 1565 does not report the status of sub-objects within data members of class type |
| PCLP-3197 | False negative instance of message 9034 involving compound assignment |
| PCLP-3198 | |
| PCLP-3213 | |
| PCLP-3223 | |
| PCLP-3569 | False positive 550 for variable initializing const reference member using braced syntax |
| PCLP-3660 | False positive instance of message 776 for addition between int and long of equal size |
| PCLP-3803 | |
| PCLP-3856 | False positive side-effect related messages for a lambda that has side effects |
| PCLP-4010 | |
| PCLP-4046 | False positive 1764 for universal reference parameter of template instantiated with a lambda |
| PCLP-939 | Message 756 is disabled |
| PCLP-960 | Message 9103 not issued for inter-module reuse |
| PCLP-2135 | False negative 9003 for static variables |
| PCLP-2603 | Message 767 is disabled |
| PCLP-2614 | False positive instance of message 522 for call to const member function
but has external side-effects |
| PCLP-3004 | Message 1565 does not report the status of sub-objects within data
members of class type |
| PCLP-3197 | False negative instance of message 9034 involving compound assignment |
| PCLP-3198 | False positive 9045 for nested structures |
| PCLP-3213 | False positive implicit conversion messages when an explicit cast expression
is used as a template argument for a non-type template parameter |
| PCLP-3223 | The undocumented +fil flag is not implemented |
| PCLP-3569 | False positive 550 for variable initializing const reference member using
braced syntax |
| PCLP-3660 | False positive instance of message 776 for addition between int and long
of equal size |
| PCLP-3803 | False positive 650 for shifted values |
| PCLP-3856 | False positive side-effect related messages for a lambda that has side effects |
| PCLP-4010 | False positive 9049 within lambda body |
| PCLP-4046 | False positive 1764 for universal reference parameter of template
instantiated with a lambda |
| PCLP-4190 | Resolve false positive messages involving conversions of integer constant expressions |
| PCLP-4198 | |
| PCLP-4207 | Correct undefined variable regression error within pclp_config |
| PCLP-4190 | Resolve false positive messages involving conversions of integer constant
expressions |
| PCLP-4198 | Resolve incorrect library classification for file metrics |
| PCLP-4207 | Correct undefined variable regression error within pclp_config |
| PCLP-3802 | Resolve internal error associated with precision messages |
| PCLP-3818 | Resolve false positives related to the use of throw, continue, and return within switch statements |
| PCLP-3822 | Resolve false negatives in non-library code appearing subsequent to an include directive for a library header and prior to any intervening lint comment or include directive for a non-library header |
| PCLP-2033 | Add message 2418 to report declarations with conflicting strong types |
| PCLP-2440 | Detect and diagnose multi-threading issues |
| PCLP-2744 | Added support for CERT recommendation CON01-C |
| PCLP-2753 | Detect dangerous accesses between threads |
| PCLP-2757 | Detect inconsistent mutex locking order |
| PCLP-2762 | Detect dangerous accesses between threads |
| PCLP-3022 | New message 2415 reports out of range comparisons in loop conditions |
| PCLP-3550 | New builtin __lint_assert function and assert macro override for pclp_config-generated compiler configurations |
| PCLP-3709 | Automatic compiler configuration generation for Texas Instruments Code Composer Studio compilers using pclp_config.py |
| PCLP-805 | JSON Compilation Database support for pclp_config |
| PCLP-1662 | Messages 655 and 656 now issued with a type parameter, portrayal of tagless enumerations is improved |
| PCLP-2072 | Message 1520 no longer issued for non-copy non-move assignment operators |
| PCLP-2299 | Improve tracking of active member changes for unions containing structures |
| PCLP-2331 | New options to control modules included in project configurations generated with pclp_config |
| PCLP-2569 | Improved error handling for the -sem option |
| PCLP-2589 | Message 9035 will now report any use of VLAs |
| PCLP-2681 | Slash equivalency in filename patterns |
| PCLP-2891 | Member hiding messages are no longer used to support MISRA C++ Rule 2-10-2 |
| PCLP-3013 | Message 1511 no longer reports assignment operators |
| PCLP-3087 | Improved warnings for common misuse of the -i option |
| PCLP-3134 | Messages 655 and 656 now supported for C++ modules |
| PCLP-3141 | Clarify scope of message 565 |
| PCLP-3192 | Improvements to message 9020 (header file name with non-standard character sequence) |
| PCLP-3204 | Message 9137 is now deprecated |
| PCLP-3219 | Compound assignment considered a side effect for messages 666 and 2666 |
| PCLP-3260 | Improvements to for statement messages 440, 442, 443, and 444 |
| PCLP-3422 | Improved reporting of conversions appearing in C++ constructors. |
| PCLP-3491 | Improved precision handling of enumerations without enumerators |
| PCLP-3508 | Improved reporting of conversions appearing in initializer lists |
| PCLP-3514 | Deprecation of the fdu flag option |
| PCLP-3546 | Improved support for AUTOSAR Rule A18-0-3 |
| PCLP-3558 | Disassociate inappropriate messages from CERT C guideline MSC12-C |
| PCLP-3562 | Exclude operands of Boolean and enumeration type when checking BARR-C:2018 Rule 5.3c |
| PCLP-3566 | Use /usr/bin/env to select the interpreter for pclp_config |
| PCLP-3567 | Changes to handling of #pragma once and alternate include guards for 451 and 967 |
| PCLP-3572 | Improve Value Tracking of switch statements |
| PCLP-3596 | Improved library determination of symbols reported in global wrap-up messages |
| PCLP-3597 | Improved handling of project include directories for configurations generated with pclp_config |
| PCLP-3598 | Improved portrayal of permanent licenses |
| PCLP-3601 | Exceeding maximum #include depth is now an unsuppressible fatal error |
| PCLP-3604 | Use of deprecated types diagnosed outside of declarations |
| PCLP-3605 | Support for MISRA C 2012 AMD-2 |
| PCLP-3616 | Perform case-insensitive matching for -efile/+efile when fff flag option is ON |
| PCLP-3629 | Lint comments and macros subject to AST suppressions from special forms of -emacro ((#) or #) within macro argument expansions are now processed at each argument expansion |
| PCLP-3636 | Improve rendering of references in message help |
| PCLP-3639 | Improved compiler configuration for IAR ARM |
| PCLP-3640 | Allow enclosing expression suppressions at the start of an expression |
| PCLP-3641 | Update pclp_config support for Visual Studio 2019 16.7.1 to resolve error 5557 in the xutility header |
| PCLP-3642 | Performance improvements when using a large number of macros |
| PCLP-3647 | Clarify support for MISRA guidelines regarding assistance in identification of binary pointer operations |
| PCLP-3655 | Remove reference to non-existent message |
| PCLP-3663 | Improve wording of 4xxx and 5xxx messages section |
| PCLP-3666 | Make instructions for suppressing coding guideline checking in library files more prominent |
| PCLP-3690 | Correct built-in semantics documentation |
| PCLP-3691 | Added missing built-in semantics for Qt’s QMutex and QRecursiveMutex member functions. |
| PCLP-3693 | Improve value tracking of pointer casts from derived class to base class |
| PCLP-3695 | Resolve false positives related to switch statements nested within loops |
| PCLP-3698 | Resolve false positive 438 for value used within switch case that returns |
| PCLP-3701 | Resolve unexpected interpretations of return values of conversion operators to integral types |
| PCLP-3703 | Document the thread_atomic, thread_non_atomic, and thread_protected semantics |
| PCLP-3705 | Correct if statement lock state inferencing |
| PCLP-3706 | Resolve false positive 644 for variable initialized in all paths of switch statement except those that terminate the program |
| PCLP-3712 | Include exception code in Windows crash message and resolve spurious pre-run crash messages caused by remote code injection by antivirus software |
| PCLP-3717 | Improve handling of function template instantiations for message 2467 |
| PCLP-3718 | Improve library classification of symbols with implicit declarations |
| PCLP-3720 | Do not copy special mutex semantics when -function option copies function-wide semantics |
| PCLP-3723 | Resolve false positive 530 on return values of functions with special mutex function semantic |
| PCLP-3732 | Improved intrinsic function support for XC compiler configurations generated with pclp_config |
| PCLP-3733 | Correct the determination of const referenced parameters and atomic types |
| PCLP-3738 | Resolve false positives involving union assignment within a loop and subsequent access to different subobject |
| PCLP-3739 | Remove message 956 as a support mechanism for BARR-C:2018 Rule 1.8c |
| PCLP-3741 | Resolve false positive 438 for variable assigned to prior to switch and read in switch case prior to fallthrough to next case |
| PCLP-3745 | Correct tracking of compound assignments for thread analysis |
| PCLP-3752 | Target macOS 10.15 |
| PCLP-3753 | Resolve internal error involving incremented union members |
| PCLP-3754 | Add a section about potential interactions with antivirus software |
| PCLP-3755 | Fix typo in Highlights section of 1.4 Beta 1 changes |
| PCLP-3757 | Remove references to non-existent message 9089 in au-misra2.lnt and au-misra3.lnt |
| PCLP-3758 | Handle class member mutexes passed to locked class constructor |
| PCLP-3761 | Improve handling of Strong Types within one-way hierarchies joined using a binary operator and introduce +ffj |
| PCLP-3764 | Suppress spurious empty lines emitted in configurations generated with pclp_config |
| PCLP-3775 | Update Common Issues section and add FAQ section |
| PCLP-3788 | Improve handling of exceptions to rules supported by message 970 |
| PCLP-3797 | Parameterize messages 413 and 613 by symbol for member access expressions |
| PCLP-2086 | False negative 529 or 550 and false positive 953 for condition variables |
| PCLP-2097 | False positive 644 for structure member initialized by conditional structure assignment in C |
| PCLP-2573 | Message 651 no longer issued for empty nested aggregate initialization |
| PCLP-2814 | Improvements to fatal error handling |
| PCLP-2826 | False positive 1576 for specialization via macro expansion |
| PCLP-3189 | False negative 839 |
| PCLP-3196 | Resolve an issue where a function that can indirectly call itself recursively where the recursive call occurs in the call chain below a recursive call to a different function could previously have been labeled "calls recursive" |
| PCLP-3221 | Resolve false positives associated with inferences regarding the right operand of a logical operator in a condition within a loop in the presence of knowledge of prior values |
| PCLP-3222 | Improper handling of symbols referenced through a using declaration |
| PCLP-3305 | Message 1785 incorrectly issued for dependent types |
| PCLP-3391 | Improvements to determination of enclosing expressions for –emacro((#),...) suppressions |
| PCLP-3486 | Resolve false positive 929 for initialization of pointer to auto |
| PCLP-3504 | -libdir/+libdir options not matching directories specified with a trailing slash |
| PCLP-3519 | False positive 977 for call to overloaded operator with Boolean parameter |
| PCLP-3520 | False positive 586 for lambda with deduced return type |
| PCLP-3593 | nonnull attribute incorrectly removes preexisting function argument semantics |
| PCLP-3599 | False positive 586 for template argument substitution using typedef |
| PCLP-3613 | Messages inappropriately suppressed following fatal error |
| PCLP-3679 | Resolve an error in the handling of a semantic expression in specific situations involving a left operand of zero and a return semantic identifier |
| PCLP-3692 | Faulty interaction between -u/–u options and -env_save/-env_restore/-env_push/-env_pop |
| PCLP-3694 | Message 9067 no longer issued for dependent-sized arrays or arrays with non-external linkage |
| PCLP-3696 | Resolve internal error or crash that could occur when analyzing invalid code containing syntax errors within a condition variable declaration |
| PCLP-3725 | Restore parameterized suppression state when -env_restore/-env_pop options are used outside a module |
| PCLP-3790 | Resolve false positive 8528 (au-barr.lnt) for anonymous enumerations outside of typedefs |
| PCLP-3798 | Resolve internal error involving compound assignment as operand to comparison |
| PCLP-2135 | False negative 9003 for static variables |
| PCLP-2391 | False positive instance of message 2434 for dereference of pointer lexically subsequent to but excluded from control flow after an earlier conditional deallocation within a loop |
| PCLP-2603 | Message 767 is disabled |
| PCLP-2614 | False positive instance of message 522 for call to const member function but has external side-effects |
| PCLP-2999 | False negative instance of message 1536 involving address of private array element |
| PCLP-3004 | Message 1565 does not report the status of sub-objects within data members of class type |
| PCLP-3190 | False negative instance of message 9011 when loop exit point count is exceeded only with consideration of exit points within nested loops |
| PCLP-3197 | False negative instance of message 9034 involving compound assignment |
| PCLP-3213 | False positive implicit conversion messages when an explicit cast expression is used as a template argument for a non-type template parameter |
| PCLP-3223 | The undocumented +fil flag is not implemented |
| PCLP-3242 | Conditional operator expression where both the second and third operand are of the same enumeration type not treated as resulting in a value of that enumeration type in C for the purposes of message 641 |
| PCLP-3652 | Crash when using recent versions of the Asio C++ Library / Boost.Asio |
| PCLP-3660 | False positive instance of message 776 for addition between int and long of equal size |
| PCLP-3787 | Potential syntax error when using std::get<T>(std::variant) or std::holds_alternative from the Visual Studio 2019 standard library |
| PCLP-3599 | False positive 586 for template argument substitution using typedef |
| PCLP-3546 | Improved support for AUTOSAR Rule A18-0-3 |
| PCLP-3520 | False positive 586 for lambda with deduced return type |
| PCLP-2744 | Added support for CERT recommendation CON01-C |
| PCLP-3558 | Disassociate inappropriate messages from CERT C guideline MSC12-C |
| PCLP-2762 | Detect dangerous accesses between threads |
| PCLP-2757 | Detect inconsistent mutex locking order |
| PCLP-2753 | Detect dangerous accesses between threads |
| PCLP-3788 | Improve handling of exceptions to rules supported by message 970 |
| PCLP-3757 | Remove references to non-existent message 9089 in au-misra2.lnt and au-misra3.lnt |
| PCLP-3647 | Clarify support for MISRA guidelines regarding assistance in identification of binary pointer operations |
| PCLP-3605 | Support for MISRA C 2012 AMD-2 |
| PCLP-3192 | Improvements to message 9020 (header file name with non-standard character sequence) |
| PCLP-3189 | False negative 839 |
| PCLP-2891 | Member hiding messages are no longer used to support MISRA C++ Rule 2-10-2 |
| PCLP-2589 | Message 9035 will now report any use of VLAs |
| PCLP-3197 | False negative instance of message 9034 involving compound assignment |
| PCLP-3190 | False negative instance of message 9011 when loop exit point count is exceeded only with consideration of exit points within nested loops |
| PCLP-964 | Add thread information to internal error and crash messages |
| PCLP-1757 | Recognize explicit initialization using default constructor and add flag to consider implicit initialization using an explicitly declared default constructor to be an explicit initialization |
| PCLP-1820 | Support message 506 and improve support for message 717 |
| PCLP-2298 | New support for AUTOSAR A5-0-2 and M5-0-14 guidelines, improved MISRA C++ support for Rules 5-0-13 and 5-0-14 |
| PCLP-2973 | Support for AUTOSAR Rule A12-8-7 |
| PCLP-2975 | Support for AUTOSAR Rule A13-2-3 |
| PCLP-2996 | Stack usage information now appears in deterministic order |
| PCLP-3085 | Update documentation regarding manual configuration without pclp_config |
| PCLP-3101 | Performance improvements for range-based suppressions |
| PCLP-3117 | Suppress messages issued inside of explicitly defaulted function bodies |
| PCLP-3119 | Message 981 no longer issued for template instantiations |
| PCLP-3146 | Updated example used in description of message 1544 |
| PCLP-3170 | Improvements to const variable exemption opt-in interpretation |
| PCLP-3171 | Update description of message 1919 |
| PCLP-3172 | Update description of message 1930 |
| PCLP-3184 | Parameterized suppression and +paraminfo support for supplemental messages 894 and 897 |
| PCLP-3185 | Document that messages 893, 894, and 897 are immune to direct one-line suppressions |
| PCLP-3188 | Remove listing for unused supplemental message 890 |
| PCLP-3193 | Improved handling of array arguments for message 857 |
| PCLP-3194 | Improvements to support for A5-2-2 |
| PCLP-3199 | Clarify that message 9075 operates on objects, not functions |
| PCLP-3202 | Message 829 is now issued for multiple inclusion of headers employing #pragma once and is now applicable to precompiled headers |
| PCLP-3203 | Correct typo in description of message 9134 |
| PCLP-3206 | Improve support for reporting block scope function declarations |
| PCLP-3207 | Improve handling of static storage duration variables when calling functions with the assert semantic |
| PCLP-3212 | Report implicit conversions occurring via member-init-list initialization. |
| PCLP-3214 | Improved support for MISRA C 2004 Rule 12.8 |
| PCLP-3218 | Message 9019 more accurately reports declarations appearing before an #include directive |
| PCLP-3241 | Added new section describing rules related to processing of parameterized suppressions |
| PCLP-3258 | Remove non-existent message 2409 from product documentation |
| PCLP-3269 | Improved support for MISRA C 2012 Rule 11.2 |
| PCLP-3289 | Update description for +fai |
| PCLP-3303 | Added new/missing guidelines for CERT C |
| PCLP-3311 | Support non-variadic functions with printf and scanf semantics |
| PCLP-3320 | Suppress messages issued during expansion of assert macro |
| PCLP-3341 | Flexible refinements to tracking of implementation-defined pointers converted from integral values |
| PCLP-3359 | Consider shift operators to be bitwise operators for the purpose of rule 5-0-21 |
| PCLP-3368 | Improve support for Visual Studio 2019 update 16.4 |
| PCLP-3374 | Improved support for IAR compiler keywords in generated compiler configurations |
| PCLP-3381 | New message 2536 warns when invalid character encoding is detected in a string literal |
| PCLP-3382 | Add section documenting supported encodings of input files |
| PCLP-3384 | Convert relative paths in include options generated from cl.exe /I and -I options into absolute paths when producing a project configuration using the pclpvscfg.exe utility |
| PCLP-3386 | Add description and example for the non_custodial argument semantic |
| PCLP-3389 | Add note regarding C++ language standard compiler options for Visual Studio when generating a Visual Studio compiler configuration |
| PCLP-3394 | Incorrect use of +rw and -rw_asgn more gracefully handled |
| PCLP-3396 | Use application directory as default location when requesting selection of pclp_config.py in pclpvscfg |
| PCLP-3397 | Add default filenames to pclpvscfg dialogs |
| PCLP-3400 | Improve handling of bit-fields with qualified types |
| PCLP-3406 | Enable use of pclpvscfg with 64-bit versions of Microsoft Visual Studio 2012, 2010, 2008, and 2005 |
| PCLP-3407 | Allow language standard options to be controlled by option environments |
| PCLP-3411 | New behavior for messages referring to internal buffers during module processing |
| PCLP-3423 | Improved compatible type handling for message 857 |
| PCLP-3433 | Add automated configuration support and documentation for MetaWare ccac |
| PCLP-3450 | Improve selection of ctype.h functions over macros |
| PCLP-3467 | Remove outdated limitation from description of +emacro |
| PCLP-3468 | Include -efunc and +efunc in "How Suppression Options are Applied" section. |
| PCLP-3471 | Correct typo in an instance of message 2425 |
| PCLP-3480 | New support for AUTOSAR17 Rule A5-5-1 |
| PCLP-3481 | Support for AUTOSAR Rule A7-1-3 |
| PCLP-3483 | Support for AUTOSAR Rule A13-5-1 |
| PCLP-3495 | Exclude static local variables from stack usage |
| PCLP-3502 | Update Open Source Declarations |
| PCLP-3506 | Add new +fls flag to control handling of static local variables after external calls |
| PCLP-3509 | Update descriptions of several messages |
| PCLP-3513 | Inclusion of PC-lint Plus functional safety certificates and Best Practices document |
| PCLP-3552 | Value of static variable lost when assigning return value of an unwalked function |
| PCLP-3555 | Treat zero-length arrays as incomplete arrays for Value Tracking |
| PCLP-3565 | Improvements to compiler configurations generated for GCC by pclp_config |
| PCLP-2812 | False positive 9045 for union definition |
| PCLP-2885 | False positive 550 for variables captures by reference in a lambda |
| PCLP-3093 | Resolve an issue that could manifest as an incomplete entry in the stack usage report |
| PCLP-3145 | Improve handling of messages 438 and 838 within loops |
| PCLP-3176 | Fix false negative for message 2427 |
| PCLP-3179 | Fix missing location when reporting a declaration of main with the inline or constexpr specifier |
| PCLP-3180 | Improve stack usage for switch statements |
| PCLP-3181 | Resolve an issue where union type punning could result in undesirable uninitialized access messages |
| PCLP-3183 | Missing message 2707 |
| PCLP-3187 | False negative 451 and 967 for header with controlling macro but no standard include guard. |
| PCLP-3215 | Resolve false positive 473 for address-of array subscript |
| PCLP-3224 | Resolve an issue where members of structures within unions could incorrectly be reported as deallocated |
| PCLP-3229 | Resolve a potential crash involving self-referential constructor initializers |
| PCLP-3234 | Incorrect option syntax in IAR compiler configurations generated with pclp_config |
| PCLP-3294 | Do not issue 1537 when returning a function pointer |
| PCLP-3310 | False positive 593 for custodial pointer always closed/freed in if/else statement |
| PCLP-3324 | Resolve an internal error involving arrays of incomplete types |
| PCLP-3358 | Resolve a missed potential Boolean inference for a ternary operator condition when processing a C module |
| PCLP-3364 | Resolve false negatives involving interval relational-or-equal comparisons |
| PCLP-3376 | Fix possible crash after diagnosing a conflict between a return value allocated by an expression produced by a macro expansion involving the built-in __LINE__ macro and a return value semantic |
| PCLP-3378 | Fix missing declaration issues when naming declarations with identifiers that were subject to -rw options in the presence of lint comments |
| PCLP-3380 | Message 725 incorrectly issued as a warning |
| PCLP-3388 | Corrected processing of implied this arguments (’t’) within -function option. |
| PCLP-3392 | Disable line breaks in Keil μVision ARMCC configuration to resolve IDE navigation issues with long lines |
| PCLP-3434 | Fix an internal error that could occur when a template applies the parameter pack size operator to a non-type template parameter pack of references |
| PCLP-3442 | False positive 542 when assigning negative values to bitfields |
| PCLP-3465 | +efreeze/++efreeze incorrectly prevents parameterized message enabling options from targeting frozen messages |
| PCLP-3466 | Ignore duplicate parameterized suppression options involving partially frozen message sets |
| PCLP-3469 | Crash when processing user-defined function semantic employing invalid argument index |
| PCLP-3470 | False positive 542 for bitfields of unsigned enumeration type |
| PCLP-3472 | Fix invalid UNC path expansion when using %ENCLOSING_DIRECTORY% within a file located on a Windows network drive. |
| PCLP-3507 | Fix false positive 438 during specific walk |
| PCLP-3543 | Corrected typos in au-autosar.lnt |
| PCLP-3547 | Incorrect handling of friend declarations in class templates |
| PCLP-3561 | Removed inappropriate supporting message for MISRA C++ Rule 6-6-3 |
| PCLP-3570 | Mesage 3702 not issued when message 3402 suppressed |
| PCLP-2135 | False negative 9003 for static variables |
| PCLP-3196 | A function that can indirectly call itself recursively where the recursive call occurs in the call chain below a recursive call to a different function may be labeled "calls recursive" |
| PCLP-3213 | False positive implicit conversion messages when an explicit cast expression is used as a template argument for a non-type template parameter |
| PCLP-3221 | False positive 413 for conditional evaluation of dereference of pointer inferred to be non-null on the right side of a logical AND expression in the condition of an if statement within a for statement prior to which the pointer had been known to be null |
| PCLP-3223 | The undocumented +fil flag is not implemented |
| PCLP-3242 | Conditional operator expression where both the second and third operand are of the same enumeration type not treated as resulting in a value of that enumeration type in C for the purposes of message 641 |
| PCLP-3260 | Message 440 is disabled |
| PCLP-3519 | False positive 977 for call to overloaded operator with Boolean parameter |
| PCLP-3483 | Support for AUTOSAR Rule A13-5-1 |
| PCLP-3481 | Support for AUTOSAR Rule A7-1-3 |
| PCLP-3480 | New support for AUTOSAR17 Rule A5-5-1 |
| PCLP-3206 | Improve support for reporting block scope function declarations |
| PCLP-3194 | Improvements to support for A5-2-2 |
| PCLP-2975 | Support for AUTOSAR Rule A13-2-3 |
| PCLP-2973 | Support for AUTOSAR Rule A12-8-7 |
| PCLP-2298 | New support for AUTOSAR A5-0-2 and M5-0-14 guidelines, improved MISRA C++ support for Rules 5-0-13 and 5-0-14 |
| PCLP-3450 | Improve selection of ctype.h functions over macros |
| PCLP-3269 | Improved support for MISRA C 2012 Rule 11.2 |
| PCLP-3214 | Improved support for MISRA C 2004 Rule 12.8 |
| PCLP-3359 | Consider shift operators to be bitwise operators for the purpose of rule 5-0-21 |
| PCLP-3206 | Improve support for reporting block scope function declarations |
| PCLP-3170 | Improvements to const variable exemption opt-in interpretation |
| PCLP-2298 | New support for AUTOSAR A5-0-2 and M5-0-14 guidelines, improved MISRA C++ support for Rules 5-0-13 and 5-0-14 |
| PCLP-1806 | Resolve false positives related to initialization of members of returned class objects |
| PCLP-1835 | Internal error A9BE308E (100829) related to use of definition options and precompiled headers |
| PCLP-1972 | False positive 1762 |
| PCLP-2036 | Recognize when unconditional transfer of control by nested switch statement contributes to unreachability of statement subsequent to enclosing switch statement |
| PCLP-2227 | Name mangling error with no category for C compound literal within C++ template argument resolved |
| PCLP-2459 | False positive 981 for cast to _Bool in C |
| PCLP-2521 | Respect redundant list initialization in C++17 mode |
| PCLP-2560 | Warning levels supported in -zero_err and +zero_err options |
| PCLP-2598 | False positive 1762 for call to non-const function in member expression |
| PCLP-2621 | Don’t report issue 522/714/729/759/765 for static local symbols |
| PCLP-2624 | Message 967 not always issued when expected |
| PCLP-2626 | Message 1790 should consider indirect base classes |
| PCLP-2649 | False positive 527 for jump statements within control structures within switch statement bodies |
| PCLP-2663 | False positive 9103 involving function templates |
| PCLP-2668 | Message 882 issued as a warning instead of informational |
| PCLP-2669 | Presentation issues with messsages 682 and 882 |
| PCLP-2670 | Missing conditional return inference when returning ternary expression |
| PCLP-2703 | Assertion failure or crash when certain headers are included with a precompiled header |
| PCLP-2704 | Message 2454 doesn’t work as expected with -etype |
| PCLP-2726 | Corrected handling of function parameters for clash detection |
| PCLP-2742 | Don’t warn when calling fflush with null pointer |
| PCLP-2772 | Hang or internal error triggered by nested use of -header, lint comments, -indirect, and -d |
| PCLP-2778 | False positive precision-related messages involving shift by non-constant |
| PCLP-2786 | Don’t issue 715 for functions with skipped bodies |
| PCLP-2793 | Don’t complain about use of regparm attribute |
| PCLP-2795 | Correct handling of ~operator in semantics specifications |
| PCLP-2806 | False positive 1927 for classes containing anonymous unions |
| PCLP-2818 | False positive 850 for rvalue reference to for index variable |
| PCLP-2844 | Corrected imposter.c for old C compilers |
| PCLP-2869 | Buffered output streams not flushed before redirection on Windows |
| PCLP-2894 | Hang when instantiating member function of class template with dependent return value needed for deduction of auto return type in dependent caller in Microsoft compatibility mode |
| PCLP-2897 | pclp_config now properly handles options specifying lowercase macros |
| PCLP-2900 | False positive 734 (loss of precision) for excessive precision of cast result |
| PCLP-2921 | The fff flag is now ON by default for Windows builds |
| PCLP-2925 | Incorrect -append option in au-misra3.lnt |
| PCLP-2959 | Message 1932 includes correct base class |
| PCLP-2986 | False positive 9106 for imaginary literal suffixes |
| PCLP-2998 | Improve parsing of constant expressions whose evaluation involves side effects |
| PCLP-3016 | Move incompatible pointer type message from 2450 to 2449 |
| PCLP-3021 | Difference between base configurations for 32-bit and 64-bit versions of Visual Studio 2013 and 2015 |
| PCLP-2559 | Correct description of -zero_err and +zero_err options |
| PCLP-2561 | Document behavior of pattern consisting entirely of wild card characters |
| PCLP-2583 | Document variants of message 686 for suspicious -i options |
| PCLP-2634 | Updated description for 1564 |
| PCLP-2641 | Improve documentation for +fpe |
| PCLP-2804 | Update MISRA support tables |
| PCLP-2811 | Improve 701-704 message documentation |
| PCLP-2822 | Messages 1526 and 1714 not issued for private members |
| PCLP-2825 | New MISRA Support Summaries |
| PCLP-2860 | Clarified meaning of global for messages 757 and 758. |
| PCLP-2864 | Clarify message description for 579 |
| PCLP-2883 | Diagnose suspicious uses of late multi-threaded output redirection options |
| PCLP-2898 | Update and distinguish descriptions of 1764 and 1746 |
| PCLP-2899 | Correct the citations for messages 901, 1731, and 1906. |
| PCLP-2905 | Update descriptions of -save and -restore options |
| PCLP-2907 | Extend suspicious -i warnings to –i |
| PCLP-2911 | Document the fact that suppression options are not retained in PCH files. |
| PCLP-2916 | Correct decidable classification for MISRA C 2012 Rule 11.2 |
| PCLP-3003 | Update description of message 1774 |
| PCLP-3010 | Version and beta status added to the manual |
| PCLP-744 | Display current size options when printing help |
| PCLP-1344 | Allow return and goto to replace break in switches for MISRA |
| PCLP-1351 | Message 9106 now includes full MS integer literal suffix |
| PCLP-1944 | Updates and clarifications to message 912 |
| PCLP-1973 | Improve handling of forward goto |
| PCLP-2005 | Improvements to handling of list initialization for message 3701 |
| PCLP-2107 | Value Tracking for compound literals |
| PCLP-2215 | Ignore framework directory suffix in clang search include path for pclp_config on macOS |
| PCLP-2250 | Improve support for chained cleanup |
| PCLP-2270 | Message 778 no longer issued inside of static assertions |
| PCLP-2415 | Extend inferencing to variables within arithmetic expressions |
| PCLP-2418 | Improved support for IAR compilers |
| PCLP-2461 | Reduce false positives in Value Tracking related to implications of if statement conditions within called functions during loop iteration |
| PCLP-2462 | Consider use of value through reference to different type |
| PCLP-2470 | Report 445 (re-use of for index variable) for arbitrary levels of nesting |
| PCLP-2485 | Add optional string parameter to message 9022 |
| PCLP-2511 | Improved handling of references to structures for message 1764 |
| PCLP-2536 | Improved Value Tracking for unions |
| PCLP-2568 | pclp_config extracts values of Microsoft C/C++ compiler macros |
| PCLP-2586 | Reduced false positives of "not used" messages involving variables read and written during loops |
| PCLP-2587 | Improve calculation of unsigned addition of inferred values with indeterminate overflow |
| PCLP-2597 | New variable/function/maro parameter for message 774 |
| PCLP-2607 | Refinements to template handling for message 2701 |
| PCLP-2610 | Messages 548 and 9013 no longer issued in function template instantiations |
| PCLP-2622 | Messages 759 and 765 now issued for single modules |
| PCLP-2627 | Message 9098 softened for casts |
| PCLP-2628 | Enhancements to messages 907 and 908 |
| PCLP-2631 | Improved error message for unknown compiler name for pclp_config |
| PCLP-2632 | Expand scope of messages 449 and 2434 |
| PCLP-2635 | Clarify text of message 9079 |
| PCLP-2638 | Harmonize text for variants of message 648 |
| PCLP-2639 | Fix missing "C++" text in message descriptions for -help and -dump_messages options. |
| PCLP-2658 | Message 9233 strengthened for shifts by a known negative value |
| PCLP-2659 | Message 981 is not issued for conversions to class type |
| PCLP-2664 | Refinement to message 1762 for closure members |
| PCLP-2672 | Issues message 305 when failing to open a file |
| PCLP-2697 | Improved message text for -dump_messages and -dump_message_list |
| PCLP-2698 | Support for the __has_unique_object_representations type trait intrinsic |
| PCLP-2729 | Support _Float128 for GCC configurations generated with pclp_config. |
| PCLP-2773 | Message 866 no longer issued for dependent expressions |
| PCLP-2784 | Allow reuse of indirect files in different option environments |
| PCLP-2803 | References to non-existent messages removed from MISRA author files |
| PCLP-2805 | Added reference to MISRA C 2012 AMD-1 Directive 4.14 to au-misra3-amd1.lnt |
| PCLP-2809 | Sort the ’could be const’ messages by source location |
| PCLP-2813 | SGML terminating tags are now written when exiting from a fatal error |
| PCLP-2821 | Warn about call through null function pointer |
| PCLP-2823 | Messages 1931 and 9169 no longer issued for deleted constructors |
| PCLP-2833 | Improved exception handling diagnostics |
| PCLP-2835 | Add space in text of message 1705 |
| PCLP-2839 | False negative 1762 due to calling static member function without visible definition |
| PCLP-2846 | Extend situations where message 464 is reported |
| PCLP-2848 | Suppress 1746 for small trivially-copyable types |
| PCLP-2868 | Warn about default constructors defaulted outside their class |
| PCLP-2875 | Exempt friend declarations from message 1784 |
| PCLP-2886 | Improved analysis of ’new’ expressions for 1556 and 1764 |
| PCLP-2889 | Improved ’pclp_config’ support for older versions of Visual Studio |
| PCLP-2896 | Version check in MISRA configuration files |
| PCLP-2906 | Diagnostic when -restore is used without -save |
| PCLP-2927 | Extend implicit assignment context messages to in-class non-static data member initializers |
| PCLP-2928 | Support -isystem for GCC and clang compilers. |
| PCLP-2937 | Multiple improvements for handling of warning levels. |
| PCLP-2940 | Ignore single redundant unreachable break at end of switch case for message 527 by default |
| PCLP-2942 | Message 9168 no longer reported for declarations with incomplete types |
| PCLP-2960 | Message 1932 no longer issued for forward declarations or template instantiations |
| PCLP-2962 | Reduced memory usage |
| PCLP-2977 | Multiple improvements for message 1915 |
| PCLP-2984 | Improved performance and reduced memory usage when using many -append and -deprecate options or MISRA configuration files |
| PCLP-2989 | Improved performance |
| PCLP-3002 | Update default C++ standard from C++14 (-std=c++14) to C++17 (-std=c++17) |
| PCLP-3014 | Issue 1774 for comparison via equality operators |
| PCLP-3042 | Improvements to +fsf flag and semantic monikers for constructors and destructors of class templates |
| PCLP-2060 | Support MISRA C 2012 AMD-1 Rule 21.18 |
| PCLP-2537 | Treat members of different tagless structures as appearing in separate name spaces for 9046 |
| PCLP-2777 | Message 931 removed from MISRA C 2012 rule 13.2 |
| PCLP-2791 | Improved support for MISRA C 2012 Rules 17.1, 21.4, 21.5, and 21.10 |
| PCLP-2797 | Support MISRA C 2012 Rules 22.4 and 22.6 |
| PCLP-2807 | Message 774 added to MISRA C 2012 rule 2.2 |
| PCLP-2914 | Improved support for MISRA C 2012 Rule 11.1 |
| PCLP-2915 | Improved support for MISRA C 2012 Rule 22.1 |
| PCLP-2918 | Improved support for MISRA C 2012 Rule 14.4 |
| PCLP-2919 | Improved support for MISRA C 2012 Rule 15.7 |
| PCLP-2920 | Consider Boolean strong type hierarchy beyond the Boolean strong type itself for Boolean essential type classification |
| PCLP-2926 | Improved handling of Boolean MISRA C 2012 essential type for false and true macros |
| PCLP-2700 | Message 9114 (MISRA C++ 5-0-3) now reports violations of the rule even when only the underlying type is converted and the actual type is not |
| PCLP-2705 | Improved support for MISRA C++ Rule 7-1-1 |
| PCLP-2741 | Improved support for MISRA C++ Rule 5-2-4 |
| PCLP-2774 | Correct false positive 1536 messages |
| PCLP-2798 | Improved support for compound assignment operators for rules 5-0-3 and 5-0-6 |
| PCLP-2832 | Improved support for MISRA C++ Rule 3-9-3 |
| PCLP-2877 | Support digit-related exceptions for character arithmetic |
| PCLP-2880 | Ignore all extern "C" declarations for message 9141 (7-3-1) |
| PCLP-2881 | New interpretation option to restrict definition of constant expression for the purposes of underlying type determination |
| PCLP-2892 | Only report casts in one direction for MISRA C++ 2008 rule 5-2-8 |
| PCLP-2908 | Improved support for MISRA C++ Rule 7-1-2 |
| PCLP-2939 | Improved support for MISRA C++ 2008 Rule 4-10-2 |
| PCLP-2943 | Improved support for MISRA C++ Rule 2-13-2 |
| PCLP-2022 | Add +ffi to format large integer values and ranges relative to nearby integer limits |
| PCLP-2173 | Introductory support for CERT C |
| PCLP-2193 | Track values of objects of pointer-to-member type in Value Tracking |
| PCLP-2247 | Add +fcv to exempt parameters whose only reference was a cast to void from messages indicating that they could be made const |
| PCLP-2333 | Add options to accommodate relative paths in the imposter utility |
| PCLP-2477 | Support for 0.NaN and 0.Infinity |
| PCLP-2483 | New message 2666 - expression with side effects passed to unexpanded parameter of macro |
| PCLP-2484 | New message 9501 - preprocessing directive in call to function |
| PCLP-2488 | New message 973 - unary operator in macro not parenthesized |
| PCLP-2503 | New message 823 - definition of macro ends in semi-colon |
| PCLP-2562 | New message 9040 - possible struct hack declaration for member |
| PCLP-2571 | New message 9502 - multi-statement macro is not enclosed in monocarpic do-while loop |
| PCLP-2577 | New message 3419 - in-class initializer for static data member of floating type is a GNU extension |
| PCLP-2625 | Support for BARR-C:2018 (previously Netrino) coding guidelines |
| PCLP-2699 | New semantics and messages for signals |
| PCLP-2713 | New random number generator and seed function messages with new noliteral argument semantic |
| PCLP-2739 | Built-in function semantics for dangerous Microsoft Windows API IsBadPtr functions |
| PCLP-2789 | New non_custodial semantic |
| PCLP-2830 | New +fup and +fuu flags to clear values after reporting them as null or uninitialized |
| PCLP-2836 | New message 695 - inline function declared without storage-class specifier |
| PCLP-2888 | Visual Studio 2019 support for pclp_config |
| PCLP-2910 | New message 1423 - reinterpret_cast has undefined behavior |
| PCLP-2929 | New AUTOSAR C++ configuration file |
| PCLP-2948 | New message 1756 - variable has static/thread storage duration and non-POD type |
| PCLP-2949 | New message 9215 and added parameter to message 715 |
| PCLP-2950 | New message 9414 - ’typeid’ used on expression with side effect |
| PCLP-2951 | New message 9181 - switch contains fewer than two non-default switch cases |
| PCLP-2952 | New message 2618 - non-type specifier appears after a type |
| PCLP-2954 | New message 9418 - enum does not have an explicitly specified underlying type |
| PCLP-2955 | New message 9419 - enum is not a scoped enumeration |
| PCLP-2956 | New message 9415 - ’auto’ variable initialized using list initialization |
| PCLP-2957 | New message 9420 - bitfield does not have unsigned integer or explicitly unsigned enumeration type |
| PCLP-2958 | New message 9432 - class inherits from multiple non-abstract classes |
| PCLP-2963 | Support deprecation of preprocessor directives |
| PCLP-2966 | New message 9422 - virtual function should specify exactly one of ’virtual’, ’override’, or ’final’ |
| PCLP-2967 | New message 9421 - virtual function overrides function and is not marked with ’override’ or ’final’ |
| PCLP-2968 | New message 1779 - virtual function introduced in class which is marked as ’final’ |
| PCLP-2970 | New message 9437 - non-POD class defined with ’struct’ keyword |
| PCLP-2971 | New message 9435 - symbol declared as friend |
| PCLP-2974 | New messages to diagnose literal operators and their use |
| PCLP-2976 | New message 9436 - symbol declared with array type in C++ module |
| PCLP-2983 | New message 2414 |
| PCLP-3015 | Visual Studio configuration GUI for pclp_config |
| PCLP-3017 | pclp_config support for Microchip MPLAB X |
| PCLP-3018 | pclp_config support for Keil μVision ARMCC |
| PCLP-3019 | New %ENCLOSING_DIRECTORY% built-in environment variable |
| PCLP-3044 | New CERT C configuration file |
| PCLP-1904 | False positive 9007 |
| PCLP-1957 | False positive 915/917 for enumeration constants in C mode |
| PCLP-1997 | False positive 9168 for static array member defined outside of class |
| PCLP-2026 | Non-library regions incorrectly treated as library |
| PCLP-2099 | Constrain ranges of inferenced values in Value Tracking messages |
| PCLP-2120 | Support the ’l’ strong type flag |
| PCLP-2158 | False positive 1539 for template |
| PCLP-2183 | Improved recognition of conditional variable modification for Value Tracking |
| PCLP-2190 | Respect softeners for pointer differences when assigning or joining strong types |
| PCLP-2192 | Result of bitwise OR not always calculated correctly |
| PCLP-2196 | False positive 5731 for __thread in template |
| PCLP-2219 | Improvements to handling of list initialization |
| PCLP-2226 | False positive 527 for conditional break in switch case |
| PCLP-2229 | False positive 438 for variable used in implicit construction of std::initializer_list |
| PCLP-2238 | False positive 733 when assigning to pointer parameter in specific walk |
| PCLP-2241 | False positive 9042 and 9082 for switch statements with leading default case |
| PCLP-2246 | Message 967 not suppressed for -header files using library suppressions |
| PCLP-2249 | Errors issued for uninstantiated templates |
| PCLP-2258 | False positive 958 for structure with union members |
| PCLP-2261 | False negative 737 for equality/relational tests |
| PCLP-2262 | False positive 9090 when throwing a temporary object |
| PCLP-2268 | False positive 587 for expressions with bitwise operations on types with different size or signedness |
| PCLP-2271 | False positive 2434 for specific circumstances involving delete and return |
| PCLP-2278 | Change 1997 to 1998 in set of permitted C++ years for -std |
| PCLP-2279 | False positive 1529 for potentially unresolved overloaded operator& |
| PCLP-2289 | Message 491 incorrectly issued for invalid name in macro definition |
| PCLP-2315 | Crash when using -h2 with empty caret indicator |
| PCLP-2366 | Improved recognition of side effects from std::initializer_list initialization |
| PCLP-2400 | Message 611 no longer issued for implicit conversions |
| PCLP-2417 | Only emit "Resuming file" verbosity messages with -v<integer> |
| PCLP-2431 | Correct handling of -efunc and +efunc options |
| PCLP-2445 | False positive 641 for parenthesized enumeration constant in C mode |
| PCLP-2447 | False positive 743 (negative character constant) in template instantiation |
| PCLP-1059 | Support for MISRA C 2012 Rule 20.12 |
| PCLP-1061 | Support for MISRA C 2012 Rule 9.2 |
| PCLP-1066 | Support for MISRA C 2012 Rule 17.5 |
| PCLP-2176 | Improved support for MISRA C 2012 Rule 11.7 |
| PCLP-2443 | Improved support for MISRA C 2012 Rule 11.9 |
| PCLP-2455 | Support for MISRA C 2012 Rule 5.1 |
| PCLP-2456 | Support for MISRA C 2012 Rule 5.2 |
| PCLP-2457 | Support for MISRA C 2012 Rule 5.4 |
| PCLP-545 | Added support for MISRA C++ Rule 15-3-6 |
| PCLP-1953 | Implement MISRA’s amended wording for balancing binary operators in MISRA C++ |
| PCLP-2263 | Improved support for MISRA C++ Rule 6-4-3 |
| PCLP-2266 | Improved support for MISRA C++ Rule 6-4-6 |
| PCLP-2454 | Void pointers no longer reported for Rule 5-2-7 |
| PCLP-41 | Support for 16-bit and 32-bit bytes |
| PCLP-1659 | Extended exemptions for message 785 |
| PCLP-1761 | Consider base class fields for message 1401 |
| PCLP-1875 | Error 4374 suppressed for Visual Studio configurations |
| PCLP-1885 | Tracking of multiple initialization variables in a for statement |
| PCLP-1887 | Message 571 no longer issued for enumeration types |
| PCLP-1895 | Soften 1938 for static-local and const-initialized variables |
| PCLP-1948 | Better recognition of lint comments |
| PCLP-2119 | Extend the strong type ’z’ softener to casts of null pointer constants |
| PCLP-2133 | Honor the value of the fcc flag option for summary output |
| PCLP-2147 | Improved Value Tracking inferencing for booleans |
| PCLP-2160 | -fiz no longer affects initialization of booleans |
| PCLP-2180 | Issue 716 and not 774 for while (1) and while (true) |
| PCLP-2181 | Only issue 1768 once per function |
| PCLP-2182 | Extend value tracking depth for constexpr functions |
| PCLP-2189 | Improved diagnostics for misuse of -a and -s options |
| PCLP-2218 | Suppress message 948 for if constexpr conditions |
| PCLP-2233 | Don’t issue 587, 685, or 837 in instantiations |
| PCLP-2237 | New warnings for improper use of -i |
| PCLP-2252 | Support -d/-u options within files included via -indirect and improve behavior of combining -env_push/-env_pop, -env_save/-env_restore, and -d/-u options |
| PCLP-2253 | Supplemental messages for compiler errors |
| PCLP-2254 | Improved diagnostics for misuse of -strong boolean options |
| PCLP-2260 | Unhelpful 746 when calling built-in atomic intrinsics in dependent contexts |
| PCLP-2265 | Only issue message 9139 once per switch |
| PCLP-2273 | Documentation improvements for VS2017 pclp_config configuration |
| PCLP-2302 | Added symbol parameter to 9018 |
| PCLP-2304 | Consider tags used in __builtin_offsetof to be referenced |
| PCLP-2307 | Support testing for non-null before deleting pointer |
| PCLP-2311 | Improved validation of the +group option |
| PCLP-2312 | Improved location information for message 9049 |
| PCLP-2328 | Improved error handling for pclp_config |
| PCLP-2339 | Add operator argument to message 514 |
| PCLP-2346 | Message 857 softened for casts |
| PCLP-2388 | Recognize std::addressof for 1529 |
| PCLP-2398 | Suppressing 893 with -estring |
| PCLP-2401 | Suppress message 1506 in final classes |
| PCLP-2412 | Improved value tracking inferencing |
| PCLP-2413 | Name shadowing involving enumeration constants now reported by 578 |
| PCLP-2416 | Increased scope of message 445 |
| PCLP-2420 | False positive 9107 for member function template instantiated in a module |
| PCLP-2438 | Message 1773 now issued for references |
| PCLP-2446 | Issue 9045 messages in a deterministic order |
| PCLP-2469 | Message 750 no longer reported when used in short-circuited defined operator |
| PCLP-2478 | Support for response files introduced by compiler-specific option |
| PCLP-1052 | Added -idlen and message 621 |
| PCLP-1128 | New Precision and Pre-determined Predicate Implementations |
| PCLP-1853 | Message 1757 added |
| PCLP-1994 | New -misra_interpret option to apply alternative interpretations to MISRA Rules |
| PCLP-2177 | New fcw flag option to control whether 438 considers writes from called functions |
| PCLP-2239 | New diagnostic for tentative array definition without a size in C mode |
| PCLP-2267 | Improved C++17 Support |
| PCLP-2275 | New fgl flag option to control the use of GNU line markers in preprocessed output |
| PCLP-2280 | New fmt flag option to enable matching of template template-arguments to compatible templates |
| PCLP-2283 | New fmx flag allows disabling of C++ member access control |
| PCLP-2284 | New fzd flag to enable C++14 sized deallocation |
| PCLP-2357 | New -format_category option to configure category representation |
| PCLP-2387 | Add \e escape sequence for inserting ASCII escape into format strings |
| PCLP-2428 | New message 2662 reports out of bounds pointer from scalar pointer |
| PCLP-2508 | New message 2650 reports when a constant is out of range for part of a compound comparison operator |
| PCLP-2272 | Update entry for messages 413 and 613 to include symbol |
| PCLP-2282 | Better explain how lint comments in macro definitions are handled |
| PCLP-2301 | Add section about using backslash escapes in options |
| PCLP-2396 | Add version information to option and flag option tables |
| PCLP-2429 | Add section documenting minimum and recommended OS/hardware requirements |
| PCLP-2430 | Add section describing how message suppression options are applied |
| PCLP-2439 | Correct notes about +emacro, +elibmacro, and +elibsym |
| PCLP-2444 | Add note about new -efile behavior to "What’s new" section |
| PCLP-1454 | Improved handling of goto for read/write analysis |
| PCLP-1483 | Single line suppressions not always honored when location is macro name |
| PCLP-1512 | Improved handling of -emacro |
| PCLP-1711 | Don’t create null inferences when comparing to the this pointer |
| PCLP-1826 | False positive 9107 for member instantiations |
| PCLP-1841 | Message 923 not issued for reinterpret_cast |
| PCLP-1894 | False positive 641 for parenthesized enumeration constant in C mode |
| PCLP-1908 | False positive 838 for multiple early returns |
| PCLP-1919 | Improved recognition of volatile assignment as an impurity |
| PCLP-1909 | False positive 705 for %jd conversion specifier with intmax_t defined as long long |
| PCLP-1910 | Statements without side effects not diagnosed in specific circumstances |
| PCLP-1914 | Message 826 no longer issued for dynamic_cast |
| PCLP-1920 | Improved custodial semantics for reference parameters |
| PCLP-1921 | Custodial semantic not properly applied for operator call expressions |
| PCLP-1942 | False positive 568/775 for reference member variables |
| PCLP-1943 | False positive 568 for reference types |
| PCLP-1945 | Message 916 now only reports pointer-to-pointer conversions |
| PCLP-1955 | Improperly suppressed messages from library headers |
| PCLP-1960 | Messages 900 and 870 not issued when using 2 passes |
| PCLP-1974 | Support for bidirectional pre-loop inference test direction |
| PCLP-1993 | False positive 1924 for substituted non-type template parameters of enumeration type |
| PCLP-1995 | Reset position indicator character when using -h2 |
| PCLP-2001 | Improved handling of pointer parameters for message 733 |
| PCLP-2013 | Message 2702 now issued regardless of suppression state of 528 |
| PCLP-2014 | False positive 449 |
| PCLP-2015 | False positive 9048 for use of enum constant non-type template parameter |
| PCLP-2029 | Improved handling of angle brackets in message 773 |
| PCLP-2068 | Extraneous supplemental message |
| PCLP-2069 | Don’t analyze assembly statements |
| PCLP-2073 | Crash when using allocation semantics in user-defined function semantics |
| PCLP-2077 | Incorrect null inference for equality check against non-null pointer |
| PCLP-2078 | Consistent diagnosis of null pointers for array indexing and pointer arithmetic |
| PCLP-2101 | False positive 9176 for implicit conversion of this pointer to base class pointer |
| PCLP-2102 | False Positive 743 for wide character constants |
| PCLP-2105 | False positive 527 after switch containing conditional return |
| PCLP-2106 | Improved Value Tracking of structures in C |
| PCLP-2108 | False positive 1751 for macro defined in header that expands to anonymous namespace in main source file |
| PCLP-2125 | Remove message 504 from MISRA author files |
| PCLP-2127 | False negative 1506 |
| PCLP-2128 | Add POD semantics to Standard C library functions |
| PCLP-2140 | False positive 1415 for pointers to void |
| PCLP-2151 | False positive type alias differences for function template specializations |
| PCLP-2153 | Internal error for improper user-defined function return allocation semantics |
| PCLP-2155 | False positive 9034 involving compound assignment |
| PCLP-2156 | Message 9003 no longer issued for local static variables |
| PCLP-2157 | False positive 909 and 910 for certain casts |
| PCLP-2159 | False positive 1727 for member function of class template specializations |
| PCLP-2163 | Strong type of enumerator not recognized when typedef uses incomplete type |
| PCLP-2169 | False positive 758 for implicit instantiations |
| PCLP-2179 | Internal error related to message 9027 when issued in C++ code |
| PCLP-2191 | Structure member initialization status not properly merged after being initialized in both branches of an if statement in C mode |
| PCLP-2203 | Improved Value Tracking of unknown function parameters of structure type |
| PCLP-2208 | Message 1415 issued for type-dependent arguments |
| PCLP-1874 | Improved support for MISRA C 2004 Rule 13.1 |
| PCLP-1882 | Improved support for MISRA C 2004 Rules 11.1 and 11.2 |
| PCLP-1929 | Improved handling of MISRA C 2004 Rule 10.1 |
| PCLP-2009 | Improved support for MISRA C 2004 Rule 10.1 |
| PCLP-2018 | Improved support for MISRA C 2004 Rules 6.1 and 6.2 |
| PCLP-2037 | Improved support for MISRA C 2004 Rules 6.1/6.2 and MISRA C++ Rule 5-0-11 |
| PCLP-1037 | Improved support for MISRA C 2012 Rule 20.8 |
| PCLP-1528 | Update messages used for Rule 11.7 in au-misra3.lnt |
| PCLP-1776 | Improved support for MISRA C 2012 Rule 10.3 |
| PCLP-1778 | Improved support for MISRA C 2012 Rule 11.4 |
| PCLP-1779 | Improved support for MISRA C 2012 Rule 11.4 |
| PCLP-1780 | Improved support for MISRA C 2012 Rule 11.4 |
| PCLP-1781 | Improved support for MISRA C 2012 Rule 11.5 |
| PCLP-1879 | Improved support for MISRA C 2012 Rule 10.1 |
| PCLP-1880 | Improved support for MISRA C 2012 Rule 10.1 |
| PCLP-1881 | Improved support for MISRA C 2012 Rule 10.2 |
| PCLP-1898 | Improved support for MISRA C 2012 Rule 10.7 |
| PCLP-2017 | Do not classify wide character constants as having essentially character type in MISRA C 2012 |
| PCLP-2030 | Improved support for MISRA C 2012 Rule 18.8 |
| PCLP-2198 | Incorrect MISRA essential type calculation for modulo operations |
| PCLP-2220 | Improved support for MISRA C 2012 Rule 11.5 |
| PCLP-1952 | Improved support for MISRA C++ Rule 5-3-4 |
| PCLP-1989 | Improved support for MISRA C++ Rule 3-1-1 |
| PCLP-2031 | Corrections to au-misra-cpp.lnt for MISRA C++ Rules 17-0-1 and 17-0-2 |
| PCLP-2117 | Improved support for MISRA C++ Rule 7-3-6 |
| PCLP-2150 | False positive 9113 for compound assignment |
| PCLP-2170 | Increased scope of "related types" for message 9176 |
| PCLP-1768 | Improved handling when all paths return in if statement |
| PCLP-1790 | Improved handling of placement new for read-write analysis |
| PCLP-1795 | Improved handling of mutable members in side effects determination |
| PCLP-1799 | Improved handling of user-defined return value semantics |
| PCLP-1800 | Improved handling of enumeration constants of strongly typed enums |
| PCLP-1813 | The +efreeze option now always prevents single-line suppressions |
| PCLP-1899 | Don’t issue 1564 when integer literal is converted/cast |
| PCLP-1911 | Assume side-effect when passing pointer offset to non-const pointer parameter |
| PCLP-1932 | Prototype information now included in message 1411 |
| PCLP-1934 | "Could be const" messages softened for typedefs from macros |
| PCLP-1951 | Assume modification of initialized arguments when using -fai |
| PCLP-1956 | Clarified message text for message 956 |
| PCLP-1965 | Add symbol information to message 9103 |
| PCLP-1967 | Issue message 564 for volatile reads |
| PCLP-1969 | Improved handling of deallocation tracking in if statements |
| PCLP-1970 | False positive 773 for named casts |
| PCLP-1971 | Exempting logical not from message 1564 |
| PCLP-1976 | Improved performance for next-statement suppressions |
| PCLP-1980 | 1938 no long issued for constexpr variable |
| PCLP-1985 | Improved handling of structures initialized by functions with using fai |
| PCLP-1987 | Improved output format for enum essential types in essential type messages |
| PCLP-1992 | False positive 522 in __asm statement |
| PCLP-2002 | Message 785 softened for aggregate initialization with extra braces |
| PCLP-2006 | Recognition of aggregate initialization evaluation order in C++11 |
| PCLP-2024 | Support flexible array members in base classes |
| PCLP-2039 | Clarifications to text of message 9128 |
| PCLP-2050 | Improved pclp_config support for macro definition that contain spaces and quotes in Visual Studio configurations |
| PCLP-2074 | Improved Value Tracking handling of while statement condition variable declarations |
| PCLP-2075 | Improve application of dynamic allocation semantics |
| PCLP-2081 | Message 1793 no longer issued for functions with an rvalue reference qualifier |
| PCLP-2088 | Improved handling of premature termination due to stack overflow |
| PCLP-2098 | Improved Value Tracking for unconditional assignment in both branches of an if statement |
| PCLP-2152 | Improved handling of friends and templates for 9004 |
| PCLP-2161 | Improved handling of misspelled parameterized suppression options |
| PCLP-2164 | Add symbol parameter to null pointer dereference messages when available |
| PCLP-2166 | Message 904 issued multiple times for repeated declarations |
| PCLP-2178 | Suppress message 1788 for variables marked as unused |
| PCLP-2185 | Improved error handling for invalid size and alignment options |
| PCLP-2195 | Improved handling of possibly null information in user-defined return semantics |
| PCLP-2200 | Improved handling of buffers used with placement new |
| PCLP-2205 | Improved support for C++17 constexpr if |
| PCLP-2214 | Added env-html.lnt, env-html.js, and env-xml.lnt files |
| PCLP-1531 | Support for IAR compilers and IAR Workbench |
| PCLP-1889 | New message 3450 - subtracting member from ’this’ pointer |
| PCLP-2051 | New fbe flag option and backslash escapes |
| PCLP-2054 | Added support for MISRA C 2012 AMD-1 Rule 12.5 |
| PCLP-2055 | Added support for MISRA C 2012 AMD-1 Rule 21.13 |
| PCLP-2057 | Added support MISRA C 2012 AMD-1 Rule 21.15 |
| PCLP-2058 | Added new message (9098) to support MISRA C 2012 AMD-1 Rule 21.16 |
| PCLP-2059 | Add partial support for MISRA C 2012 AMD-1 Rule 21.17 |
| PCLP-2083 | Allow the C++17 fallthrough attribute to suppress messages 616 and 825 |
| PCLP-2132 | The -help option now responds to message numbers |
| PCLP-2201 | New exit command added to Value Tracking debugger |
| PCLP-1926 | Add "Flow of Execution" section (1.2) to Reference Manual |
| PCLP-1949 | Fix runaway text in Reference Manaual |
| PCLP-1966 | Update description of message 9049 |
| PCLP-2008 | Reference the flf flag in the Value Tracking section of the Reference Manual |
| PCLP-2012 | Improvements to descriptions of select error messages |
| PCLP-2016 | fwc flag removed from manual |
| PCLP-2049 | Miscellaneous documentation corrections |
| PCLP-2172 | Clarify that -egrep doesn’t match text injected via +typename |
| PCLP-2210 | Update description of message 916 to remove MISRA C++ support statement |