Understand 6.1 build notes
← All versions
Build 1096
6.1, Feb 7, 2022
New Features
- Add "ignore inactive code" option to RECOMMENDED_06, CPP_C025, HIS_03 MISRA04_14.4, A6-6-1, MISRA12_15.1
- Add 4 new AUTOSAR checks
- Add 7 new CPP checks
- Add 3 new MISRA 2008 checks
- Add 1 new MISRA 2004 check
- Add 1 new MISRA 2012 check
- Add "Show Node Children By Default" option to dependency graphs.
- Add an option to Ada call graphs to hide standard library entities.
- Added support for Java records.
Bug Fixes
- Fix for TypeError in M6-4-4, MISRA08_6-4-4, CPP_C030, MISRA04_15.1, MISRA12_16.2
- Fix internal dependency graphs to show only internal dependencies (broken in last build).
- Fixed bug where type text did not include all nested generic formal parameters and array brackets.
Build 1095
6.1, Jan 30, 2022
New Features
- Add 3 Autosar Rules to CodeCheck.
- Add 1 new CPP CodeCheck.
- Restore editor scroll bar unsplit icons.
- For architecture cluster graphs, other than the dependency graph, change "Show Edges Between Children Default" to default to true because having it false cuts off trees at internal edges.
- Change the kind of destructor calls referenced from delete statements to 'implicit'.
- Avoid creating virtual call references to qualified and trivially non-virtual calls.
- Change the kind of constructor calls referenced from new statements without parentheses to remove the 'implicit' qualifier.
- Treat Ada packages in cluster call/calledby trees as expandable.
Bug Fixes
- Fix bug in cluster graphs where, given an edge A->B inside of a collapsed cluster, edges out of B were not shown.
- Fix inability to change the setting for 'Save comments associated with entities' in c++ strict parse mode.
- Fixed invalid syntax error on some dynamic import expressions.
Build 1094
6.1, Jan 25, 2022
New Features
- Delete icon missing from first page of new project wizard.
- Add 38 CPP CodeChecks.
- Add 1 MISRA 2008 CodeCheck.
- Add 10 AUTOSAR CodeChecks.
- Add the following functions to the Java API:
- Reference::kind()
- Ent::parent()
- Ent::depends()
- Ent::dependsby()
- Ent::ents()
- Reference::isforward()
- Ent::filerefs()
- Add switches to several und commands:
- For the metrics command, add a -summary switch to print summary count metrics to standard out.
- For the add and remove commands, add an -analzyelater switch to import files to skip the automatic analysis of changes.
- Avoid creating a "typed" reference to the base class in constructor base class initializers.
Bug Fixes
- Fix regression in showing all graph variants in the popup menu
- Update wording on refactor "failed to rename result(s)" and fix case when two references at the same location caused one to appear failed.
- Fix refactor rename bug where a second rename operation (without reparsing) would fail on any lines right after lines affected by the first rename operation.
- For the analyze command, add -errors, -warnings, and -accuracy to change what's output to standard out.
- Fix failure to decode files containing a BOM.
Build 1093
6.1, Jan 16, 2022
New Features
- Add 15 AUTOSAR checks
- Add 1 MISRA04 check
- Add 4 MISRA08 checks
- Add 2 MISRA12 checks
- Add 6 CPP checks
- Update documentation for Understand 6.1 release
- Added support for C# 10 lambda syntax changes.
Bug Fixes
- Fixed a bug in MISRA08_6-5-4
- Fix bug where max file size parsed limit was applied to import files preventing large compile_commands.json files from being used.
- Fixed bug where line count metrics were sometimes incorrect for classes and files.
- Fixed error parsing 'helper for' clauses that use a dotted name to reference the targeted type.
Build 1092
6.1, Jan 9, 2022
New Features
- Added 18 CodeChecks to the AUTOSAR standard.
- Scale graph png/jpg exports that are too big instead of clipping them.
- Add Comparison Treemaps Graph
- Refactor/ rename feature now shows locations that failed to replace in search results window.
- Add the ability to create databases for a git commit to und.
- Added the ability to pin projects on the welcome page.
- Added an option to disable chat.
- Hide open source projects when sample projects are hidden.
- Improve Git Comparison project handling of directories that exist only in Git.
- Show improved Information Browser info about entities from static definitions in include files.
- Added support for C# 10 field references within a property pattern.
- Added support for C# 10 'global using' directives.
- Added support for C# 10 'record struct', 'record class', and with expressions.
- Added 'const param' kind and 'use' references for named parameter association.
Bug Fixes
- Fix regression in dragging and dropping from the entity filter into the Architecture Browser.
- Fix failure to import architectures from XML files with Windows (CRLF) line endings.
- Fixed name for AUTOSAR A0-1-1
- Fixed typo in RECOMMENDED_09
- Fixed RECOMMENDED_02 that should be looking at ADA files but were not.
- Fixed a bug with the welcome page search results being lost on project open.
- Fix for welcome page tooltips when multiple projects have the same name.
- Fixed bug where references to property names in some property subpatterns were not recorded.
- Fixed bug where 'using static' of an enumeration type did not allow non-qualified references to the enumeration constants.
Build 1091
6.1, Dec 12, 2021
New Features
- Add 12 AUTOSAR checks.
- Added Exception Catch and Throw relations.
- Improve pascal parameter display in Information Browser and hover text.
- For Pascal/Delphi, changed kind of call relation for failed overload resolution from 'ambiguous call' to 'possible call' to match terminology in other languages.
- Changed the 'base' relation to 'implicit base' on relations where the parent/base class is not explicitly specified.
- Added 'exception catch' reference.
Bug Fixes
- Fix regression in detecting Perl scripts from the "Run Command" prompt.
- Fix regression in remembering the most recently selected entity filter
- Fix for Scitools recommended checks 'file too long', 'function too long', and 'overly complex function' not working with Java projects.
- Fix missing modification indicator in captured windows.
Build 1090
6.1, Dec 4, 2021
New Features
- Add a Comparison Projects panel to manage multiple comparison projects.
- Add the ability to create comparison projects directly from your git repository.
- Detect modified files in submodules in the CodeCheck git file filter.
- Reenable the Java API.
- Added 15 AUTOSAR checks.
- Update control flow node kinds. Perl and Python API scripts may require updating.
- Add support for web "possible call & callby" relations in the IB and classic graphs.
- Changed non-resolved overload references to be ambiguous calls to 'unknown ambiguous' functions instead of calls to the first overload.
Build 1089
6.1, Nov 26, 2021
New Features
- Removed 'passive implicit' nodes from control flow graphs.
- Added 13 AUTOSAR checks.
Bug Fixes
- Fix entity filter context menu popping up at the wrong location.
- Editor: Fix error dialog loop after canceling print to file on Windows.
- Fix Data Members Simplified graph variant not expanding some typedefs.
- For Python, fixed error in control flow graphs for while statements with 'else' parts.
- For Delphi, fixed bug where an overload link was not made from a method in a child class to an overloaded method in the parent class unless the method in the parent class had an 'overload' attribute.
- Fix severe performance issue when using compiler configuration files.
Build 1088
6.1, Nov 15, 2021
New Features
- Accept --include_path, --define and --preinclude flags as synonyms for -I, -D and -include respectively in compile_command.json import
- Added 11 AUTOSAR checks.
Bug Fixes
- Fix regression in showing the context menu for entities in the entity filter.
- Fix long option parsing issue in compile_commands.json import
- Fix invalid resolve for types in anonymous namespaces
- Fixed problems with class pattern attribute name matching in Python 3.10 match statements.
- Fixed incorrect control flow graph and complexity metrics for match statements without default cases.
- Fixed syntax error on some uses of '/' in lambda argument lists.
- Fixed invalid syntax error on some match statements.
Build 1087
6.1, Nov 8, 2021
New Features
- Remove support for the Java API and Ecplise plugin since neither has been updated in some time
- Show CodeCheck results while the checks are still running, rather than waiting until it is complete.
- Add 12 new AUTOSAR checks
- Added support for some of the new Python 3.10 match statement syntax
Bug Fixes
- Fix potential deadlock when canceling an analysis that's nearly finished
- Fix diff view binary check to handle multibyte characters
Build 1086
6.1, Oct 31, 2021
New Features
- Allow viewing all references instead of only dependent references for any non-file entity.
- Don't show references in the left-hand tree.
- Remove the configuration panel and move options into the toolbar and hamburger menu. Available grouping options have changed.
- Add a "Direct" grouping for direct references.
- Added 13 more AUTOSAR checks.
- Convert unused object reports into entity filters.
- Show message when contents are binary.
- Instant Search Results and Find in Files Results are both shown in the same Results window.
- Find in Files Results Options are supported for Instant Search Results.
- Made changes to support some new Python syntax in return, yield, and with statements.
- Added support for Python 3.9 decorators using expressions.
Bug Fixes
- UML Class Diagram truncates member object values at 128 characters to prevent crashes caused by labels that were too long.
- Fix member object references to the wrong instance.
- Fixed syntax error on some 'for each' statements.
- Fixed parser errors on some new f-string and with statement syntax.
Build 1085
6.1, Oct 23, 2021
New Features
- Added seven AUTOSAR checks.
- Add support for comment collection in Fortran source files.
- Add support for comment collection in Python source files.
Bug Fixes
- Fix 'Unused Program Units' report for strict c to include unused operators and unused overloaded functions.
- Fix crash when fuzzy parser attempts to modify a sample project.
- Fixed bug where methods with setter, getter, and deleter decorators were listed as possible declarations for ambiguous references to the same named property.
- Fixed bug where methods decorated with staticmethod were not identified as static in the entity kind.
Build 1084
6.1, Oct 18, 2021
New Features
- Update Help Documentation
- Added 8 new AUTOSAR checks
- Restore behavior lost in b1064 where opening an old database will automatically prompt to reanalyze it.
- Removed '<>' from short name of generic classes and interfaces.
- Improved handling of overload resolution involving generic classes and interfaces from dll files.
- Added support for Python 3.8 positional only parameter syntax and f-string '=' syntax.
- Made changes to handle Python 3.8 named expression syntax.
- For Web/Typescript, made a change to handle import statements with a leading non-alphanumeric character at the start (e.g. import '@src/module'). The leading character is removed, and the remaining name is searched for in the directories specified in the Module Paths option.
Bug Fixes
- Fixed syntax errors on raw f-strings.
Build 1083
6.1, Oct 9, 2021
New Features
- Add a control flow graph interface to the Perl & Python API's.
- Added six more AUTOSAR checks.
- Added 'typed' relations and type text for type hints.
Bug Fixes
- Fix dot export of the control flow graph from the api truncating text after less than signs.
- Fixed bug where the control flow graph was incorrect when a 'goto' target was a label on a loop statement.
- For Web/Typescript, fixed syntax error on some arrow functions where the return type has generic parameters.
- For Web/Typescript, fixed syntax error on use of 'get' and 'set' as class property names.
- For Web/Typescript, fixed syntax error on tagged function calls where the called function has generic parameters.
Build 1082
6.1, Oct 2, 2021
New Features
- Added two more AUTOSAR checks.
- Compare Folders keep selection when merging from the bottom panel.
- For Javascript, added line and column numbers to control flow nodes that don't have associated text (for example, 'else', and 'end-if' nodes).
Bug Fixes
- API draw function fix case where some graph options were not case insensitive.
- Fix macro display in Compare Entities.
- Fixed bug where the short name of a submodule which is a child of another submodule was incorrect.
- Fixed bug where some subroutines with interface declarations in a module and implementation in a submodule resulted in 'unresolved' entities.
- Fixed syntax errors on use of string literal concatenation when used as a macro parameter.
- Fixed syntax error in some 'associate' statements.
- Fix failure to record use/return/etc. references for unary increment/decrement operators used with array subscript operators (e.g. return var[i]++;)
Build 1081
6.1, Sep 30, 2021
New Features
- Updated embedded python to 3.9.7.
- Added 6 more AUTOSAR checks.
- Dependency checks are available and can be found under the CodeCheck top level menu.
- Link Mode / Compile Mode option to allow dependencies in C/C++ to go to the header file instead of the definition file. This allows dependencies to unresolved entities.
- Better support for multiply defined entities.
- Architectures with files use file dependency rules, respecting link/compile mode.
- Architectures with a mix of entity kinds now use an exception style calculation meaning a directly tagged entity won't contribute to a directly tagged parent's dependencies.
- Dependency browser right tree in smart mode now matches what dependency calculation returns instead of always grouping by definition file.
- Dependency graphs updated to use variants, cluster variant available for classes and files.
- Butterfly architecture dependency graph is available again.
- Progress icon added to graph toolbar, graphs that are currently generating show the progress icon instead of a busy cursor.
Bug Fixes
- Fix regression in showing some search queries (like dates) in the instant search results window.
- Fix c api lexer so that character and string literal tokens include any provided prefix
Build 1080
6.1, Sep 26, 2021
New Features
- Added five more AUTOSAR checks.
- Add architecture import/export to the Architecture Browser context menu button.
- Disable C++ operator name keywords in MSVC emulation mode.
Bug Fixes
- Fixed bug where use of MyBase to call an overloaded virtual method resulted in a virtual call instead of a non-virtual call.
- Fix potential crash when one of the project definition files is changed on disk during analysis.
- Fixed bug where some uses of character literals in macro expansions caused syntax errors.
- Fixed bug causing syntax errors in some select-type statements.
Build 1079
6.1, Sep 18, 2021
New Features
- Added a dozen more AUTOSAR checks.
Bug Fixes
- Fix for backslash in AUTOSAR M2-13-2 name.
- Fixed bug in free format and fixed format Fortran files where nested macro definitions could cause syntax errors.
- Fixed bug where virtual methods loaded from dll files were not recognized as virtual.
- Fixed bug where virtual methods loaded from dll files were not recognized as virtual.
- Fix invalid macro definition scopes in files containing functions expanded from macros.
Build 1078
6.1, Sep 11, 2021
New Features
- Update minor version number to 6.1
- Update Qt to 5.15.2
- Update OpenSSL to 1.1.1k
- Update Python to 3.96
- Users that need software rendered graphics can choose to bypass their video card by setting the environment variable QT_OPENGL=software.
- Added ~100 AUTOSAR checks and adding more every week.
- Change visual studio import msbuild search to use all lowercase instead of MSBuild.
- Added Graph Window toolbar visibility controls under Tools->Options->Graphs, similar to the editor toolbar options.
- Added graph variants resulting in a lot more graphs. Simplified, cluster, compare, and relationship versions for tree-like graphs. More Butterfly Graphs. More relations supported as cluster graphs from architectures and files.
- Simpler butterfly graph edge indicators.
- Updated Architecture Graph.
- Rich text labels available in more graphs.
- Annotations in labels instead of only in hover text for most graphs.
- Graph undo/redo handles many more features.
- Graph positioning (artistic style) 2.
- Minimap click navigation.
- For Basic, Improve handling of override information in Calls, CalledBy, Overrides, OverriddenBy and References in the Information Browser fields.
- Improve handling of override information in Calls, CalledBy, Overrides, OverriddenBy and References in the Information Browser fields.
- Improve handling of override information in Calls, CalledBy, Overrides, OverriddenBy and References in the Information Browser fields.
- Added virtual routine kinds, virtual calls, and override relations to handle type-bound procedures.
- Add support for Fortran override handling in Information Browser.
- Improve handling of override information in Calls, CalledBy, Overrides, OverriddenBy and References in the Information Browser fields.
- Improve handling of override information in Calls, CalledBy, Overrides, OverriddenBy and References in the Information Browser fields.
- Added overrides/overriddenby relations for methods.
- Change the qualified name of fields of anonymous structs to include the qualified name of the struct
- Change the name of anonymous records with an associated typedef to the name of the typedef.
- For Javascript, added overrides/overriddenby relations for methods.
Bug Fixes
- Fix Codecheck Ignores and configuration not being preserved after upgrade
- Fixed EntityFilter and EntityLocator to include parameter text when sorting names.
- Fixed EntityLocator to display parameter or other format options immediately when changed on a non-sorted column.
- Fix rich text background color issue when in dark mode.
- Fix crash on some drag and drop operations within the architecture browser.
- Fix crash and failure to duplicate empty architectures.
- Fix context menu for the classic Compare Butterfly graph.
- Fix crash on search in the project browser after it has been closed and reopened.
- For Basic, Fixed bug where the override relation for an overriding method went to the first parent method that was explicitly declared with the ‘Overridable’ attribute instead of to the direct parent method.
- For Visual Basic, fixed bug where some virtual function calls were recorded as non-virtual.
- For Visual Basic, fixed bug where calls using MyBase were sometimes recorded as ‘virtual’ calls.
- For Visual Basic, fixed bug where virtual calls that were forward references were recorded as non virtual.
- Fixed bug where invocations using multi-level parent type references (e.g. obj%parent1%parent2.meth) were not being processed correctly.
- Fixed bug where including a file that contains a module definition resulted in ‘unresolved’ entities.
- Fix call/calledby Information Browser fields for Pascal virtual calls.
- Fixed syntax errors on binary literals that contain quotes (e.g. B’0101’).
- Fixed bug where some calls between Pascal and C were not recorded.
- Fixed bug in Compaq/OpenVMS Pascal where same named entities in different modules had combined references.
- Fixed parser hang on some Compaq/OpenVMS pascal include files.
- Fixed bug where some entities defined in Compaq/OpenVMS pascal include files were unresolved.
- Fixed project configuration option for Pascal Linkage Prepend Text not being properly saved to the project.
- Fixed bug where ‘Assume nearest matches’ option did not consider import statements that occurred inside of functions. Also, fixed some symbol lookup issues where a local variable was given the same name as an imported module.
- Fix failure to add entities for multiple local variables declared in a single statement inside of lambda functions
- Fix the declaration reference kind of non-trivial constructors declared default.