Understand Build 985

(Build b985) – 13 Apr 2019

FORTRAN PARSER

  • Fixed bug where some forward references of subroutines resulted in 'unresolved' entities.
  • Fixed error where some 'external' routine declarations created unresolved subroutines.
  • Fixed error where local names for use-only items were sometimes identifed as unresolved functions.

GENERAL

  • Fix occasional QMutex threading error when exiting und

Understand Build 984

(Build b984) – 5 Apr 2019

C# PARSER

  • Fixed parser hang on some self-referential generic type instantiations.
  • Fixed several bugs where valid code produced syntax errors.

GRAPHS

  • Fixed an issue where Graphs were not displaying the option to export to .Dot files on Mac and Linux for appropriate graph types.

Understand Build 983

(Build b983) – 29 Mar 2019

C# PARSER

  • Fixed several syntax issues.
  • Fixed bug where array initialization on a stackalloc caused a syntax error.

CODECHECK

  • Add Basic language support to metrics checks.

EDITOR

  • Add key binding to toggle read-only mode.

IREPORT

  • Fix spurious comparison view on double-click.

Understand Build 982

(Build b982) – 26 Mar 2019

BASIC PARSER

  • Added support for VS 2017 tuples and for unnamed parameters after named parameter association in a call.
  • Made changes to support VS 2017 tuple types, binary literals, and to allow underscores in numeric literals.

CODECHECK

  • Add templates for user created templates.

GRAPHS

  • Update butterfly graph to correctly handle Ada packages.

SEARCH

  • Fix failure to index some changed files in the instant search.

STRICT PARSER

  • Strict analyzer upgraded to use Clang 8.0.0.
  • Fix worker process crash on some files when an extension compiler is chosen.
  • Revert to using built-in includes when targeting MSVC.

UND

  • Fix build log import of quoted include path flags.

Understand Build 981

(Build b981) – 15 Mar 2019

BUILDSPY

  • Fix Buildspy RPATH so LD_LIBRARY_PATH does not need to be explicitly set.

COMMANDLINE

  • Add Und support for Green Hills Ada macro definition file format for importing ada project macros.

COMPARE

  • Fix failure to edit files containing entities that are being compared.

IREPORT

  • Add comparison link function.

PYTHON PARSER

  • Added 'containin' links between modules and Python 3 namespace style packages.
  • Made change to recognize packages without the presence of __init__.py files as supported by Python 3.3 and subsequent versions.

STRICT PARSER

  • Add missing references to types referenced in pointer-to-member-function types.
  • Add missing references to template template arguments.

VISUALSTUDIO

  • Fix crash importing MSVC project.

Understand Build 980

