Understand 7.2 build notes
Build 1252
7.2, May 20, 2026New Features
Command Line
- Add
undcommand support for configuring External Generative AI
Bug Fixes
Rust
- Fix nested function qualified names
Shared Tasks
- Shared Tasks CSV now matches the graph's lockset-based classification
Build 1251
7.2, May 8, 2026New Features
Localization - Japanese
- Updated some Japanese translations
Bug Fixes
Architectures
- Fix crash when an architecture with an AI overview is deleted and a new architecture annotation or AI overview is created.
- Fix problem where AI overview text never updated even though generation finished.
Compilers
- Fix IAR EWRX compiler config to handle __nested correctly, resolve parse errors in IAR type_traits, and support use of __code, __data16, __data24, __data32, __sfr, and __vtab in predefined macro definitions.
- For IAR EWRX, fix parse errors for __no_init const variables and void main() in C++ projects
- Fix analysis error when targeting MinGW
Editor
- Fix crash on editor unsplit
Python API
- Fix potential hang in the Python API when a plugin graph accesses the comparison database
Project Config
- Fix namedroots in portability mode
Project Import
- Fix handling of relative forced-include files in MSBuild project import
Und Command Line
- "und ai" command now works even when the "Enable AI" setting is disabled.
Known Issues
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- Print Preview may not function correctly
Build 1250
7.2, Apr 28, 2026New Features
AI
- System prompt is now translatable
Annotations
- Annotation hover text author color now based on the theme colors.
Architectures
- Added combo box that allows users to change architecture filter
CodeCheck Checks
- Add new MISRA12_12.4: Evaluation of constant expressions should not lead to unsigned integer wrap-around
- Add new MISRA12_12.1: The precedence of operators within expressions should be made explicit
- Add new MISRA12_DIR_4.9: A function should be used in preference to a function-like macro where they are interchangeable
- Add checks ADA95_5.1.1, ADA95_5.1.2, ADA95_5.1.3, ADA95_5.1.4, ADA95_4.1.1, ADA95_4.1.2, ADA95_4.1.8
- Add new PEP8_05: Source File Encoding
- Add new PEP8_04: Blank lines
- Add new PEP8_03: Line break before a binary operator
- Add check ADA95_4.3.1: Using Exceptions to Help Define an Abstraction
- Add check ADA95_4.2.3: Restricting Visibility
- Add new PEP8_02: Maximum Line Length
Translations - Chinese
- Restore translations for CodeCheck Configuration, Graph, Interactive Report, Metric, and Architecture in the Global Search context.
Translations - Japanese
- Updated translations
Perl API
- Added a deprecation warning for the Perl API and updated documentation links.
Project Setup
- Add support for expanding response files in compile_commands.json import
Plugins/Metric
- Include assign references in call tree metrics. Add "assign" and "assignby" to the ref type strings alongside "call" and "callby" so that call tree and call-by tree metrics also traverse assignment references.
Und - Command Line
- Allow running dependency checks without a CodeCheck license.
- Allow import of settings via Und without a license.
Bug Fixes
Graphs
- Fix crash when dragging non-automatic tag to designer graph.
CodeCheck Checks
- Fix false positive in EXP46-C with braceless loop bodies
Und - Command Line
- Fix Und metric settings list/set that are failing on unanalyzed projects.
Plugins
- Shared task plugin now distinguishes different mutexes when checking protection
CodeCheck
- Fix CodeCheck file filter not restoring automatic architectures correctly.
Known Issues
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus license server
- Print Preview may not function correctly
Build 1249
7.2, Apr 13, 2026New Features
AI
- Added a new setting that lets you choose the Context Window Size for the Local AI provider. This controls how much code/content the local AI server can consider at once.
CodeCheck Checks
- Added new PEP8_01: Tabs or spaces
- Added new ADA95_3.3.7: Marker Comments
- Added new PEP8_00: Indentation
- Added new ADA95_3.2.2, ADA95_3.2.5, ADA95_3.2.6
- Added new MISRA25_19.3: A union member shall not be read unless it has been previously set
- Added new MISRA25_11.11: Pointers shall not be implicitly compared to NULL
- Added new ADA95_3.1.2: Numbers
- Added new ADA95_2.1.7: Pagination
- Added new ADA95_2.1.2: Indentation
- Added new MISRA25_8.19: There should be no external declarations in a source file
- Added new MISRA25_8.18: There shall be no tentative definitions in a header file
Info Browser
- Added Fortran Renames/Renamed By IB fields, Python Alias For/Aliases fields, and C++/C#/Basic Aliases fields for renamed entities
Localization
- Updated Chinese translations
- Updated Japanese translations
Bug Fixes
CodeCheck
- Fixed CodeCheck file filter not restoring automatic architectures correctly
CodeCheck Checks
- Fixed False positives in MISRA23_10.3 when using cast to void
AI
- Fixed
tokens per secondoutput from server. Once a request completes it will provide the tps for it.
Graphs
- Fix vdx graph export
Language - VHDL
- Fixed group declaration parse error
Language - Fortran
- Fixed a bug where some type-bound function references created 'unresolved' entities
Global Search
- Fixed crash during resolve while typing into Global Search Bar
Known Issues
- Nodelock license fails to validate running API on Rocky 8.10
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus license server
- Print Preview may not function correctly
Build 1248
7.2, Apr 1, 2026New Features
Architecture Designer
- Prevent automatic changes to entities when editing the Architecture Outline; newly created parent architectures no longer include borrowed entities.
Interactive Reports
- Add iReport that generates table of unused functions
Und (Command Line)
- Add
-enabledoptionsoption to show enabled license options
New CodeCheck Checks
- MISRA25_21.24: The random number generator functions shall not be used
- MISRA25_11.8: A conversion shall not remove any const, volatile or _Atomic qualification from the type pointed to by a pointer
- MISRA25_17.12: A function identifier should only be used with either a preceding &, or with a parenthesized parameter list
- MISRA25_20.13: A line whose first token is # shall be a valid preprocessing directive
- MISRA25_13.6: The operand of the sizeof operator shall not contain any expression which has potential side effects
- MISRA25_21.12: The standard header file shall not be used
- MISRA25_1.5: Obsolescent language features shall not be used
- MISRA25_18.7: Flexible array members shall not be declared
- MISRA25_9.1: The value of an object with automatic storage duration shall not be read before it has been set
- MISRA25_8.14: The restrict type qualifier shall not be used
- MISRA25_21.17: Use of string handling functions shall not result in accesses beyond the bounds of the objects referenced by their pointer parameters
- MISRA25_18.2: Subtraction between pointers shall only be applied to pointers that address elements of the same array
- MISRA25_13.5: The right hand operand of a logical && or || operator shall not contain persistent side effects
- MISRA25_1.4: Emergent language features shall not be used
- MISRA25_18.10: Pointers to variably-modified array types shall not be used
- MISRA25_18.3: The relational operators >, >=, < and <= shall not be applied to expressions of pointer type except where they point into the same object
- MISRA25_8.5: An external object or function shall be declared once in one and only one file
- MISRA25_12.2: The right hand operand of a shift operator shall lie in the range zero to one less than the width in bits of the essential type of the left hand operand
- MISRA25_18.6: The address of an object with automatic or thread-local storage shall not be copied to another object that persists after the first object has ceased to exist
- MISRA25_7.6: The small integer variants of the minimum-width integer constant macros shall not be used
- MISRA25_20.10: The # and ## preprocessor operators should not be used
- MISRA25_6.2: Single-bit named bit-fields shall not be of a signed type
- MISRA25_11.5: A conversion should not be performed from pointer to void into pointer to object
- MISRA25_11.1: Conversions shall not be performed between a pointer to a function and any other type
- MISRA25_21.20: The pointer returned by certain standard library functions shall not be used following a subsequent call
- MISRA25_21.21: The Standard Library function system shall not be used
- MISRA25_22.11: A thread that was previously either joined or detached shall not be subsequently joined nor detached
- MISRA25_22.12: Thread objects, thread synchronization objects, and thread-specific storage pointers shall only be accessed by appropriate functions
- MISRA25_22.7: The macro EOF shall only be compared with the unmodified return value from functions capable of returning EOF
- MISRA25_23.7: A generic selection that is expanded from a macro should evaluate its argument only once
- MISRA25_21.19: The pointers returned by certain Standard Library functions shall only be used as if they have pointer to const-qualified type
- ADA95_2.1.5: Parameter Alignment
- ADA95_3.1.3: Capitalization
- ADA95_3.2.1: Names
- ADA95_3.3.2: File Headers
- ADA95_3.3.3: Program Unit Specification Headers
- ADA95_3.3.4: Program Unit Body Headers
- MISRA25_21.25: All memory synchronization operations shall be executed in sequentially consistent order
- MISRA25_22.5: A pointer to a FILE object shall not be dereferenced
- MISRA25_23.1: A generic selection should only be expanded from a macro
- MISRA25_23.3: A generic selection should contain at least one non-default association
- MISRA25_23.8: A default association shall appear as either the first or the last association of a generic selection
- MISRA25_22.19: A condition variable shall be associated with at most one mutex object
Bug Fixes
Localization - Japan
- Fix incorrect text in Japanese installer
Settings
- Fix encoding setting to allow case-insensitive UTF-8 input
Language - Fortran
- Fix bug where references to properties made with renamed entities were not recorded correctly
Language - Web
- Fix missing type references in TypeScript
- Fix missing RenameCall and Call Indirect references when calling via renamed imports
CodeCheck Checks
- Fix false positive in MISRA12_17.3 when headers are not in the project
Known Issues
- Und settings command may not work with unanalyzed changes in project
- Nodelock license fails to validate running API on Rocky 8.10
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus license server
- Print Preview may not function correctly
Build 1247
7.2, Mar 19, 2026New Features
Build Highlights
- Initial start time on Windows is greatly improved
- Expanded CodeCheck coverage with new MISRA 2025 and ADA Style Guide rules to improve standards compliance
- Faster, smoother VS Code experience with improved navigation, richer syntax highlighting, and enhanced Rust support
- Smarter JavaScript analysis with more accurate handling of object literals and exports
- Improved AI workflow with automatic detection of the best available model in LM Studio
- Quickly identify unused Python code with a new “Unused Functions” filter
New CodeCheck Checks
- ADA95_2.1.1: Horizontal Spacing
- ADA95_2.1.8: Number of Statements Per Line
- ADA95_2.1.9: Source Code Line Length
- ADA95_3.1.1: Use of Underscores
- MISRA25_DIR_4.10: Precautions shall be taken in order to prevent the contents of a header file being included more than once
- MISRA25_DIR_4.8: If a pointer to a structure or union is never dereferenced within a translation unit, then the implementation of the object should be hidden
- MISRA25_DIR_4.12: Dynamic memory allocation shall not be used
- MISRA25_DIR_4.14: The validity of values received from external sources shall be checked
- MISRA25_DIR_5.3: There shall be no dynamic thread creation
- MISRA25_DIR_4.5: Identifiers in the same name space with overlapping visibility should be typographically unambiguous
- MISRA25_DIR_4.6: typedefs that indicate size and signedness should be used in place of the basic integer types
- MISRA23_6.8.1: An object shall not be accessed outside of its lifetime
- MISRA23_0.1.1: A value should not be unnecessarily written to a local object
- MISRA25_DIR_4.4: Sections of code should not be "commented out"
AI
- Find the best installed model in LM Studio with the Auto option
VS Code Extension
- Add hover information for Rust (beta)
- Add options to speed up navigation
- Add syntax-highlighting
Language - Web/Javascript
- Write Object Literal entities for object literals that are default exports
- Add Components IB field for javascript object literals
Filter
- Add 'Unused Functions/Subprograms' entity filters for Ada, Fortran, Jovial, Pascal, Rust and Javascript
General
- Improved reparsing old version databases, so only languages that need reparsing are parsed
Editor
- Add setting for auto-complete delay
Plugins
- Add references to edges in Shared Tasks graph
Bug Fixes
AI
- Probable fix for an undaiserver error introduced in build 1246 when using an openai provider such as LM Studio.
CodeCheck
- Remove CPP_V008 which was a duplicate of CPP_U004
- Improve accuracy of "Missing Parentheses in Macros" (MISRA04_19.10, MISRA08_16-0-6, MISRA23_19.3.4, M16-0-6, CPP_PR038)
- Remove CPP_P009 which was a duplicate of CPP_PR038
Architecture Designer
- Prevent automatic change of entities when editing Architecture Outline; newly created architecture no longer incorrectly obtains a sibling entity under certain circumstances
Plugins
- Fix shared tasks interrupt-disabled edges for simple graph
Language - Rust
- Fix unresolved entity visibility
Language - C#
- Fix issue where a with expression used as a prefix for a member reference sometimes failed to locate the referenced component
Language - VHDL
- Fix unqualified name lookup for "use" directives in the same file as the library unit declaration
Language - Web
- Fix incorrect references to properties in object literals when variables are assigned multiple object literals
Known Issues
- Und settings command may not work with unanalyzed changes in project
- Nodelock license fails to validate running API on Rocky 8.10
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus license server
- Print Preview may not function correctly
Build 1246
7.2, Mar 6, 2026New Features
Localization
- Add Japanese translation files for the plugin manager.
Editor
- Add syntax highlighting for Markdown
Entity Filter
- Add 'Unused Methods' to entity filter for Basic
- Add 'Unused Objects' to entity filter for Python
Interactive Reports
- Convert batch graph plugin from Perl to Python and add ability to generate graphs for architectures
Metrics
- Add more architecture structural metrics (percentages of parent/root, recursive child count).
Settings
- Add ability to remove files from Analysis Log errors - "Remove Missing files" right click menu added to the the project->config->Files dialog.
- Improved handling of project configuration changes so that a language option change does not force a full reparse of files of other languages
- AI settings now show the model for providers like LM Studio.
- Update get_architecture_details tool to be more useful and actionable.
- Update mcp_server_for_understand_llm_optimized.py to allow launching in sse mode.
- Update mcp_server_for_understand_llm_optimized.py to use a strict json schema.
VS Code Extension
- Add auto-complete for the strings . :: and ->
Language - Web
- For Javascript, added 'Assign Initial' reference from properties to the initial value entity. Added ‘Renamecall’ and 'Call Indirect Possible' references for calls made through an exported object literal property.
CodeCheck Checks
- Allow running Dependency Checks and Compiler Warnings without a CodeCheck license.
- Added New MISRA23_6.4.3 CPP_DD031: A name that is present in a dependent base shall not be resolved by unqualified lookup
- Added new MISRA23_11.6.2: The value of an object must not be read before it has been set
- Added new MISRA23_15.8.1: User-provided copy assignment operators and move assignment operators shall handle self-assignment
- Added new MISRA23_28.6.4 and CPP_L046 The result of std::remove, std::remove_if, std::unique and empty shall be used
- Add check MISRA23_8.18.1: An object or subobject must not be copied to an overlapping object
- Added new MISRA23_15.0.1 and CPP_F071: Special member functions shall be provided appropriately
- Added new MISRA23_28.3.1 CPP_L047: Predicates shall not have persistant side effects
- Add check MISRA23_6.2.2: All declarations of a variable or function shall have the same type
- Added new MISRA23_6.4.1 CPP_DD033: A variable declared in an inner scope shall not hide a variable declared in an outer scope
Bug Fixes
AI
- Fix crash while generating AI descriptions
- Fixed large files not working with AI overviews
Filter
- Fixed bug in 'Unused Objects' filter for Ada, C#, Fortran, Java, Pascal and Web where entities were displayed that shouldn't have been
Search Bar
- Reduce hang on project open.
Installer
- Sign Windows binaries individually to potentially speed up application open
Python API
- Fix crash when a plugin script raises an exception
Plugins
- For the Shared Tasks plugins and scripts, fixed finding interrupt-disabled references
Language - C++ (Strict)
- Fix invalid line count metrics in function definitions expanded from macros
- Fix reference kind of arguments to implicit constructor calls in constructor initialization lists
Language - Web
- Fixed syntax errors parsing some css constructs.
- For Javascript, made changes to better handle entity lookup using files imported using dynamic import expressions.
CodeCheck Checks
- Fix switch statements for "Ignored Return Values" A0-1-2, CPP_F024, CPP_F038_A, MISRA08_0-1-7, MISRA12_17.7, MISRA23_0.1.2, MISRA23_17.7, POWER_OF_TEN_07_A
- Add support for non-standard assembly keywords in M7-4-2, MISRA08_7-4-2, CPP_A000, rename CPP_A007 to CPP_A000
- Only check copy constructors, add violations for modifying globals in "Side Effects in Copy Constructors" MISRA08_12-8-1, CPP_C008
- Add option to check that constructors initialize members, disabled by default, for A12-7-1, CPP_D068
- Improve accuracy of "Member Functions That Should Be Static Or Const" MISRA08_9-3-3, M9-3-3, CPP_F014
- Add violations if not including header for "Standard Header signal.h" MISRA12_21.5, MISRA23_21.5, CPP_L045
- Update keyword list, add options for "Keyword Macros" MISRA12_20.4, MISRA23_20.4, CPP_P018
- Fix tags used in other ways for "Unused tag declaration" MISRA12_2.4, MISRA23_2.4, CPP_U005
- Fix lexer issue in "Compare classes and not class names" OBJ09-J, JAVA_OBJ09
- Fixed: False negatives in MISRA23_14.4 with bitwise operators
- Improve accuracy of "Goto Into or Between Blocks" MISRA12_15.3, MISRA23_15.3, CPP_CF011
- Fixed: False positive in MISRA23_10.1.1 when parameter is passed to function with non-const pointer/reference param
- Fixed: False negatives in MISRA12_17.3 for functions with no definition in project
Known Issues
- Understand can take up to a minute to launch on Windows
- Nodelock license fails to validate running API on Rocky 8.10
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus license server
- Print Preview may not function correctly
Build 1245
7.2, Feb 14, 2026New Features
- Add check MISRA23_18.4.1: Exception-unfriendly functions shall be noexcept
- Add some architecture dependency metrics
Bug Fixes
- Add error handling for listing models of other providers
- Report failure-to-write errors in und when analyzing a project that is open elsewhere, or is write-locked in another manner
Known Issues
- Understand can take up to a minute to launch on Windows
- Nodelock license fails to validate running API on Rocky 8.10
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus license server
- Print Preview may not function correctly
Build 1244
7.2, Feb 12, 2026New Features
VS Code Extension
- Improve hover text
CodeCheck Checks
- Added check CPP_DD031: *Static Keyword in Array Brackets*
- Added check MISRA23_28.6.3: *An object shall not be used while in a potentially moved-from state*
- Added check MISRA23_8.2.1: *A virtual base class shall only be cast to a derived class by means of dynamic_cast*
- Added check MISRA23_8.2.11: *An argument passed via ellipsis shall have an appropriate type*
- Added check MISRA23_8.2.4: *Casts shall not be performed between pointer to function and other types*
- Added check MISRA23_8.7.1 / CPP_P065: *Pointer arithmetic shall not form an invalid pointer*
- Added check PYTH_02: Static Checking – mypy
- Added option “Permissive error number macros” for DCL37-C
Command Line (Und)
- Added web module search paths setting to
und
AI & MCP Server
- Add more tools for architectures
- get_entity_source tool show source code at first reference for entities without source code
Project
- Added contextual Expand All to Project Browser; Expand/Collapse now respects selection
Language – C#
- Added
Assign/AssignByreferences for C#
Bug Fixes
CodeCheck Checks
- Improved accuracy of Unions checks: MISRA12_19.2, MISRA23_19.2, MISRA23_12.3.1, CPP_S006
- Improved accuracy and options for Preprocessor
#undefchecks: MISRA04_19.6, MISRA08_16-0-3, MISRA12_20.5, MISRA23_20.5, CPP_P026 - Updated keyword and identifier lists for: MISRA04_20.1, MISRA08_17-0-1, CPP_P023
- Fixed false negative with nested parenthesized bitwise expressions in EXP46-C
Compilers
- Fixed handling of
inline,__inline, and__inline__keywords when using the GHS ARM compiler
Project
- Fixed issue where “Store analysis data in project folder” option did not create the
localfolder (applies to both Und and Understand)
Plugins
- Shared Tasks: Renamed option “Shared Tasks by Object Graph” for clarity
Language – Java
- Fixed missing
assignreferences in some cases - Fixed parser crash on certain Java source files
- Fixed slowdown when parsing Java files introduced in build 1240
Language – Python
- Improved handling of
.pydfiles by using the configured Python executable instead of always usingupython
Language – Web
- Fixed handling of
export defaultobject literals that caused missing references to object literal components
Known Issues
- Understand can take up to a minute to launch on Windows
- Nodelock license fails to validate running API on Rocky 8.10
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus license server
- Print Preview may not function correctly
Build 1243
7.2, Jan 22, 2026New Features
CodeCheck Checks
- Added new MISRA C++ 2023 checks:
- MISRA23_15.1.4 – Ensure all direct, non-static data members are initialized before object access
- MISRA23_8.2.2 – Disallow C-style and functional notation casts
- MISRA23_9.2.1 – Prevent explicit type conversions as expression statements
- MISRA23_8.0.1 – Require parentheses to clarify expression meaning
- Added new C/C++ check:
- CPP_P034 – Invalid header name detection
- Fixed false positives and reporting issues across several MISRA and CERT rules
- Corrected handling of unnamed entities and class detection in specific MISRA checks
- Resolved duplicate and conflicting check definitions
- Fixed incorrect parameter counting in selected HIS and metric rules
- Expanded support for declarations across multiple files, improving detection accuracy for complex projectsImproved accuracy for numerous MISRA, AUTOSAR, and CERT rules by refining name resolution and rule interpretation
AI & MCP Server
- Updated recommended AI models for analysis workflows
- Added new architecture analysis tools to the MCP server
- Introduced tooling to locate nested entities within architectures
- Improved MCP server behavior for smaller LLM context windows
- Clarified MCP tool descriptions and argument formats for better LLM integration
- Added an alternate MCP server, reorganized server layout, and expanded documentation
- Fixed execution and parameter handling errors in the LLM-optimized MCP server
- Improved robustness when processing truncated source code
- Improved clarity and correctness of MCP tool usage descriptions
Visualization & UI
- SVG graph exports now support dotted and dashed line styles
- Shared Tasks Graph:
- Renamed “Function instances” to “Instance references” for clarity
- Improved performance when working with large task graphs
Tooling & Integrations
- VS Code extension now supports:
- Navigating directly from graphs to source code
- Viewing entity information in the sidebar from graphs
- Java projects now default to compiler versions 10–21 when created via the New Project Wizard
- CodeCheck configuration imports now use the file base name for new files, improving usability
Documentation & Samples
- Updated metrics documentation and manuals
- Updated landing page to include CodeCheck links
- Reorganized sample metric test projects for easier access
Language Support
- PHP
- Fixed analysis hangs in certain files
- Resolved crashes related to heredoc and nowdoc parsing
- Corrected missing class inheritance relationships
- C/C++
- For IAR 8051, disabled warning about non-int definition for main
Command Line & Platform
- Fixed silent failure when creating databases without a
.undextension - Restored automatic project violation updates when violations are removed manually
- Understand can take up to a minute to launch on Windows
- Nodelock license fails to validate running API on Rocky 8.10
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus server
- Print Preview may not function correctly
Build 1242
7.2, Jan 9, 2026New Features
AI
- Add ability to use 3rd-party services with HTTPS and an API key
- Add more LLM models to choose from
Annotations
- Update the Move Annotations dialog to have the initial line set to the current line
Architectures
- Add Architecture plugins for namespace architectures
CodeCheck
- Add "Project Dependency Check" tag to dependency checks
Compilers
- Add support for inline variations in GHS V850 compiler
Graphs
- Add built-in Assigned To and Assignments graphs for Java and Ada
- Add IReports "Shared Tasks Graph" and "Shared Tasks Graph AI" that list the nodes and edges in a Shared Tasks Graph
- Add graph "Data Sequence Diagram" to show data interactions within a function
- Add graph "Input Output Diagram" to show how a function's inputs affect a function's outputs
Project Browser
- Now sorts case insensitive for Windows, Mac and Linux
Settings
- Add a help link for AI Models.
VS Code Extensions
- Add Metrics view
- Add support for showing c++ function-call operators on the right-click context menu of the object involved in the call
Language - Java
- Add 'java Assign/Assignby' references
- Add check MISRA23_1.5, CPP_DD030: Storage Class Specifiers Not At Beginning
- Add check MISRA23_22.7, CPP_L042: EOF Macro Misuse
- Add check MISRA23_22.12, CPP_L043: Thread Data Misuse
- Add check MISRA23_23.7, CPP_T067: Generic Expression Not Always Evaluated Once
- Add check MISRA23_22.19, CPP_V040: Mutexes with One Condition Variable
- Add check MISRA23_10.2.3: The numeric value of an unscoped enumeration with no fixed underlying type shall not be used
- Add check MISRA23_7.0.6: Assignment between numeric types shall be appropriate
- Add check MISRA23_22.15: Thread synchronization objects and thread-specific storage pointers shall not be destroyed
- Add check MISRA23_22.18: Non-recursive mutexes shall not be recursively locked
- Add check MISRA23_22.3: The same file shall not be open for read and write access at the same time on different streams
- Add check MISRA23_7.0.2: There shall be no conversion to type bool
- Added new MISRA23_7.0.4: The operands of bitwise operators shall be appropriate
- Added new MISRA23_7.0.5: Integral promotion and the usual arithmetic conversions shall not change the signedness or the type category of an operand
- Add NO-OP checks: MISRA23_0.3.1, MISRA23_0.3.2, MISRA23_18.5.1
- Add check: MISRA23_4.6.1
- Add support for Python and Visual Basic in HIS_08, METRIC_08, AC_HIS_08
Bug Fixes
Ada
- Fixed bug where function 'return' statements did not create an 'assign' reference to the function entity.
- Fixed parser crash on some invalid syntax.
- Fixed errors where some syntax error messages were duplicated.
CodeCheck Checks
- Fix M6-4-5, CPP_C033, MISRA04_15.2, MISRA08_6-4-5, MISRA12_16.3, MISRA23_16.3 for throws in macros
- Fix bug with non-pointers being flagged in MISRA12_DIR_4.8, MISRA23_DIR_4.8, CPP_P001
- Improve HIS_10, AC_HIS_10 by using the control flow graph API
- Remove CPP_VF002 which is a duplicate of CPP_V016
- Fix for CodeCheck web page showing the progress bar/abort button for finished sarif imports.
- Fix nested switch statement handling for MISRA04_15.2
- Fix VHDL_7 to correctly identify multiple drivers across different processes and concurrent statements
- Fix false positives in EXP33-C by sorting refs in source order
- Fix false positives with member access operators in MISRA12_18.4
- Fix for incorrect handling of loop constructs in MISRA08_6-4-5
- Fix script errors in CPP_C026, CPP_C031, CPP_T064, M6-5-3, POWER_OF_TEN_01
- Fix for multithreading in HIS_09, AC_HIS_09
- Fix bug in MISRA23_5.13.4
- Fix false positives with some unresolved function calls in MISRA12_10.6
- Fix false positives with macros in MISRA12_11.4
- Fix false positives in MISRA12_13.4 with designated initializers
- Fix false positives in MISRA23_9.2 with Array element assignments
- Fix false positives in MISRA23_14.2
- Fix false positives in MISRA23_14.2 due to type entities
- Fix false positives due to incorrect loop counter handling in the 3rd clause
Virtual Debugger
- Fix virtual debugger crash
Editor
- Fix bug where an annotation popup shown from the editor gutter did not accept focus.
- Fix for editor keybindings with default keybindings not remembering when the keybinding is removed.
- Fix hang on save when the instant search index is locked
General
- Fix for Dependency Check names not showing correctly in the sidebar and not restoring in background checks
- Possible fix for hang on project open/analysis when metric browser is open and multiple automatic architectures exist
- Fix bug introduced in build 1240 where the last analysis time of a project was not recorded properly
Graphs
- Update UML Sequence Diagram and C# call/called-by built-in graphs kindstrings to allow "csharp field" entities to support delegate calls.
- Fix bug in uml sequence diagram layout where message edges aren't visible unless another edge existed in the opposite direction.
Search
- Speed improvement for search results expand all
Settings
- Improve the time it takes to load, save and cancel the configuration dialog for very large projects
Plugins
- CSV: remove spaces from separators
- Fix interactive report options
- Allow unresolved entities
- Fix task names in CSV file
- Remove redundant path with unique instance member functions
- Fix script errors from Git Authors Pie Chart and Git History Pie Chart on projects without Git.
- Possible fix for Visibility Matrix script error
Language - C++ (Strict)
- Fix missing "typed" reference to C++17 deduced template argument class template types
- Remove invalid use reference in for loop increment expression
Language - Fortran
- Fixed bug where 'multiple modules with same name' warnings were not saved correctly.
- Fixed duplicated 'missing include file' messages.
Language - Python
- Fixed bug where some error messages were duplicated.
- Improved handling of unknown entities.
- Understand can take up to a minute to launch on Windows
- Nodelock license fails to validate running API on Rocky 8.10
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus server
- Print Preview may not function correctly
Build 1241
7.2, Dec 8, 2025New Features
- Made changes to put missing compilation unit and multiple units with the same name warnings inside a file context so they will be saved with violations.
- Add ability to specify external server when using Ollama and LM Studio
- Annotations add ability to use a selected line range from the Annotation Viewer and Move Annotations dialog.
- Bookmark shortcut now always opens the bookmark window instead of toggling
- Add pictures to Mermaid Graph interactive report descriptions.
- Input Output Diagram update to handle "switch" like "if".
- Update Help Menu actions order and add actions for SciTools Blog and SciTools YouTube Channel.
- Add metrics for object uses, sets, and modifications.
- Project Configuration Dialog user interface updates
- Add check MISRA23_1.5, CPP_DD030: Storage Class Specifiers Not At Beginning
- Add check MISRA23_22.12, CPP_L043: Thread Data Misuse
- Add check MISRA23_22.15: Thread synchronization objects and thread-specific storage pointers shall not be destroyed
- Add check MISRA23_22.16: All mutex objects locked by a thread shall be explicitly unlocked by the same thread
- Add check MISRA23_22.18: Non-recursive mutexes shall not be recursively locked
- Add check MISRA23_22.19, CPP_V040: Mutexes with One Condition Variable
- Add check MISRA23_22.3: The same file shall not be open for read and write access at the same time on different streams
- Add check MISRA23_22.7, CPP_L042: EOF Macro Misuse
- Add check MISRA23_23.3, CPP_T065: Unconditional Generic
- Add check MISRA23_23.7, CPP_T067: Generic Expression Not Always Evaluated Once
- Add check MISRA23_23.8, CPP_T066: Generic Default Not First or Last
- Add check: MISRA23_4.6.1
- Add no-op check MISRA23_23.4 A generic association shall list an appropriate type
- Add no-op checks MISRA23_23.5, MISRA23_23.6
- Add NO-OP checks: MISRA23_0.3.1, MISRA23_0.3.2, MISRA23_18.5.1
- Added new MISRA23_DIR_4.14: The validity of values received from external sources shall be checked
- Add graph: "Calls && Called By - Internal with Objects"
- Add graph "Data Sequence Diagram" to show data interactions within a function.
- Add graph "Input Output Diagram" to show how a function's inputs affect a function's outputs.
- Nodelock license fails to validate running API on Rocky 8.10
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus server
Bug Fixes
- Fix AI Overview background generation setting update when settings is changed from Tools->options.
- Fix kind of references on the right hand side of binary operators used in return statements
- Fix bug in MISRA23_5.13.4
- Fixed: false positives due to a bug that caused the loop counter to be flagged in its modification in the 3rd clause in MISRA23_14.2
- Fixed: False positives in MISRA23_14.2
- Fixed: False positives in MISRA23_9.2 with Array element assignments #4444
- Fixed: False positives with macros in MISRA12_11.4
- Fixed: false positives with some unresolved function calls
- Fix Interactive Report "Copy API Command" for reports with "\" in the name on Windows.
- Shared Tasks: Fix interactive report options
- Shared Tasks: fix task names in CSV file
- The Project Home Page may show an incorrect Generated date/time
- Print Preview may not function correctly
Build 1240
7.2, Nov 24, 2025New Features
AI
- Tools → Options (Preferences): better messages for AI models being downloaded
CodeCheck
- Add Heatmap for CodeCheck
- Don't allow skipping the modified file CodeCheck warning box
- Add warning for duplicate check IDs to the “Select Checks” dialog, and an interactive report to display them
Compilers
- Add support for
#pragma asmto LAPIS CCU8 compiler support - Add support for SDCC compiler
- Improve GHS V850 compiler configuration with more predefined macros and extended keywords
Editor
- Add status bar to released editor windows
General
- Dependency Structure Matrix improve responsiveness, fix counts for top level entities
Favorites
- Selecting a Favorite will jump to the code location
- The “Add Location to Favorite” now does not require a selection
Global Search
- Clear the number of suggestions from the line edit when the clear button is clicked.
API
- API update error message when lexer creation fails
- Exclude OpenSSL DLLs on Windows
Project Browser
- Now sorts case insensitive on Windows
Reports
- Add assign references to Object Cross Reference report
- Change object cross reference report enumerator init value back to the calculated value
Search
- Sort the searches in the Search Results Window by date and time of the search, instead of just the time
Language – C#
- Add warning for multiple types with the same name in a project
Language – C++ (Strict)
- Add separate option to disable C++ standard library include directories
- Change call by field for C++ objects to distinguish set, use and modify access references when in full reference mode
- Show call by field for C++ enumerators
Language – Java
- Add “Multiple classes with same name” errors inside a file context so they will be saved with violations
Language – Pascal/Delphi
- Add all missing unit and multiple unit messages inside a file context so they will be saved with violations
Language – Web
- Made changes to put missing import messages inside a file context so they will be saved with violations
Bug Fixes
CodeCheck
- Fix imported synced inspections showing multiple times on Windows OS
Graphs
- Fix bug in variable tracker graph not finding parameter/return ranges correctly
- Fix crash when python graph plugin becomes invalid on disk without scripts being refreshed
- Fix possible hang restoring graphs
- Fix restoration of plugin versions of built-in graphs that don't specify a style
- Update graph search result highlight color to use the rich text highlight color
Project
- Fix accidental removal of “Analyze ” from the file entity context menu
- Fix crash on removing macros in project configuration on Mac
Search
- Fix crash on project close while a find-in-files search is still running
Language – C#
- Fix bug where refresh parse could result in “missing type” and “missing namespace” errors for types used only as generic parameters
- Fix bug where some file dependencies were missed for analyzing changed files
- Fix bug where use of
global::to access type names could cause refresh parse to unnecessarily analyze some files.
Language – Visual Basic
- Fix bug where refresh parse could result in “missing type” and “missing namespace” errors for types used only as generic parameters.
Language – Web
- Fix potential crash in api lexers
Editor
- Fix failure to respect read-only setting for duplicate shortcut and drag-and-drop
- Nodelock license fails to validate running API on Rocky 8.10
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus server
- Print Preview may not function correctly
Build 1239
7.2, Oct 30, 2025New Features
- Add support for '#pragma asm' to LAPIS CCU8 compiler support
- Add check MISRA23_13.13, CPP_L036: Character Function Misuse
- Add check MISRA23_17.9: Invalid _Noreturn
- Add check MISRA23_18.10, CPP_T064: Pointer to Variable-length Array
- Add check MISRA23_21.15, CPP_L037: Incompatible Pointers
- Add check MISRA23_21.6.3: Advanced memory management shall not be used
- Add check MISRA23_6.8.4: Member functions returning references to their object should be ref-qualified appropriately
- Add check: MISRA23_12.5, CPP_P016: Size of Array Parameter
- Add all non implemented MITRE CWE Top 25 rules as noop checks
- Add all non implemented SEI CERT C++ rules as noop checks
- Add check MISRA23_22.1: All resources obtained dynamically by means of Standard Library functions shall be explicitly released
- Add check MISRA23_18.5 Declarations should contain no more than two levels of pointer nesting
- Add check MISRA12_10.7, MISRA23_10.7, CPP_T063: Implicit Casts of Operations
- Add check MISRA12_16.7, MISRA23_16.7, CPP_CF009: Switch Boolean
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus server
Bug Fixes
- Fix clicking on the Search Bar x button doesn't work in 'Search File Contents' mode
- Fix bug where refresh parse could result in 'missing type' and 'missing namespace' errors for types used only as generic parameters.
- Fix bug in MISRA23_14.2 caused by incorrect check when comparing if ref was in bounds of curly braces causing false positives
- Fix false positives in MISRA12_13.4
- Print Preview may not function correctly
Build 1238
7.2, Oct 21, 2025New Features
- Add button to regenerate last AI response
- Add support for CodeCheck baselines
- Add button to delete all ai chat messages
- Update GHS V800/V850 compiler config and make suitable for strict C++ parsing
- Show parameter default values in function hover text
- Show analysis progress in the global progress spinner in the upper right in addition to the normal status bar location in the bottom left
- Add the options for plugin metrics, configurable from project configuration
- Add a "Sync Selection" key binding option that can be set by the user, this will sync the selected entity across sync enabled windows
- Change the default value of the "Delayed Template Parsing" option to off
- Move "Enable AI" setting from Automation settings page to Data settings page
- Show a warning if AI was slow on Tools->Options->Data page
- Respect the -x flag for setting the language mode in compile command import
- Unable to change gguf file for AI
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- MacOS Sonoma and later cannot connect to the Icarus server
- Print Preview is not working
Bug Fixes
- Fix crash parsing invalid code with recursive inheritance involving generic classes
- Fix invalid syntax error on some ternary operators with expressions containing null conditional indexers
- Fix API lexer hang on fixed format Fortran files containing C-style comments
- Fix crash on some macro definitions
- Fix for removed editor key bindings not staying removed.
- Fix bug with split workspace not getting restored correctly
- Fix dependency violation graph "cannot indirectly depend" graph sometimes showing references out of the "from" architecture twice
- Fix split workspace restoration of graphs on Windows
- Fix ignoring a CodeCheck violation by annotation putting the annotation one line too high
- C# analysis may incorrectly show an error when using ternary operators
Build 1237
7.2, Oct 14, 2025New Features
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- C# parser may miss some namespaces when doing a partial analysis
- Selecting "Configure advanced settings after project creation" in the New Project Wizard may not function
- MacOS Sonoma and later cannot connect to the Icarus server
- Print Preview is not working
Bug Fixes
- Fix deprecated plugins causing errors
- Fix AI summary generation poor performance on Windows
- Fix for Ada package "Calls & Called By" graph not showing children correctly
- Fix crash viewing history from database frozen at a Git Commit on Windows
- C# analysis may incorrectly show an error when using ternary operators
Build 1236
7.2, Oct 13, 2025New Features
- Add ability to connect to AI Server on another machine
- Improve results for macros and namespaces
- Add ability to change AI model
- Add collapsible graph view in extension window
- Und AI: Add ability to select server
- Exclude "Assembly" from "settings -languages all"
- Add support for IAR EWRX compiler
- Improve Keil Arm compiler config
- Add context menus for architectures and entities
- Bookmark window now has a toolbar
- Increase default Recent Files memory from 5 to 20
- Icons have been updated with a new look
- Data flow graphs no longer show "use macrodefine" references
- Set macros associated with /MT[d] and /MD[d] flags in command line import
- Add a Global Search Bar to the Understand toolbar
- The suggestions panel was removed. Now actions are suggested in Global Search under Commands.
- Customize plugin open user plugins directly instead of creating a copy
- Plugin Manager install show page for installed plugin
- Show a popup when customizing a plugin
- Add assign references to program unit reports
- Add setting to enable/disable AI
- Key bindings have significantly changed. Users may need to re-add custom key bindings since the underlying setting names have changed in some cases, and some key bindings have been deleted and some new ones have been added.
- Options dialog (Tools->Options) now remembers last page
- Copy windows (a second IB, metrics browser, dependency browser, or duplicate graph window) are now opened by holding Shift instead of Command when clicking the menu action.
- The Tools > Options dialogue has been redesigned
- Put all missing namespace and type warnings inside a file context so they will be saved with violations
- Add option to disable header search in system include directories
- Put all missing namespace and type warnings inside a file context so they will be saved with violations
- Changed reference kind for a call to an unknown procedure from 'ref' to 'call'
- Update kind strings for dependencies
- Missing type warnings triggered by an 'analyze changed' parse are generated inside the appropriate file context
- Put all missing namespace and type warnings inside a file context so they will be saved with violations
- Some macros aren't defined when importing VS 2022 SLN and VCXPROJ
- C# parser may miss some namespaces when doing a partial analysis
- Selecting "Configure advanced settings after project creation" in the New Project Wizard may not function
- MacOS Sonoma and later cannot connect to the Icarus server
- Print Preview is not working
Bug Fixes
- Fix some issues with generic instantiations creating unnecessary copies of entities from the generic unit
- Fix "und create" command not allowing adding files and analyzing in the same command
- Fixes to Favorites including better support for adding favorites to architectures
- Fix crash on Windows when trying to update the same project more than once simultaneously
- Fix potential crash when clicking on the analysis errors link in the "Home" tab
- Fix error in project portability determination on Windows
- Fix variable tracker graph not showing at level 1 from the API draw commands
- Fix bug in 'analyze changed' parse where in some cases dependent files were not parsed
- Fix hang in analyzing some source code with syntax errors
- Fix several syntax errors on valid C# code
- Fix multiple crashlog popups for worker process crashes
- Fix worker process crash on invalid code
- Fix bug in 'analyze change' parse where in some cases dependent files were not parsed
- Fix for project creation from a git revision from an existing database failing
- Fix bad link in New Project Wizard
- Fix bug in 'analyze changed' parse where in some cases dependent files were not parsed
- C# analysis may incorrectly show an error when using ternary operators
Build 1235
7.2, Oct 8, 2025New Features
- First build of the Understand 7.2 release line. For the 7.2 highlights see Version releases; per-build changes are listed in the following 7.2 builds.