(Build b980) – 10 Mar 2019

  • STRICT_PARSER: Fix regression in recording references inside of lambda functions.
  • Understand Build 979

    (Build b979) – 8 Mar 2019

    PASCAL PARSER

    • Allow dotted names as library names.
    • Fixed several parser regressions introduced in recent releases.
    • Fixed bug where extending a same named class with a different number of generic formal parameters resulted in a circular dependency error.

    Understand Build 978

    (Build b978) – 5 Mar 2019

    ADA PARSER

    • Fixed bug where Green Hills multi-line preprocessor #if commands with 'and then' did not work correctly.

    API

    • fixed udbComment(), udbDbName() and udbEntityLibrary(), which all returned the same (first) value for every subsequent call.

    EDITOR

    • Fix text drawing issues on displays with non-integral scaling factors.

    GENERAL

    • Fix regression in importing some compile_commands.json files.
    • Fix failure to open projects on network drives on Windows.

    INSTALLER

    • Release Command Line Only install kit.

    STRICT PARSER

    • Avoid creating invalid ‘<anonymous>’ functions.

    WEB PARSER

    • For Web/Javascript, fixed bug where relative imports of jsx files sometimes failed.
    • For Web/Javascript, fixed bug where an import from an unknown file, where the imported item is renamed in the local file, could cause invalid references.

    Understand Build 977

    (Build b977) – 23 Feb 2019

    ADA PARSER

    • Added support for multi-line Green Hills preprocessor commands.

    API

    • Fix lookup of InitValue freetext.
    • Remove unused literals from c api UdbStatus type.

    ECLIPSE

    • Update Eclipse Plugin Version.

    GRAPHS

    • Modified the Object Reference (+ ObjRef Compare) graphs to cover all possible entity colors in legend.
    • Updated ObjRef Compare graph to support modified entities.

    PARSER

    • Fix crash moving a db between Windows and linux.

    SEARCH

    • Fixed missing Entity Filters in web languages.

    Understand Build 976

    (Build b976) – 15 Feb 2019

    ANALYZE

    • Fix failure to cancel analysis after the cancel confirmation dialog has been supressed.

    C# PARSER

    • Fixed bug where tuple deconstuction in a foreach statement caused a syntax error.

    GRAPHS

    • Cluster control flow graph now supported with TypeScript language.

    WEB PARSER

    • For Web/Typescript, added support for new Typescript features up through version 3.3.

    Understand Build 975

    (Build b975) – 13 Feb 2019

    STRICT PARSER

    • Add option to start worker processes serially instead of in parallel.

    Understand 5.1 Release

    Understand™ version 5.1 is officially available with Build 974. This release includes all updates since February 2018 and most recently includes “under the hood” improvements that will allow our team to bring you improved performance, responsiveness, and new features. You will also find that we updated the look of Understand with fresh icons and dark mode support on Mac.

    New Additions Since 5.0

    Behind the Scenes

    • Added support for MSVC 2017 C# projects
    • Windows installer significantly faster if .NET framework is already installed
    • Updated the Perl version that is included with Understand to 5.28.0
    • Updated the UI framework to Qt 5.12
      • No longer supports 32 bit Linux
      • No longer supports RedHat 6
    • Additional Language Support
      • Java 10
      • C# 7.2
      • FORTRAN 2008
      • Visual Basic .NET 2015
      • Typescript

    Do More with Understand

    If you are new to Understand, sign up for our free one hour webinar to see how Understand can help you.

    If you are familiar with Understand and you are interested in taking your Understand skills to the next level, Be sure to sign up for the free advanced training seminars that our sales partner Emenda has coming up:

    Looking Forward

    Our team is currently hard at work on several projects inside of Understand that we are very excited about. As new builds are released over the coming months you will see further improvements to the interface, as well as updates to graphs, Annotations, Compare Graphs, and CodeCheck.

    Understand Build 973

    (Build b973) – 14 Dec 2018

    PASCAL PARSER

    • Made changes to fix some problems with overload resolution.
    • Made changes to better handle calls to overloaded functions and procedures.

    PROJECT

    • Fixed an issue with Und not adding directories in NamedRoots mode correctly.

    Understand Build 972

    (Build b972) – 30 Nov 2018

    ASSEMBLY PARSER

    • For Coldfire 68K Assembly, added support for CodeCheck UndCC comments.

    COMMANDLINE

    • Remove extra warnings when creating an offline request code in Und.

    GENERAL

    • Add support for non-standard double UTF-8 BOM headers.

    STRICT PARSER

    • Look through pointer and reference to function pointer types when recording 'call ptr' references.

    Understand Build 971

    (Build b971) – 23 Nov 2018

    COMMANDLINE

    • Fixed an issue with adding files in Und.

    GENERAL

    • Widened the default panel size for the project configuration dialog so that it can't be unreadable due to size constraints.
    • Fixed areas that open in the bottom drawer to always open in a new tab.

    Understand Build 970

    (Build b970) – 16 Nov 2018

    CODECHECK

    • Update fixedValuesConstants.upl to include an option to ignore indexes as magic numbers.

    GENERAL

    • Added Project Name to the metric summary table.

    GRAPHS

    • Update to the Visio xml export text positioning.

    METRICS

    • Fixed issue with MaxEssential for directories being summed instead of displaying the max.
    • For Web Javascript and Php, added CountStmt metric.

    PASCAL PARSER

    • Fixed bug where in some cases units from the standard library files that were used by project files were not getting parsed.
    • Fixed bug where type text for implicit 'Result' variables was not correct.

    Understand Build 969

    (Build b969) – 9 Nov 2018

    ADA PARSER

    • Fixed bug where a custom ada standard library path was overwritten by the default value.
    • Fixed crash when parsing very large ada files while saving comments.

    C# PARSER

    • Fixed crash in parsing of some code with syntax errors.
    • Fixed syntax error on tuples used as type arguments.

    GENERAL

    • Fixed issue with report generated date display on some systems.

    Understand Build 968

    (Build b968) – 5 Nov 2018

    ADA PARSER

    • Made changes to allow gnat Ada unicode character encoding.

    GENERAL

    • Fix crash introduced in build 967 when creating new project.

    Understand Build 967

    (Build b967) – 2 Nov 2018

    ADA PARSER

    • Fixed some syntax errors parsing the GNAT standard library files.
    • Added support for raise expressions.

    SEARCH

    • Fixed an issue in Find in Files where only project files were being searched for a directory search.

    VISUALSTUDIO

    • Fixed problem parsing Visual Studio project files that contain xml CDATA content.

    Understand Build 966

    (Build b966) – 26 Oct 2018

    GENERAL

    • Updated the ability for the user to specify the portability mode for include paths.

    PYTHON PARSER

    • Added CountClassCoupled metric.

    Understand Build 965

    (Build b965) – 24 Oct 2018

    PASCAL PARSER

    • Fixed problem where unused type report did not include some unused classes.
    • Fixed error where context on 'initialization' and 'finalization' routines were sometimes incorrect.

    Understand Build 964

    (Build b964) – 12 Oct 2018

    C# PARSER

    • Fixed bug where references to internal constructors were left as 'unresolved' entities.

    GENERAL

    • Updated the Dependency Browser and graph Pascal/Delphi removing Predeclared Type entities (Boolean, string, and Char) from being dependencies.
    • Fixed an issue with moving architectures from Windows to Unix.

    PASCAL PARSER

    • Made change to remove intialization and finalization routines from the unused program unit report.
    • Made changes to track function pointer assignments through properties.

    SEARCH

    • Fixed highlight range and garbled text when highlighting multibyte characters in find-in-files results.

    Understand Build 963

    (Build b963) – 5 Oct 2018

    C# PARSER

    • Fixed a syntax error with nested string interpolation.

    CODECHECK

    • Added proper datamember declaration codecheck.

    LICENSING

    • Added automatic retry on appropriate licensing dialogs and updated various licensing dialog text.

    PASCAL PARSER

    • Changed 'Assign Ptr' references to 'Call Ptr' to be consistent with usage in c++ projects.
    • Added 'call ptr' relation.
    • Created 'call deref' references for calls made through parameters. Made 'call ptr' relations from variables which are defined as property values.

    STRICT PARSER

    • Fixed regression in creating function pointer 'call ptr' references to some entities.

    Understand Build 962

    (Build b962) – 28 Sep 2018

    COMPARE

    • Fix hang when comparing entities and moving cursor quickly.

    GRAPHS

    • Fixed duplicate comments in Visual Basic control flow graph.
    • Fixed an issue with adding a graphic filter on a calls chart.
    • Fix Internal Dependencies showing wrong number.

    LICENSING

    • Added the -deregisterlicensecode command for und and understand command line.

    PASCAL PARSER

    • For Pascal/Delphi, made a 'deref call' relation where a function/procedure pointer is used to call a routine. Made a 'use ptr' relation where a function or procedure address is stored in a variable.
    • For Pascal/Delphi, added Assign Ptr references to track function/procedure pointer assignments.

    PERL SCRIPT

    • Updated the Ada, C, Java and Fortran dead code detection script to correctly handle Fortran rename module.

    STRICT PARSER

    • Fixed worker process crash on Windows when the encoding is not set to UTF-8.

    Understand Build 961

    (Build b961) – 21 Sep 2018

    GRAPHS

    • Cluster Control Flow graph update to allow the visio export to correctly reflect the user expansions done in the gui.

    PASCAL PARSER

    • Fixed bug where include directives with string literal file names did not work. Also, fixed bug where for loop variables were reported as unused if they were only used in the loop control.

    PROJECT

    • Fixed crash on CMake compile_command.json import.

    REPORTS

    • Added function to add project name to pages in report.
    • Updated the generated html reports with new look.

    STRICT PARSER

    • Fixed failure to record assignment and function pointer calls through C++ constructor call expressions.

    VISUAL BASIC

    • Fixed several invalid parser syntax errors.

    Understand Build 960

    (Build b960) – 14 Sep 2018

    GENERAL

    • Changed support for Green Hills Ada macro imports to allow lowercase 'define' keywords.
    • Updated the new project wizard to allow visual basic projects to enable the Visual Studio import page.

    PASCAL PARSER

    • Fixed a parser crash and some instances where name lookup was incorrect.
    • Fixed bug where macros were not used for standard library files.

    REPORTS

    • Fix errors in Declaration Tree report and Exceptions report, introduced in build 921.

    STRICT PARSER

    • Added 'assign' reference kind for tracking variable flow across assignment.

    VISUAL STUDIO

    • Add initial support for VB 2017 project files.

    Understand Build 959

    (Build b959) – 7 Sep 2018

    PASCAL PARSER

    • Made changes to handle '.fmx' form files.
    • Fixed bug where some references in .dfm files were not being picked up.

    REPORTS

    • Made change to remove Delphi/Pascal predefined 'result' variables from the Unused Object Report.

    Understand Build 958

    (Build b958) – 3 Sep 2018

    CODECHECK

    • Fix issue with new codechecks on case sensititve platforms.

    Understand Build 957

    (Build b957) – 31 Aug 2018

    CODECHECK

    • Added CodeCheck Baseline igores functionality to Understand and Und.
    • Added 3 Misra CodeChecks to be used for testing statements for improper use of '++' and '–' operators.

    FORTRAN PARSER

    • Made changes to support .true., .false., and Fortran operators .LT., .GT., etc in preprocessing.

    GENERAL

    • Add support for Green Hills Ada macro definition file format for importing ada project macros.

    PASCAL PARSER

    • Made changes to improve results of the Unused Program Report for Delphi.
    • Added option to parse implementation parts of Delphi standard library files.

    SEARCH

    • Change pascal 'Root Calledby' filter to include ents that call only std-library functions.

    Understand Build 956

    (Build b956) – 24 Aug 2018

    ADA PARSER

    • Made changes to support Green Hills Ada preprocessor.

    INFOBROWSER

    • Fix crash in IB Call tree for Delphi code containing overload references.

    INSTALLER

    • Remove the legacy floating license server from the Understand package. It can still be downloaded from https://scitools.com/download/licensemanager/

    PASCAL PARSER

    • Fixed invalid syntax error on some exports statements.

    Understand Build 955

    (Build b955) – 17 Aug 2018

    GRAPHS

    • Add Pascal support for UML Sequence Diagram.

    STRICT PARSER

    • Added template argument list to template specialization qualified names.
    • Don't count the implicit injected class name declaration as a decl statement.

    Understand Build 954

    (Build b954) – 10 Aug 2018

    ARCHITECTURE

    • Fixed crash on analysis when editing an architecture with relative paths.

    CODECHECK

    • Updated the CodeCheck treemap to allow users to double click on files and then open the "Results by File" tab and expand to that desired file with its associated violations expanded.
    • Update 3.2lineSpacingNotUsedInComments.upl to have the correct example displayed in the Description.

    JAVA PARSER

    • Added 'anonymous' to the short kind for anonymous classes.
    • Fixed bug where anonymous classes had an 'implements' relation to a class type appearing in a 'new' expression. Now, an 'implements' relation is created if the type is an interface and an 'extends' relation is created if the type is a class.

    WEB PARSER

    • For web/Javascript, fixed bug where the import of an index.js file using the path to the directory was not working correctly.

    Understand Build 953

    (Build b953) – 5 Aug 2018

    ANNOTATIONS

    • Updated annotation search/filter to be case insensitive, allow whitespace for authors and allow partial matching.
    • Updated the annotation search/filter tag names to be case insensitive. I have also ordered the filter droplist alphabetically.
    • Fixed an intermittent crash on Mac when searching annotations.

    COMMANDLINE

    • Fixed an issue with Und not creating a proper database from a .udx file while in Und’s interactive mode.

    PYTHON API

    • Fixed entity hash value to use the actual entity id instead of the address of an allocated integer object.

    STRICT PARSER

    • Changed counting of declaration statements to exclude parameter declarations.

    Understand Build 952

    (Build b952) – 27 Jul 2018

    CODECHECK

    • Fixed an issue in CodeCheck ignore import/export where a comma in the violation was not being handled correctly.

    JAVA PARSER

    • Made change to automatically add Java 9 and 10 src.lib and java.base.jmod to classpath for new projects.
    • Made changes to allow contents of Java 9 and 10 src.zip and .jmod files to be processed.
    • Fixed bug where import on demand for classes loaded from jar files didn't work correctly in some cases.

    Understand Build 951

    (Build b951) – 20 Jul 2018

    CODECHECK

    • Added -requireexplicitcheckid which will require a checkid for CodeCheck automatic ignores.
    • Added support for '*' as a valid checkID for CodeCheck Automatic Ignores. Und returns a -1 if -requireexplicitcheckid command line arg is passed in and a required checkID is not supplied in the CodeCheck Automatic Ignores.
    • Updated CodeCheck Automatic Ignores to include a warning if an invalid checkid name is used.

    COMMANDLINE

    • Fixed an Und issue where the \# was not functioning correctly when importing @files. This is done by escaping the # with a "\" or another "#".

    JAVA PARSER

    • Fixed invalid syntax error on some uses of '::new' for array creation.
    • Fixed syntax error on the use of a class nested in a generic for a type parameter bound.
    • Added support for Java 10 implicitly typed local variables.
    • Fixed crash on some uses of self-bounding generics.

    TOOLS

    • Fixed issues in the Command Window for when a file link has a '.' in the file path besides the file name and html color not showing properly when on the same line as a file link.
    • Fixed an issue in User Tools – Command Window where python scripts would display duplicate lines under certain conditions.

    Understand Build 950

    (Build b950) – 14 Jul 2018

    C++

    • add option to merge duplicate function definitions into one entity during the analysis.

    GRAPHS

    • Fixed crash on some Fortran control flow graphs.

    STRICT PARSER

    • Disabled references to operator overload candidates when the lookup depends on a template argument.

    Understand Build 949

    (Build b949) – 6 Jul 2018

    CODECHECK

    • Update to CodeCheck to allow users to automatically load/overwrite and save CodeCheck ignores via the .uci file.

    GENERAL

    • Register the .udx settings file with Understand on Windows.

    JAVA PARSER

    • Made change to load thrown exception information from methods in class and jar files.
    • Added support for Java 9 module 'opens' directive. Added support for new syntax in try-with-resource statement.

    STRICT PARSER

    • Fixed parameter lookup for explicitly defaulted and deleted functions.

    Understand Build 948

    (Build b948) – 29 Jun 2018

    GRAPHS

    • Fixed Architecture dependency graphs to export to Visio XML correctly with the selected filter dependecies.
    • Added option to aggregate lifelines by architecture in the UML Sequence Diagrams.

    JAVA PARSER

    • Added support for Java 9 module syntax.

    Understand Build 947

    (Build b947) – 22 Jun 2018

    API

    • For Jovial Api lexer, fixed bug where keywords 'if' and 'or' were labeled as identifiers instead of keywords if they appeared in upper case.
    • Fix 1750A assembly api lexer to support $lexer->lexemes().

    COMMANDLINE

    • Fixed an issue with Und Add so that Und will not automatically analyze on files/directories added unless the analyze flag/command is specified.

    GENERAL

    • Fixed an issue with the Dependency Browser Filter not working correctly.

    PYTHON PARSER

    • Fixed syntax errors parsing f strings with escaped close quote characters.

    STRICT

    • Added function pointer calls to invocation report.

    Understand Build 946

    (Build b946) – 15 Jun 2018

    API

    • Add 1750A Assembly as an available api lexer.

    CODECHECK

    • Added the ability to automatically save the current CodeCheck Violation results and load the results next time CodeCheck starts. This can be turned on/off in Tools ->Options – Auto Loading and Saving options.

    FORTRAN PARSER

    • Fixed bug where some declarations from include files were not associated with the correct file. Also, fixed some problems where line counts were incorrect.

    Understand Build 945

    (Build b945) – 11 Jun 2018

    C# PARSER

    • For c# 7, added support for out parameter discards, and for expression bodies on type cast operator declarations.

    CODECHECK

    • Fixed an Understand CodeCheck issue with CheckID on a top level check.

    PASCAL PARSER

    • Fixed syntax error on pointer dereference access to array.

    STRICT

    • Added project config settings pages set system include paths.
    • Added command line flags to set system includes.
    • Fixed failure to record 'call ptr' references to unresolved function pointers in some cases.

    Understand Build 944

    (Build b944) – 1 Jun 2018

    C# PARSER

    • Fixed problem reading some C# 7 dll files.

    COMMANDLINE

    • Fixed Und assert if create is passed with no database argument.

    GENERAL

    • Update to the .udx feature. File – New UDX Project will create a project based on a .udx file.

    PROJECT

    • Added the .udx feature to allow for export/import of project settings on demand and automatically.

    SEARCH

    • Updated Find in Files to allow for searching current open file only.

    Understand Build 943

    (Build b943) – 25 May 2018


    STRICT PARSER

    • Added ‘call ptr’ reference between Qt signals and slots referenced in connect calls.

    Understand Build 942

    (Build b942) – 22 May 2018


    C# PARSER

    • Full support for C# 7.0, 7.1 and 7.2 has been added

    FORTRAN

    • Fixed lookup of entities by ‘renameby’ reference.

    JAVA PARSER

    • For Java, fixed bug where overloaded functions merged if all parameters have types with the same short names.

    STRICT PARSER

    • Fixed failure to search for include files among project files when the file encoding is different from the system locale encoding.

    Understand Build 941

    (Build b941) – 11 May 2018


    C# PARSER

    • For C#, added support for some C# 7 pattern matching.

    SEARCH

    • Updated Find in Files to save the configuration changes on a more dynamic basis. Also added the ability to only search the currently selected open file.
    • Fixed a Find in Files issue where §§§ search string was not being properly identified in relative project files.

    Understand Build 940

    (Build b940) – 4 May 2018

    C# PARSER

    • Made additional changes for the support of C# 7 tuples.

    COMMANDLINE

    • Updated Und CodeCheck detailed log in terminal output to not show the detail for ignored violations unless the -showignored flag is set.

    Understand Build 939

    (Build b939) – 27 Apr 2018

    API

    • Fix crash in user_api.

    C# PARSER

    • Made changes to support C# 7 tuples.

    INFOBROWSER

    • Add Metrics IB field for web languages.

    STRICT PARSER

    • Record 'call ptr' references for array subscript expressions.

    VISUAL STUDIO

    • Changed handling of MSVC 2010 and later projects to ignore ExcludedFromBuild files that have a 'false' value.

    WEB PARSER

    • In preparation for full support of Typescript, made a change to not process .js files with same base name as a .ts file in the same directory.
    • Beta support for Typescript added.

    Understand Build 938

    (Build b938) – 20 Apr 2018

    C# PARSER

    • Added support for C# 7 nested methods, out variables, and in parameters.
    • Fixed a bug where local constants were identified as variables.

    Understand Build 937

    (Build b937) – 16 Apr 2018

    ARCHITECTURES

    • Fixed New Architecture Wizard read only issue.

    Understand Build 936

    (Build b936) – 13 Apr 2018

    CODECHECK

    • Add missing malloc for Misra 2012 21.3.

    INFOBROWSER

    • Exclude 'call ptr' references from C/C++ References field.
    • Added 'pointer' text to 'call ptr' references in the Calls field.

    Understand Build 935

    (Build b935) – 6 Apr 2018

    GENERAL

    • Fixed an issue in Copy Filename where the absolute filename was not being displayed correctly.

    INTERACTIVE REPORT

    • Fix API Info IReport.

    STRICT PARSER

    • Added support for function pointer assignment to members through array of aggregate initializer lists.
    • Record 'call ptr' references for assignment from argument to parameter.
    • Fixed worker process crash on some DLL declspec redeclarations on Windows.
    • Added support for function pointer assignment from function pointer arrays.

    Understand Build 934

    (Build b934) – 30 Mar 2018

    PASCAL PARSER

    • For Pascal/Delphi, fixed a bug where namespace names given in the Namespaces option were not used for 'uses' statement names that were dotted names (for example, namespace System was not prepended to Generics.Collections).
    • Fixed a bug where an ASM block that contained a label with the name @@END would cause the assembly block to be terminated and result in syntax errors.

    STRICT PARSER

    • Added parameter declare references.

    Understand Build 933

    (Build b933) – 23 Mar 2018

    EDITOR

    • Fixed failure to browse to the correct define/declare reference in some cases.

    GENERAL

    • Updated Project Configuration – C# new references to allow for multiple files to be selected/added at once. Note that the alias field will not be available if mutliple files are added at once but can be added in the edit feature.
    • Updated Architecture XML import to allow architecture paths with "/" or "\".

    GRAPHS

    • For c++ strict projects, on call or calledby graphs, show new 'call ptr' references as dotted lines; for all languages, show 'use ptr' references as grey dashed lines.

    METRICS

    • For web languages, added SumCyclomatic metrics to functions. These metrics include values for nested anonymous functions.
    • For Python, added CountDeclExecutableUnit metric.
    • For web languages, added CountDeclExecutableUnit metric for files which counts all defined functions plus the file itself if it contained top level executable code.
    • For Pascal/Delphi, added CountDeclExecutableUnit metric.

    Understand Build 932

    (Build b932) – 19 Mar 2018

    LICENSING

    • Fix licensing issue when rapidly instantiating API instances.

    Understand Build 931

    (Build b931) – 16 Mar 2018

    API

    • For api lexers, add -> java operator and => operator for c#, and associate lambda entities with these lexemes.

    C# PARSER

    • Added 'lambda method' kind for lambda expressions.

    FORTRAN PARSER

    • Added support for some Silverfrost compiler variations on do loop syntax. Also, fixed some errors in the Fortran MaxNesting metric for some uses of do loops.

    INTERACTIVE REPORTS

    • For the Expand Macro Interactive Report, show the macro's value at the specificied location when using in a file.

    JAVA PARSER

    • Added 'lambda method' kind for lambda expressions, and added an End reference for lambdas.

    PASCAL PARSER

    • For Pascal/Delphi, fix problem where unnamed record types had the same unique name.

    REPORTS

    • Fix crash in html report generation.

    STRICT PARSER

    • Track potential function pointer calls through assignment.

    UPERL

    • Fixed the "Run a Command" window to display appropriate script text even when a gui perl graph is open.

    Understand Build 930

    (Build b930) – 9 Mar 2018

    C# PARSER

    • Added references for calls to operator overloads.

    FORTRAN PARSER

    • Added SumCyclomatic metrics to modules and subroutines.

    INTERACTIVE REPORTS

    • Add Interactive Report to Expand Macro text. To use right click on a Macro and select Interactive Reports->Expand Macro.

    METRICS

    • For Pascal/Delphi, added SumCyclomatic metrics for subroutines. Added SumEssenial metric in all contexts where other SumCyclomatic metrics were available.

    STRICT PARSER

    • Fixed worker process crash.

    VISUALSTUDIO

    • Add initial support for MSVC 2017 C# projects.

    Understand Build 929

    (Build b929) – 2 Mar 2018

    FORTRAN PARSER

    • Added support for while (expr) do …end do statements.

    JAVA PARSER

    • Improved handling of overload matching when arrays of unknown classes are involved.

    METRICS

    • For Visual Basic Metrics, added SumCyclomatic metrics for subroutines. These metrics include values for nested lambda subroutines.
    • For Ada metrics, added SumCyclomatic metrics for subroutines. These metrics include values for nested subroutines.

    PARSER

    • Fix api lexer to associate entities with c# operator definitions.

    PROJECT

    • Fixed failure to respect quoted arguments in CMake compile command database import.

    STRICT

    • Revert analysis of blocks independent of target. This interferes with the analysis of otherwise valid code in some cases.

    Understand Build 928

    (Build b928) – 24 Feb 2018

    C# PARSER

    • Changed names of methods that are defined using dotted notation with an implemented interface prefix to include the interface name only in the method full name.

    COBOL

    • Fixed regression in analyzing COPY … REPLACING … statements when there are multiple replacements.
    • Add support for a few more Unisys extensions.

    CODECHECK

    • Fixed an issue with saving CodeCheck configurations with top level checks.

    METRICS

    • For c# and Java, added SumCyclomatic metrics to methods. These metrics include values for nested lambda functions.
    • Changed class SumCyclomatic metrics to include values for nested lambda functions.

    PARSERS

    • For Ada, C#, Fortran, Java, Pascal, Php, and Javascript, made changes to standardize function pointer references to be 'use ptr' references. Added 'use ptr' references to lambda/anonymous functions.

    Understand Version 5.0 Build 927

    (Build b927) – 19 Feb 2018

    Version 5.0

    LICENSING

    • Version 5.0 uses our new licensing system, Helios, where you will need to create an account that will allow you to manage your own license(s). You will also need to get a Claim Code from our staff in order to use the upgraded licensing in Understand. If you are using an older license, you can continue to use it by selecting “Use Legacy Licensing” in the Licensing dialog under Options.

    C# PARSER

    • Fixed problems where unknown entities were created when ‘Analyze Changed File’ processing was used in projects that had calls to extension methods.


    COBOL

    • Style Unisys ‘PROC’ beginning and ending lines as comments in the editor.

    FORTRAN PARSER

    • Added support for Fortran extension ‘while (expr) do’ as start of a fortran do while loop.

    LEXER

    • Fixed handling of wide string literals in c lexer api.

    Understand Build 926

    (Build b926) – 9 Feb 2018

    ADA PARSER

    • Fixed bug where no 'rename' relation was created when an unknown entity was renamed.

    C# PARSER

    • Made changes to improve handling of generic method invocations and of lambda expressions passed as parameters.

    COBOL

    • Fixed crash on analysis of COPY … REPLACING … statements where the replacement pseudo-text spans multiple lines.

    PERL SCRIPT

    • Removed renaming declarations from the a_notset.pl script results.

    STRICT PARSER

    • Enable analysis of blocks independent of target.
    • Record references to class template arguments in constructor base class initializers.
    • Added project option to simplify macro expansion in control flow graph.
    • Added missing references to types used in function pointer return and parameter types.

    Understand Build 925

    (Build b925) – 26 Jan 2018

    C# PARSER

    • Fixed bug where parameter types were not inferred in lambda expressions used in variable initializations.

    STRICT PARSER

    • Fixed invalid control flow graph source range of statements inside of macro expansions that start with macro arguments.

    Understand Build 923

    (Build b923) – 11 Jan 2018

    CODECHECK

    • Updated CodeCheck to fix slowdown issue when using automatic ignores generation. Added automatic ignores text to the result log.

    Understand Build 922

    (Build b922) – 15 Dec 2017

    FORTRAN PARSER

    • Fixed syntax errors for dot operators continued over lines and for the use of 'assignment(=)' in use only statements.

    JAVA PARSER

    • Fixed crash on browse to unknown Java package names.

    Understand Build 921

    (Build b921) – 8 Dec 2017

    C# PARSER

    • Fixed bug where enum base types given using the 'System….' name caused a syntax error.

    CODECHECK

    • Fix for a potential crash in CodeCheck analysis.

    FUZZY PARSER

    • Add support for c99 designated initializers in fuzzy parser.

    GRAPHS

    • Fixed missing includes in the Architecture Internal Dependency Graphs.

    STRICT PARSER

    • Added control flow graph support for Objective-C exception handlers.
    • Fixed failure to calculate cyclomatic complexity for functions containing Objective-C exception handlers.

    USER API

    • Move user_api function udbListEntityFilter() functionality into udbListEntity().
    • Fix crash introduced in user_api udbListEntity() in b919.

    Understand Build 920

    (Build b920) – 1 Dec 2017

    EDITOR

    • Fixed performance issue related to Annotations.

    GENERAL

    • Optimized editor reference lookup slightly.

    Understand Build 919

    (Build b919) – 17 Nov 2017

    GENERAL

    • Fixed a potential crash when shutting Understand down before completely initializing the GettingStarted Dialog.

    Understand Build 918

    (Build b918) – 10 Nov 2017

    GRAPHS

    • Add several new options to the Control Flow Graph. Add three new graphs, Calls with Objects, Object References, and Object References with Called By.

    WEB PARSER

    • For Php, changed kind on referenced properties from 'property' to 'unresolved property' so they don't show up in the 'Same Name' IB field and entity list.
    • For Php, made changes to avoid merging multiple global variables with same name declared in different files.

    Understand Build 917

    (Build b917) – 6 Nov 2017

    INFOBROWSER

    • Fix crash displaying IB for unresolved c entities.

    Understand Build 916

    (Build b916) – 3 Nov 2017

    API

    • Remove UdbLibrary type and associated functions from API. udbEntityLibrary() returns library name.

    CODECHECK

    • Codechecks to check for commented out code weren't checking certain keywords. It should find more commented out code now.

    WEB PARSER

    • Fixed bug where class extends of a class named in a 'use' statement sometimes resulted in an unresolved entity.
    • Added the Dynamic Resolve option, “Assume single choices”. It controls whether or not a referenced entity that the parser can’t unambiguously identify will merge with any single definition from the project. The default behavior changed so that these single matches no longer merge unless the option is selected.

    Understand Build 915

    (Build b915) – 25 Oct 2017

    GRAPHS

    • Fix crash in project-level graphs introduced in b914

    METRICS

    • Fix crash in metrics calculation introduced in b912

    Understand Build 914

    (Build b914) – 20 Oct 2017

    FORTRAN PARSER

    • Fixed error where in some contexts a macro that expanded to an empty string could cause syntax errors. Fixed some issues where macros expanding to multiple lines could cause bad line count values for files.

    GENERAL

    • Fixed failure to restore some relative and named root files to the correct workspace when opening a project.

    LICENSING

    • Fixed an issue with node-locked licenses not being recognized with the MAC OSX 10 bundle change.

    PASCAL PARSER

    • Added 'Initializer' and 'Finalizer' to kind names for initialization and finalization blocks and removed these entities from the 'unused' entities reports.

    Understand Build 913

    (Build b913) – 12 Oct 2017

    C# PARSER

    • Added CountDeclExecutableUnit metric for files. Changed file Avg metrics to no longer round values so they conform to Avg metrics in other languages.

    FORTRAN PARSER

    • Fixed syntax errors caused by some macro expansions.
    • Added CountDeclExcecutableUnits metrics. Fixed bug where average line metrics were incorrect for files containing modules. Changed file Avg cyclomatic metrics to no longer be rounded values.

    JAVA PARSER

    • Added CountDeclExecutableUnit metric for files. Changed file Avg metrics to no longer round values so they conform to Avg metrics in other languages.

    API

    • Remove udbDbLanguages() from user_api.

    WEB PARSER

    • Made changes to prevent imports from unknown modules from merging with global entities in other files.
    • Fixed syntax error on async methods.

    Understand Build 912

    (Build b912) – 29 Sep 2017

    INFOBROWSER

    • Fixed crash in Ada IB introduced in Build 911.

    METRICS

    • For Ada and Visual Basic, added CountDeclExecutableUnit metric that counts all units with executable code.

    PASCAL PARSER

    • For Pascal/Delphi, made change to handle variations of the $I include command.

    PROJECT

    • Updated Und remove command for directories (if Watched) to not only set the directory to not watched but ignored as well.

    Understand Build 911

    (Build b911) – 22 Sep 2017

    CODECHECK

    • Fixed an issue where CodeCheck detailed descriptions were not showing the entire detailed text.
    • Updated TreeMaps to allow users to hide custom scaling outliers.
    • Add Codecheck that looks for assignments in 'if statement' conditions. It has an option to ignore the assignment if it is nested in extra parenthesis.

    PASCAL PARSER

    • Fixed bug where include files were not processed during the order parse phase.
    • Fixed bug where include commands with '\' did not work correctly.

    WEB PARSER

    • Fixed bug where 'import from' and 'export from' statements were not processed correctly, and could result in incorrect dependencies between files.

    Understand Build 910

    (Build b910) – 15 Sep 2017

    COMMANDLINE

    • Fixed a crash in Und when adding absolute file paths.

    PARSER

    • Fix lazy include mechanism to handle include files that contain non-native directory separators.
    • Fixed crash introduced in Build 909 when doing a reparse-all on a c++ db.

    Understand Build 909

    (Build b909) – 8 Sep 2017

    C# PARSER

    • Made changes to avoid a possible parse crash.

    COMMANDLINE

    • Updated Und to better cope with malformed windows commands via the command line.

    PASCAL PARSER

    • Fixed bug introduced in last release that caused syntax errors on some generic type instances.

    REPORTS

    • Fixed very slow report generation for some large c projects.

    SEARCH

    • Updated Find/Replace in Files Search type terminology to eliminate multiline search confusion.

    Understand Build 908

    (Build b908) – 1 Sep 2017

    PASCAL PARSER

    • Fixed bug where include commands inside included files did not favor the local directory when searching for a matching file name.
    • Fixed a problem with Compaq Pascal preprocessor commands.
    • Fixed several syntax issues, including a syntax error on calling a function from an array of function pointers.

    STRICT PARSER

    • Record decayed array type text as the original array type instead of the decayed pointer type.

    Understand Build 907

    (Build b907) – 24 Aug 2017

    PASCAL PARSER

    • For Pascal/Delphi, fixed syntax errors on abstract class declarations and generic function calls with no parameters.
    • For Pascal/Delphi, fixed some issues with generic declarations.
    • For Pascal/Delphi, added 'Abstract Class' kinds. Also, added visibility information to short entity kind names to better conform to other language short entity kinds.

    WEB PARSER

    • Fixed bug where some class extends were creating an 'unresolved' class instead of linking to the correct defined class.

    Understand Build 906

    (Build b906) – 11 Aug 2017

    C/C++ PARSER

    • Added support for the 'arguments' field when creating a project with json files.

    CODECHECK

    • Updated CodeCheck to correctly export and import checks with "//" in the check name.
    • Re-add Hersteller Intiative Software (HIS) Metrics Codechecks that were accidently removed in build 902.

    WEB PARSER

    • Added support for some Php 7 syntax, including group use declarations and optional return types on functions.

    Understand Build 905

    (Build b905) – 5 Aug 2017

    CODECHECK

    • Fixed an issue in CodeCheck where the check name was preventing saving the individual check state.

    WEB PARSER

    • Fixed syntax errors on nested template literals. Also, added reference to entities named in template literals.
    • Added support for Php version 7.0 anonymous classes and 'yield from' statements.

    Understand Build 904

    (Build b904) – 28 Jul 2017

    FUZZY PARSER

    • Fix hang in fuzzy c++ parser when analyzing code with illegal recursive alias namespace declarations.

    GENERAL

    • Disable DPI awareness on Windows. Scale window proportionally when font size is greater than 100%.

    REPORTS

    • Updated Understand Reports to be more intelligent when performing pre-calculations for Unused entities.

    VHDL PARSER

    • Fixed missing overloaded procedures/functions in the metrics browser.
    • Fixed line count metrics for files starting with a comment.

    WEB PARSER

    • For Web/css, added support for new syntax.

    Understand Build 903

    (Build b903) – 21 Jul 2017

    API

    • Update Python documentation to include new architecture draw (arch.draw) method.

    CODECHECK

    • Fix hang in several Codechecks when a macro is recursively defined.

    GENERAL

    • Update documentation.

    WEB PARSER

    • Added support for new '**' and '**=' operators.
    • Fixed syntax errors on return statements returning an 'await' expression. Added support for some node.js supported syntax.
    • Fixed bug where css import relations had incorrect line number information.

    Understand Build 902

    (Build b902) – 14 Jul 2017

    API GRAPHS

    • Add support for architecture drawing in perl scripts with $arch->draw().
    • Add support for penwidth, dashed, dotted and bold styles in upl graph scripts.

    INFOBROWSER

    • Add accessors IB field for python properties.

    PASCAL PARSER

    • Added support for {$IfOpt…} compiler directives.

    PYTHON PARSER

    • Fixed bug where the Getterfor relation was missing for some property getter methods. Also, added property deleter functions with Deleterfor relations.

    VISUALSTUDIO

    • Add support for Visual Studio 2017 C++ projects.

    Understand Build 901

    (Build b901) – 7 Jul 2017

    EDITOR

    • Changed browse visit source action to go to the first declaration when clicking on the define reference.

    GUI

    • Fixed Entity Explore to accommodate extremely long entity names and parameter list without distorting the Understand UI.

    REPORTS

    • Fixed an html issue with incorrect link when using the Fortran Extension Usage report.
    • Updated the generated report index to show correctly.

    Understand Build 900

    (Build b900) – 30 Jun 2017

    CODECHECK

    • Updated CodeCheck results treemap options to include Custom Scaling.

    FORTRAN PARSER

    • Fixed bug where size information from implicit statements was not added to implicitly defined variables, so 'IMPLICIT REAL*8' created variables of type 'REAL' instead of 'REAL*8'.

    PROJECT

    • Added a "Expand All" and "Collapse All" option to the Project Browser right click / Dimple menu.
    • Fixed Pascal Namespaces list in project config to allow free text, not directory names.

    WEB PARSER

    • Added support for Javascipt non-standard syntax using '::' for a bind operator and fixed a syntax error on some uses of 'class' expressions.
    • Added support for new async functions and await expressions.
    • Fixed bug where unnamed classes in class expressions sometimes resulted in classes with blank names.

    Understand Build 899

    (Build b899) – 23 Jun 2017

    WEB PARSER

    • Fixed some syntax issues with JSX React files.

    Understand Build 898

    (Build b898) – 16 Jun 2017

    CODECHECK

    • Fixed a bug in MISRA 2012 rule 16.3, MISRA 2008 rule 6-4-5, MISRA 2004 rule 15.2, and All Check script unconditionalStatementShallTerminateNonEmptySwitchClauses.upl where circular references within a switch causes Understand to freeze.

    FORTRAN PARSER

    • Fixed syntax errors in fixed format fortran on c style define statements which continue over multiple lines.
    • Added support for quadruple precision literals (e.g. 1.q0).
    • Fixed crash processing c style preprocessor 'define' statements with empty argument lists.
    • Fixed bug where an 'END FILE' statement caused a syntax error when used in a logical if statement.

    FUZZY PARSER

    • Fixed memory leak in fuzzy c++ parser.

    WEB PARSER

    • Added support for new Javascript syntax allowing spread operators in object literals.
    • Added lookup of Javascript names used in JSX tags. Fixed invalid syntax errors in JSX properties with no '=value'.

    Understand Build 897

    (Build b897) – 9 Jun 2017

    C PYTHONAPI

    • Fixed unresolved symbol error on database open on Linux.

    WEB PARSER

    • Made changes to handle React JSX syntax in Javascript files.

    Understand Build 896

    (Build b896) – 8 Jun 2017

    JAPANESE

    • Japanese Special Build

    GENERAL

    • Fixed a crash in ScopeList when an entity is removed but still shows while analyzing.

    PYTHON PARSER

    • Made change to find .so module files. Contents of .so files are currently not read by the parser, but imports of .so modules no longer cause import warning messages.
    • Added os.path to built-in modules.

    WEB PARSER

    • Fixed bug where CountDeclClass metric was always 0 for Javascript.

    Understand Build 895

    (Build b895) – 2 Jun 2017

    GRAPHS

    • Fixed an issue with Cluster Control Flow Graph not exporting .svg files correctly.
    • Fixed an issue with the Internal Dependency graph not filtering c derive, C# derive and java extend couple.

    JAVA

    • Updated the Java Configure Project Class Path – New Jar dialog to allow the user to add more than one .jar file at a time.

    TREEMAP

    • Fixed an issue with Metric Treemaps not potentially producing the same colors for "flat" and "group by" treemaps.
    • Added a custom scaling feature to Metric Treemaps to allow users to specify a "Min" and "Max" number. This allows for easier comparison between different projects and allows for a nice before and after picture with the same scale used.

    WEB PARSER

    • Fixed a problem where some occurances of <![CDATA[ in xml files caused syntax errors.
    • Fixed a syntax error in javascript when an embedded script line begins with <!–//–>.
    • Fixed several javascript parse issues.
    • Fixed a problem where some counts of embedded javascript lines were one less than they should have been.

    Understand Build 894

    (Build b894) – 24 May 2017

    JAPANESE

    • Japanese Special Build

    GRAPHS

    • Fixed pathological performance on cluster control flow graph generation in relative and named root projects.
    • Fixed hang on cluster control flow graph generation for some Fortran programs.

    JAVA PARSER

    • Fixed bug where loading scala generated .class files could cause invalid Cyclic Dependency errors.

    Understand Build 893

    (Build b893) – 19 May 2017

    ECLIPSE

    • Fixed error dialog when generating graphs.

    GENERAL

    • Fixed crash on info browser visit shortcuts when the info browser is empty.
    • Added a "Show Detailed Architecture Metrics" checkbox to the Project Metric browser window. Please note that enabling the detailed metrics may dramatically increase the time needed to show the metrics depending upon your project size.
    • Fixed issue where the application appears to hang after closing some file dialogs on Mac OS.

    GRAPHS

    • Added "Other" class category to the Project Overview Charts for appropriate classes, procedures, methods that are not global, internal, protected, private, default, local, unknown, unnamed and unresolved.

    PASCAL PARSER

    • Fixed bug where the return type text was duplicated on functions with a declaration in a unit interface and a definition in a unit implementation part.

    PYTHON PARSER

    • Fixed bug where nested f-strings could cause syntax errors.
    • Fixed syntax error on some print function calls in Python 2.

    SEARCH

    • Fixed an issue with Ctrl + Up Arrow and Ctrl + Down arrow not working in the code window when the FIF results window is open.

    VISUAL BASIC

    • Fixed bug where a .Invoke call to a delegate did not generate a call reference.

    Understand Build 892

    (Build b892) – 12 May 2017

    CODECHECK

    • Updated MISRA 2012 rule 16.3, MISRA 2008 rule 6-4-5, MISRA 2004 rule 15.2, and All Check script uncomditionalStatementShallTerminateNonEmptySwitchClauses.upl to use the Control Flow Graph for scanning switch statements.

    EDITOR

    • Updated Find in Files to allow for event processing when there is an insanely large line being searched and styled.

    FUZZY PARSER

    • Fixed C++ fuzzy parser to handle massive numbers of repeat using clauses within namespaces.

    GENERAL

    • Updated the Scope List to open automatically if it was open when Understand was closed last.

    PYTHON PARSER

    • Fixed a couple of issues with Python 3.6 variable type hints.
    • Added support for Python 3.6 'async' keyword in additional contexts, and for multi-line f-strings. Made change to allow 'yield' statement in f-strings. Also, fixed several syntax issues.
    • Fixed syntax error on some uses of '**' and '*' in dictionary/set creation.

    Understand Build 891

    (Build b891) – 5 May 2017

    GRAPHS

    • Added parameter filtering and a 'show only' option to the Calls and Called by graphical views.

    PYTHON PARSER

    • Added support for Python 3.6 f-strings.
    • Added support for Python 3.6 variable type hints, async for, and underscores in numeric literals.

    Understand Build 890

    (Build b890) – 28 Apr 2017

    CODECHECK

    • Fixed a bug in MISRA 2012 rule 21.2 and All Check script CPP_I016_reservedIdentifiersMacrosAndFunctionsShallNotBeDeclared where range based loops were not handled correctly.
    • Expanded the CodeCheck Results by File – Check Name column to allow for easier reading of the check name.
    • Fixed an issue in CodeCheck UndCC_NextLine() where only one parameter (checkID) was being recognized.

    GENERAL

    • Updated Configure Project – Files dialog to include a right click "Expand All" and "Collapse All" menu option for directories.

    GRAPHS

    • Fixed an issue with the Web Php function butterfly graph callbys were not displayed correctly.
    • Fixed bug when creating a large number of graph files from a script.

    PYTHON

    • Made changes to make symbol information from several .pyd files in the Python Dlls directories available to the Python parser.

    REPORTS

    • Updated the File Contents report to show nested classes.

    STRICT PARSER

    • Fixed sysroot option on Linux.
    • Fixed failure to detect headers by include when using named roots.

    Understand Build 889

    (Build b889) – 22 Apr 2017

    ANNOTATIONS

    • Fixed crash on analysis after the annotation dialog has been opened.
    • Fixed an issue with Annotation filtering where the filter could possibly give an "Annotations loading error" message.

    C# PARSER

    • Fixed bug where syntax error at end of file gave incorrect line/column number.

    CODECHECK

    • Fixed a bug in MISRA 2012 rule 5.3, MISRA 2008 rule 2-10-2, and MISRA 2004 rule 5.2 and All Check script scopeHiding.upl where variables defined in for loop condition weren't treated correctly.

    PYTHON PARSER

    • Fixed parser crash when a directory in a project is deleted from disk, but not removed from the project, and an analyze changed files command is executed.
    • Added parser option to suppress warning messages for import statements that appear in try-except blocks.
    • Removed warning messages for imports of modules available only as .pyd files.

    REFACTOR

    • Fixed an issue with the Refactor Rename tool not finding all of the entity references correctly.
    • Fixed the Refactor Extract Function to correctly pass the ~ in C++.

    Understand Build 888

    (Build b888) – 22 Apr 2017

    JAPANESE

    • Japanese Special Build


    Includes these build updates:

    ANNOTATIONS

    • Fixed crash on analysis after the annotation dialog has been opened.
    • Fixed an issue with Annotation filtering where the filter could possibly give an "Annotations loading error" message.

    C# PARSER

    • Fixed bug where syntax error at end of file gave incorrect line/column number.

    CODECHECK

    • Fixed a bug in MISRA 2012 rule 5.3, MISRA 2008 rule 2-10-2, and MISRA 2004 rule 5.2 and All Check script scopeHiding.upl where variables defined in for loop condition weren't treated correctly.

    PYTHON PARSER

    • Fixed parser crash when a directory in a project is deleted from disk, but not removed from the project, and an analyze changed files command is executed.
    • Added parser option to suppress warning messages for import statements that appear in try-except blocks.
    • Removed warning messages for imports of modules available only as .pyd files.

    REFACTOR

    • Fixed an issue with the Refactor Rename tool not finding all of the entity references correctly.
    • Fixed the Refactor Extract Function to correctly pass the ~ in C++.

    Understand Build 887

    (Build b887) – 16 Apr 2017

    CODECHECK

    • Updated C# naming convention for methods to ignore accessor methods.

    GENERAL

    • Include python sample scripts.

    PYTHON PARSER

    • Fixed bug where relative imports using .. didn't work unless parent directory contained an __init__.py file.

    STRICT PARSER

    • Fixed additional issue detecting header files by include on Windows.

    UPERL

    • Fix Japanese translation

    VISUAL BASIC PARSER

    • Fixed bug where sets of function names for return values were recorded as recursive calls.
    • Fixed bug where members of Array class referenced through return values of functions loaded from dll files were not recognized and resulted in unknown entities.