Understand Build 873

(Build b873) – 13 Jan 2017

CODECHECK

  • Fixed a bug in MISRA 2012 rule 15.7, MISRA 2008 rule 6-4-2, MISRA 2004 rule 14.10 and All Check script danglingElse.upl where an if-else if chain constructed with the preprocessor could throw false positives.
  • Added MISRA 2012 rule 17.3 and All Check script CPP_DO33_functionNotDeclaredImplicitly.upl to Code Check.
  • Added MISRA 2012 rule 17.7 to Code Check.

GRAPHS

  • Fix for text alignment issue in Visio Export.

STRICT PARSER

  • Updated clang to version 3.9.1.

Understand Build 872

(Build b872) – 6 Jan 2017

CODECHECK

  • Added fixedValueConstants.upl for Ada to Code Check.
  • Fixed bug in MISRA 2012 Directive 4.3 and MISRA 2008 rule 7-4-3 where a function without an 'End' reference caused a scripting error.
  • Fixed a bug in MISRA 2008 rule 6-3-1, MISRA 2004 rule 14.8 and All Check script bodyOfSwitchOrLoopShallBeACompoundStatement.upl where a function without an 'End' reference caused a scripting error.
  • Fixed bug in MISRA 2008 rule 6-4-1, MISRA 2004 rule 14.9 and All Check script ifConstructShallBeFollowedByACompoundStatement.upl where function without an 'End' reference caused a scripting error.
  • Fixed bug in MISRA 2012 rule 15.5, MISRA 2008 rule 6-6-5, MISRA 2004 rule 14.7, HIS rule 10 and All Check script oneExitPerFunction.upl where a function with a missing 'DefineIn' reference caused a scripting error.

UND COMMANDLINE

  • Fixed an issue in Und involving -rescanwithoutanalyze and case-sensitive renames in case-insensitive filesystems.

VISUALBASIC PARSER

  • Made change to allow ambiguous namespace references for VS2015.

Understand Build 871

(Build b871) – 30 Dec 2016

PASCAL PARSER

  • Add pascal option to set prepend text for external-linkage entities.
  • Added 'External Variable' entity kind to allow external variables to be referenced from other languages.

PYTHON PARSER

  • Made change to tag any class with an '@abstractmethod' decorator on a method as abstract class.
  • Made change to tag any class with an '@abstractproperty' decorator as an abstract class.

UPERL

  • Fix upl $db->metrics() call to filter out non-project metrics.

Understand Build 870

(Build b870) – 23 Dec 2016

ASSEMBLY PARSER

  • For Coldfire 68K Assembly, fixed bug where some SECTION directives caused syntax errors.

C# PARSER

  • Fixed duplication of '@' characters in InitValue and other entity attributes.

CODECHECK

  • Potential fix to a crash reported when externally editing a file then running CodeCheck with a re-analyze.

COMMANDLINE

  • Updated Und to allow users to see which assembler is set and the possible assemblers. Also updated Und to allow users to set which assemlber via the -assemblyassembler setting.

PASCAL PARSER

  • Added support for Pascal86 syntax.

Understand Build 869

(Build b869) – 16 Dec 2016

ANNOTATIONS

  • Updated to check for a new/modified annotation file and load it if changed.

API

  • Fixed a Perl API issue where architecture depends Value was not returning the correct references when a key was passed in.
  • Fix Basic not being identified as the current language when querying from the perl API.

PASCAL PARSER

  • Made changes to allow syntax variations with '#include' for including files and 0x… for hex literals.
  • Made change to allow syntax variation with 'external' on a variable declaration.
  • Made change to create procedure entities from initialization and finalization blocks in Delphi Units. This allows line, statement, and complexity metrics to be collected for these code blocks, and for control flow graphs to be generated. Compleixity metrics were removed from Delphi Units since these metrics were always 0.
  • Fixed parse error on some expressions.

PYTHON PARSER

  • Added Abstract Class kind.
  • Made changes to implement the 'Dynamic Resolve, Assume nearest matches' option. This turns on/off resolving attribute references to attributes defined in the same file or imported files. This option is off by default which differs from the prior behavior.

TOOLS

  • Fixed an issue in "Run a Command" where quotes were being lost when the command was run a second time from the Command Window run button.

VHDL

  • Fixed crash on View Information on unknown entities.

Understand Build 868

(Build b868) – 9 Dec 2016

CODECHECK

  • New feature allowing Codechecks to be ignored from the source code directly (https://scitools.com/codecheck-comment-keywords/).

EDITOR

  • Added semantic syntax highlight styles for PL/M.
  • Fixed keyword highlighting for PL/M.

GRAPHS

  • Update butterfly graph to better show Java virtual calls.

PYTHON API

  • Fixed architecture entity lookup call to respect recursive argument.

PYTHON PARSER

  • Added package metrics. For file average complexity and line metrics, made change to include the complexity and executable line count for executable code at the file level. Files with no executable code at the file level now have complexity and path count metrics of 0 instead of 1. Fixed bug where CountStmt metric was missing for class entities.

STRICT PARSER

  • Report errors about passing non-pod arguments through variadic functions as warnings since they don't affect the analysis in any way.

Understand Build 867

(Build b867) – 1 Dec 2016

CODECHECK

  • Fixed bug in MISRA 2012 17.6 where a failed lexer creation would cause a script error.

FUZZY PARSER

  • C++ Parser, Add support for Tasking TriCore compiler.

GENERAL

  • Fixed invalid dependency on libcurl on Linux.
  • Fixed runtime warnings and related issues on Mac.

PASCAL PARSER

  • For Pascal/Delphi, fixed bug where some unresolved entities failed to merge.
  • For Pascal/Delphi, fixed bug where using 'private' for a record component name caused a syntax error.
  • For Pascal/Delphi, fixed bug where no unknown entity reference was created for selected components of unknown entities.
  • Fix slow pascal resolve times for large projects.

STRICT PARSER

  • Fixed missing init references for constructor init list references to fields that have a C++11 style in-class member initializer.

VISUALBASIC PARSER

  • Fixed bug in Visual Basic PercentLackOfCohesion metric that resulted in negative values in some code with auto-implemented properties.
  • Added support for VS2015 use of ? in dictionary access and delegate calls, and added support for NameOf operator.

Understand Build 865

(Build b865) – 18 Nov 2016

C# PARSER

  • Fixed bug causing negative value for PercentLackOfCohesion in some code with expression bodied property getter.

C++ PARSER

  • Save comments for c++ entity declarations.

GRAPHS

  • Control flow graph, fixed empty source on nodes consisting of a single 0 character.

VISUALBASIC PARSER

  • Added support for VS2015 string interpolation.
  • Added Average metrics for files.
  • Fixed parser crash on some syntax errors in expression lists.
  • Added support for VS2015 new '?.' operator and comments after implicit line continuations.

Understand Build 864

(Build b864) – 11 Nov 2016

C# PARSER

  • Fix resolve issue introduced in the last build.
  • Fixed parser crash on some predefined type member expressions.
  • Fixed syntax errors on some unicode white space characters.

JAVA PARSER

  • Fixed syntax errors on some unicode white space characters.

PASCAL PARSER

  • For Pascal/Delphi, changed calculation of the PercentLackOfCohesion metric to exclude form fields initialized and used only in the form dfm file.
  • Fixed syntax errors on some unicode white space characters.

VISUALBASIC PARSER

  • Release Visual Basic Parser Beta Version.

Understand Build 863

(Build b863) – 4 Nov 2016

C# PARSER

  • Added support for C# 6 expression-bodied methods.
  • Fixed errors on some uses of C# 6 interpolated string expressions.

INFOBROWSER

  • Changed c# resolve so that identically-defined methods are not merged together but result in separate entities.

METRICS

  • For Pascal/Delphi, fixed bug where property declarations were incorrectly counted in the PercentLackOfCohesion metric.

PYTHON PARSER

  • Removed 'implicit import' relations from modules to parent packages __init__.py files.

Understand Build 862

(Build b862) – 28 Oct 2016

GRAPHS

  • Fixed issue with Perl Graphs not working on Linux.

FORTRAN PARSER

  • Added highlighting of inactive source regions.

JOVIAL PARSER

  • Fixed syntax error on some directives between 'start' and 'compool' keywords.

PYTHON PARSER

  • Fixed bug where 'implicit import' relations were sometimes created from a module file to the __init__.py file in the same directory.

Understand Build 861

(Build b861) – 21 Oct 2016

CODECHECK

  • Fixed a bug in MISRA 2012 rule 8.7 and All Check script noExternalLinkageUnlessExternal.upl where the check would fail on an entity that did not have a parent.
  • Potential fix to a CodeCheck crash when interrupting/stopping an analysis.
  • Fixed a bug in MISRA 2012 rule 8.4 and All Check script compatibleDeclarationVisibleWhenExternalLinkageIsDefined.upl where the check would fail on an entity that did not have a parent.
  • CodeCheck Ignores Violation fix to allow commas in the notes field during an export/import. Also fixed an issue in the export when Check names contain quotes.

GENERAL

  • Fixed a spelling error in Tools – Options – User Interface – Command Window Font.
  • Fixed several Python API issues in the new Mac app bundle layout.

PROJECTGRAPH

  • Fixed an issue where duplicate names were not showing on the graph or table correctly (showing 0 on the table and combined on the graph).

Understand Build 860

(Build b860) – 14 Oct 2016

CODECHECK

  • Added Code Check for MISRA-C 2012. Rule: 16.6.
  • Updated MISRA 2004 rule 5.1 and All Check script significantTo31Chars.upl to ignore inactive entities.
  • Updated MISRA 2012 rule 5.4, All Check scripts macroIdentifiersShallBeDistinct.upl and macroNamingConvention.upl to no longer check inactive MACROs.

FORTRAN PARSER

  • Fixed bug in parsing some fixed format module declaration lines with 'function' in the module name.

GENERAL

  • Fix Metrics Export Crash.

INFOBROWSER

  • Fixed crash on double-click to expand info browser root header.

JAVA PARSER

  • Added metrics Knots, MaxEssentialKnots, and MinEssentialKnots.

PROJECT

  • Add dynamic resolve project options for python.

PYTHON PARSER

  • Added support for option to turn on/off resolving attribute references to any single like named attribute in the project. The default behavior is 'off' which differs from the prior behavior.

SEARCH

  • Fixes for Find in Files crashes.

Understand Build 859

(Build b859) – 6 Oct 2016

CODECHECK

  • Added Code Check for MISRA-C 2012. Rule: 17.6.
  • Added Code Check for MISRA C 2012. Rule: 17.1.

COMPARE

  • Fixed ignore case and skip whitespace diff options that were broken in build 855.

JAVA PARSER

  • Fixed bug where assigning a lambda expression to a variable caused a syntax error.
  • Fixed invalid syntax errors on some method definitions with generic return types.

REPORTS

  • Document the "Directory" option in the Interactive Report template.

SEARCH

  • Fix crash on close when Find in Files is still running.

Understand Build 858

(Build b858) – 30 Sep 2016

API

  • Location Changes for C, Python and Custom Perl files. More details here https://scitools.com/api-location-changes-for-c-python-and-custom-perl/

C# PARSER

  • Fixed a problem with the wrong overloaded method being chosen in some cases. Also, fixed a problem that could cause unknown entities to be created for library entities on refresh parsing.
  • Fixed some problems with overload resolution and references using implicit typing in 'foreach' statements.

CODECHECK

  • Added MISRA 2012 Directive 4.12 to Code Check.
  • Added MISRA 2012 rule 16.5 to Code Check.
  • Updated MISRA 2008 rule 2-13-4 and All Check script literalSuffixesShallBeUpperCase.upl to no longer test inactive code.
  • Added MISRA 2012 rule 16.4 to Code Check.
  • Added MISRA 2012 rule 20.4 and All Check script macroDefinedAsKeyword.upl to Code Check.
  • Add MISRA 2012 directive 4.8 and All Check script objectImplementationHidden.upl to Code Check.
  • Updated MISRA 2012 rule 20.1, MISRA 2008 rule 16-0-1, MISRA 2004 rule 19.1 and All Check script includesComeFirst.upl to ignore inactive code.

INSTALLER

  • Fixed some errors in package install on Mac.

PASCAL PARSER

  • For Pascal/Delphi, added CountLineInactive metric.

SEARCH

  • Fixed an issue with Find in Files when a user closes the results window while finding. Fixed an issue in the Find and Replace preview window when no project is loaded.

STRICT PARSER

  • Disable built-in includes on Windows.

WEB PARSER

  • For web/html, fixed crash on extremely long strings for href url names.

Understand Build 857

(Build b857) – 16 Sep 2016

CODECHECK

  • Added MISRA 2012 directive 4.6 to Code Check.

GENERAL

  • Fixed crash on exit when dock widgets are drawered.

MACOS

  • Repackaged Mac dmg installer so that it is compatible with macOS Sierra. It is now a single app bundle.

Understand Build 856

(Build b856) – 9 Sep 2016

CODECHECK

  • Updated MISRA 2008 rule 0-1-10 and All Check script definedFunctionsCalled.upl to have a configurable option to ignore standard library functions.

Understand Build 855

(Build b855) – 2 Sep 2016

CODECHECK

  • Added Code Check for MISRA-C 2012 rule: 20.2.
  • Added Code Check for MISRA-C 2012 rule: 20.3.

EDITOR

  • Fixed syntax highlighting of Objective-C literal strings with escaped quotes.

FORTRAN PARSER

  • Fixed bug where the wrong filename could appear on missing include file warnings in free format when the include line was itself in an included file.

Understand Build 854

(Build b854) – 26 Aug 2016

CODECHECK

  • Updated MISRA 2004 rule 2.4 to have configurable option to ignore inactive code.
  • Added Code Check for MISRA-C 2012 Rule 20.11.

GENERAL

  • Fixed possible crash on projects containing file entities with trivial long names.

JOVIAL

  • Added 'set' relations for uses of variables as out parameters in subroutine calls.

STRICT

  • Fixed failure to find angled bracket includes with the option to search for missing includes among project files.

Understand Build 853

(Build b853) – 19 Aug 2016

CODECHECK

  • Fixed divide by zero error with HIS #11.
  • Added Code Checks for MISRA C 2012 Rules: 2.1, 16.2, 16.3, 17.2, 19.2, 20.1, 20.5, 20.10, 20.13, 20.14, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 21.10, 21.11, 21.12
  • Fixed logic error in MISRA 2008 rule 16-0-3 and MISRA 2004 rule 19.6.

Understand Build 852

(Build b852) – 12 Aug 2016

COBOL

  • Fixed crash on invalid COPY … REPLACING … statements.
  • Added support for TITLE statement in the id division.

JAVA PARSER

  • Fixed syntax error on type cast of lambda expression.

LICENSING

  • Fixed a licensing server issue where if an older client build connected and established a license to a license server, a newer client build from the same computer with the same user and a valid maintenance expiration date could not use the same license.

Understand Build 851

(Build b851) – 5 Aug 2016

ADA

  • Fixed bug where using named parameter association in import_procedure pragmas did not work correctly in some cases.

C# PARSER

  • Fixed bug where ‘analyze -changed’ did not analyze all required files in some cases.

CODECHECK

  • Updated MISRA 2004 rule 20.9 and All Check script stdio.hLibNotUsed.upl to not test inactive code.
  • Fixed a bug in MISRA 2008 rule 6-4-8, MISRA 2004 rule 15.5, and All Check script switchStatementShallHaveCaseClause.upl where compound statements were not handled correctly.

Understand Build 850

(Build b850) – 29 Jul 2016

C# PARSER

  • Fixed incorrect values for AvgComplexity metrics on some files that contain interface type declarations.
  • Fixed syntax error on use of 'out' keyword in named parameter association.

CODECHECK

  • Expanded functionality of MISRA 2008 rule 7-1-2 and All Check script parameterShallBeDeclaredAsConst.upl to better detect when a parameter is passed to another function.
  • Updated MISRA 2008 rule 8-5-1 and All Check script variablesShallHaveValueBeforeUsed.upl to have a configurable option to treat data members passed to another function as initialized.
  • Updated MISRA 2008 rule 12-1-3 and All Check script explicitConstructors.upl to ignore copy and move constructors.
  • Updated MISRA 2008 rule 7-1-1 and All Check script unmodifiedVariablesShallBeConst.upl to have a configurable option to lessen the requirements to variables and parameters independently.
  • Updated MISRA 2008 rule 6-4-5, MISRA 2004 rule 15.2 and All Check script unconditionalStatementShallTerminateNonEmptySwitchClauses.upl to accept Preprocessing directives used in switch statements.

FORTRAN

  • Fixed bug in auto format determination that sometimes produced a truncate value that was too low.

JAVA PARSER

  • Fixed bug where a method reference prefixed by an unknown method name sometimes resulted in a reference to the wrong method entity.

LICENSING

  • Updated the License Server, Und, the various APIs and the Eclipse plugin to extend the expires timeout to 2 hours (applies to Und, APIs and Eclipse plugin only). The database open and analyze will re-checkout the license and the database close will check in the license. Please note that both the license server and the clients need to be updated to have the new extended expires time active.
  • Updated Understand/Und to use the Portable/Dongle license expiration date as a maintenance expiration date.

PASCAL PARSER

  • Fixed syntax error on some uses of attributes on property declarations, and syntax error on some generic function declarations.
  • Fixed syntax error on 'stdcall' in some contexts, syntax error on some uses of the 'inherited' keyword, and syntax error on some public property declarations following method declarations.
  • Fixed syntax error for some const class and record fields.

SEARCH

  • Fixed an issue in Find in Files – Architectures where the architecture from the Architecture Browser right click menu would not be checked by default.

STRICT

  • Fixed scope of template parameter define references to be the templated entity instead of the enclosing scope.

WEB PARSER

  • For xml, made change to use fullnames for xml elements, so separate elements are created for elements with the same simple name but nested in parent elements with different names.
  • For Javascript, removed parent context name from full names of properties defined in object literals in executable code.

Understand Build 849

(Build b849) – 15 Jul 2016

CODECHECK

  • Updated MISRA 2008 rule 9-3-3 and All Check script methodsMadeConstOrStaticIfPossible.upl to test for calling non static and non const functions.

FORTRAN

  • Fixed bug in auto format determination where truncate column was sometimes determined incorrectly when string literals contained long sequences of space characters.

FUZZY PARSER

  • In unnamed enum definitions in typedefs, display the typedef name for the enumerator types.

PASCAL PARSER

  • For Delphi/Pascal, fixed bug causing parser hang.

REFACTOR

  • Fixed an issue in Refactor – Rename with not allowing for File includes to be renamed.

Understand Build 848

(Build b848) – 10 Jul 2016

API

  • Improve api lexer for c++ preprocessor lines.

C# PARSER

  • Fixed bug where some overloaded method calls with implicit conversion parameters resulted in references to unknown methods.

CODECHECK

  • Fixed a bug in MISRA 2008 rule 0-1-7 and All Check script discardedReturnValues.upl where a void cast, pointer calling of a method, was flagged as a violation.

INSTALLER

  • Add Digital Signatures to the Windows Installers and executables.

Understand Build 847

(Build b847) – 1 Jul 2016

C# PARSER

  • Fixed bug where using a type keyword for a member reference, e.g. 'string.Empty', resulted in an unknown entity instead of a reference to the correct member.

FORTRAN PARSER

  • Fixed bug where call statement with alternate returns was not supported correctly in the control flow graph.

IREPORT

  • Remove the Batch Graph Interactive Report from the installer since it causes issues with the Python API on Linux. It can still be installed from https://scitools.com/support/gui-plugins/

PROJECT

  • Updated New Project Wizard to allow users to specify a One Time Import option when using CMake or Visual Studio import files. This disables the sync functionality but allows the user to modify project files after the import.

PYTHON PARSER

  • Added support for Python 3.5 async, await, and the @ operator.

Understand Build 846

(Build b846) – 24 Jun 2016

C# PARSER

  • Added use reference for variable increment/decrement with ++/– when the resulting value is used in the expression.

CODECHECK

  • Added an option to MISRA 2012 rule 15.5, MISRA 2008 rule 6-6-5, MISRA 2004 rule 14.7, Hersteller Initiative Software rule 10, and All Check script oneExitPerFunction.upl to ignore code within inactive code blocks.
  • Fixed a bug in MISRA 2012 rule 8.4 and All Check script compatibleDeclarationVisibleWhenExternalLinkageIsDefined.upl where global const declared objects were being checked.
  • Fixed a bug MISRA 2008 rule 6-4-5, MISRA 2004 rule 15.2, and All Check script unconditionalStatementShallTerminateNonEmptySwitchClauses.upl where compound statement in the default clause and switch statements that exist inside inactive code were not handled correctly.
  • Fixed a bug in MISRA 2012 rule 15.5, MISRA 2008 rule 6-6-5, MISRA 2004 rule 14.7, Hersteller Intiative Software rule 10, and All Check oneExitPerFunction.upl where inline void functions were not being treated correcly.

JAVA PARSER

  • Added use reference for variable increment/decrement with ++/– when the resulting value is used in the expression.

REFACTOR

  • Updated the Refactor tool to exclude inappropriate references.

REPORTS

  • Updated the "Unused Objects and Functions" report to exclude implicit constructors and parameters that belong to overridden abstract functions for php.

WEB PARSER

  • For Javascript, added use reference for variable increment/decrement with ++/– when the resulting value is used in the expression.

Understand Build 845

(Build b845) – 17 Jun 2016

CODECHECK

  • Fixed a bug in 10_assignmentOperatorReturnThis.upl and assignmentOperatorReturnThis.upl where a false positive was triggered when const was part of the FQN.
  • Updated MISRA 2008 rule 15-3-6 and All Check script exceptionsHaldersOrderedFromMostToBase.upl to be faster and more accurate.

GENERAL

  • Add detailed language information to the hover text on the Project Configuration Language Panel.

IREPORT

  • Add a new project level Interactive Report to Batch Generate Graphs. More details here: https://scitools.com/support/batch-graph-generator/

METRICS

  • Added CountPathLog metric for ada, c#, c++, fortran, java, jovial, pascal, python, and web languages.

PROJECT

  • Fixed restoration of excluded directories from the context menu.

SEARCH

  • Fixed an issue with the Find in Files exclude checkbox unchecking when the file types were modified.

STRICT

  • Record calls to functor object call operators as 'call' instead of 'use'.

Understand Build 844

(Build b844) – 3 Jun 2016

API

  • Fix string functions (eg, udbEntityNameLong) in user_api.

CODECHECK

  • Fixed a bug in codeSlicingShouldNotOccur.upl where setting a string member object triggered a script failure.
  • Updated MISRA 2008 rule 9-3-3 and All Check script methodsMadeConstOrStaticIfPossible.upl to not test operator overloads.

GENERAL

  • Fix for intermittent crash in creating the default architecture.

GRAPHS

  • Fix issue with UML Class diagram where slashes in the default value of a member object would cause the graph to not draw.

JAVA PARSER

  • Fixed some problems with Java 8 method references using 'class_name::method_name' syntax. Also, fixed a bug where multiple function calls within the same expression, separated with '.', sometimes resulted in incorrect call references.

STRICT

  • Added class and instance method counts for Objective-C.
  • Fixed kind of const and volatile qualified member function templates.

Understand Build 843

(Build b843) – 27 May 2016

ANNOTATIONS

  • Fixed issue where line annotations were incorrectly showing up in other files.

CODECHECK

  • Add two Ada Codechecks to test for unused and uncommented variables.

FUZZY PARSER

  • For fuzzy c++ parser, show function and variable location in IB when specified with certain compiler extensions, such as '@', '_at_' and 'pragma location'.

PORTABILITY

  • Fixed issues with relative and named root files in visual studio and cmake projects.

Understand Build 842

(Build b842) – 20 May 2016

C# PARSER

  • Fixed a bug in handling partial types that resulted in unknown entity references.

COMMANDLINE

  • Improve documentation for und settings.

GENERAL

  • Fixed intermittent crash when changing project portability mode.

JAVA API

  • Updated the Java API to include the ent.library() call.
  • Updated the Java API entity to include "value, language and parameters".

Understand Build 841

(Build b841) – 13 May 2016

JOVIAL PARSER

  • Fixed parser hang on some !Assembly directives. Also, made change to allow no ';' before 'begin' in a 'def block' statement.

Understand Build 840

(Build b840) – 6 May 2016

C# PARSER

  • Fixed bug where a reference to a class with the same name as a nested class could sometimes generate a reference to the wrong entity.

INFOBROWSER

  • Show python sub packages and parent packages in IB.
  • Show java sub packages and parent packages in IB.

JAVA PARSER

  • Added 'transient' and 'volatile' to the type text of variables declared with these modifiers. Also, added a new reference kind, 'use return' for a variable directly returned by a method.

LICENSING

  • Updated the License Server almhostid mismatch error.

PROJECT

  • Updated Understand/Und to report the "Last Locked Process Id".

PYTHON PARSER

  • Removed '__init__' from full names of entities defined in package __init__.py files.
  • Added 'declare/declarein' relations between packages and subpackages.

Understand Build 839

(Build b839) – 29 Apr 2016

C# PARSER

  • Fixed bug where no call reference was created when an overloaded method was called but parameters passed didn't match any overload.
  • Fixed bug where the use of an alias type name in a 'new' expression as an actual argument caused problems with overload resolution.

FORTRAN

  • Potential fix for a Fortran 66 Project Overview Chart crash.

FUZZY PARSER

  • Preserve parameter types in function pointer types in fuzzy c++ parser.

GENERAL

  • Added MaxNesting metric to the Treemap options.

GRAPHS

  • Preserve open/closed status of graphic nodes when changing Comments, Filename and Name options.
  • Fixed a UML Sequence Diagram crash from the command line and the GUI.

JAVA PARSER

  • Created package entities for all levels of a dotted package name and linked packages to subpackages with a 'declare' relation.

PASCAL PARSER

  • For Pascal/Delphi, fixed syntax error on use of 'inline' in .dfm file.

PYTHON PARSER

  • Added 'Python Module File' kind.

Understand Build 838

(Build b838) – 22 Apr 2016

ANNOTATIONS

  • Fixed an issue in Annotations where duplicate annotations sometimes appeared.

C PARSER

  • Add support for volatile and const volatile method kinds in fuzzy c++ parser

EDITOR

  • Fixed C# semanitic syntax highlight issues.

GENERAL

  • Fixed an issue with the Windows Navigator shortcut not working properly.

INFOBROWSER

  • Add support for php overrides field in IB.

PROJECT

  • Ensure that nonexistant "found" includes are removed from the project on rescan.

REPORTS

  • For Web Php, added 'overrides' link from function in child class to an overridden function in parent class. Fixed bug where overriding functions were listed as Unused.

WEB PARSER

  • For Php, fixed bug where reference to a constant inherited from a parent class in a different file resulted in an 'unresolved' entity.

Understand Build 837

(Build b837) – 15 Apr 2016

ANNOTATIONS

  • Fixed an Annotation issue where the Annotation search results were not opening the correct location in the editor.

GRAPHS

  • Add php Property entities to the UML Class diagram.
  • Fixed a crash in the UML Sequence Diagram when trying to use unresolved entities.

PASCAL PARSER

  • For Delphi/Pascal, made change to better recover from some syntax errors in parsing.
  • For Pascal, fixed bug where more than one label on a statement caused syntax errors.

REPORTS

  • Fixed a crash in report generation when annotating a project file that does not have a valid file extension for any of the languages.

WEB PARSER

  • For Php, added call to class constructor at a 'new <classname>' expression.

Understand Build 836

(Build b836) – 8 Apr 2016

ANNOTATIONS

  • Fixed an issue with annotations trying to convert to the latest project portability settings after an analysis instead of when a user changes the project settings.

CODECHECK

  • Add yield() api support for codecheck scripts.
  • Updated the CodeCheck gui log to display a longer file path name instead of just the filename and extension.
  • Updated the CodeCheck gui log to show the file and the check in progress.
  • Improve interactivity when Codecheck scripts are running.
  • Updated the CodeCheck gui verbose log to show the individual check being run, the running time or duration of each file, and the overall running time or duration.

Understand Build 835

(Build b835) – 1 Apr 2016

CODECHECK

  • Add the word Global to the description of each Global CodeCheck.

Understand build 834

(Build b834) – 25 Mar 2016

CODECHECK

  • Fixed a bug in MISRA 2008 rule 12-8-1 and All Check script copyConstructorInitializeBaseAndMembers.upl where certain member functions were being flagged as violations despite not being a copy constructor.

GRAPH

  • Fix a crash dealing with the Cluster Graphs.
  • Fixed possible crash in control graph generation.

PROJECT

  • Add project option for Javascript module search path.

USER API

  • Enforce const correctness and temporary nature of strings in user_api.

WEB PARSER

  • For Javascript, made changes to use module search path option to locate imported modules in Javascript 6.

Understand Build 833

(Build b833) – 19 Mar 2016

CODECHECK

  • Fixed a bug in MISRA 2008 rule 15-3-3 and All Check script constructorOrDestructorShallNotReferenceNonStaticMembers.upl where violations weren't being reported correctly.

GENERAL

  • Moved the Project Configuration Options to Tools – User Interface.
  • Moved the Command Window Font option to Tools – User Interface.
  • Added an option to allow the user re-open graphs when opening a project. By default, this is turned off so that graphs do not reload automatically.

GRAPHS

  • Added Cluster With Butterfly graph for Ada.
  • Update the UML Class Diagram to display if a method is virtual.

PARSER

  • Add support for IAR ARM compiler extension _Pragma().

PROJECT

  • Updated the Und command line settings -adaVersion to update the Standard directory as well.

WEB PARSER

  • For Javascript, fixed bug where javascript 6 import of a default entity generated an import relation with line number 0.
  • Fixed bug in line counts when css files contain import rules.

Understand Build 832

(Build b832) – 11 Mar 2016

ANNOTATIONS

  • Updated the Project Conversion to convert the annotation entities uniquenames instead of orphaning them.

CODECHECK

  • Updated MISRA 2012 rule 8.2 and All Check script functionsTypesInPrototypeForm.upl to correctly handle lambda functions.
  • Fixed a bug in MISRA 2012 rule 5.8 and All Check script externalIdentifiersUnique.upl where duplicate violations were reported.
  • Fixed a bug in MISRA 2008 rule 0-1-7 and All Check script discardedReturnValues.upl where C style casts were being incorrectly handled.

Understand Build 831

(Build b831) – 4 Mar 2016

ADA PARSER

  • Changed the CountSemicolon metric for subroutines to include semicolons that separate parameter declarations.

CODECHECK

  • Updated MISRA 2012 rule 8.10 and All Check script inlineFunctionDeclaredStatic.upl to no longer test operator overloads.

COMMANDLINE

  • Fixed an issue where Und would not set the file to excluded when removing file that were added using -CommandAddMode.

GENERAL

  • Updated to not allow analysis when reports are generating or allow access to Reports/Generate Reports or Reports/Configure Reports when analyzing.
  • Missing Header Files Dialog updates.

GRAPHS

  • Add Imports and ImportedBy graphs for javascript.

INFOBROWSER

  • Show alias and export references in javascript IB.
  • Add aliases and import/export fields for javascript IB.

PROJECT

  • Fixed CodeCheck ignores list to update when project portability is switched.

SEARCH

  • Added an option to turn off hover text in Find in Files Results.

WEB PARSER

  • For Javascript, allow full path names in Javascript 6 module imports and reexports.

Understand Build 830

(Build b830) – 26 Feb 2016

ADA PARSER

  • Made changes to support Ada to C linkage of subroutines using aspects.
  • Fixed bug where pragma imports of constants did not correctly link to the external c entity.

CODECHECK

  • Updated MISRA 2012 rule 8.10 and All Check script inlineFunctionDeclaredStatic.upl to not test inline template functions.
  • Updated MISRA 2012 rule 8.10 and All Check script inlineFunctionDeclaredStatic.upl to no longer test member functions.
  • Updated MISRA 2008 rule 9-3-3 and All Check script to have a configurable option to treat passing of member data to another function as modifying the data.

EDITOR

  • Show annotations in printouts.

FORTRAN

  • Add missing binary.f90 to Fortran sample project.

GENERAL

  • Fixed an issue where add/remove files were not Case Insensitive for windows.
  • Disallow rescan during analysis.
  • Add support for JIPSE MIL-STD-1750A assembly

INSTALLER

  • Fix display issue with Windows installer and slashes.

LICENSING

  • Fixed a floating licensing issue with multiple builds from a single computer.
  • Fixed a ToGo license issue where the license server was reporting a denied ToGo license as checked out but not as part of the total licenses in use.

METRICS

  • For web Javascript, added metrics for Javascript 6 classes.

WEB PARSER

  • For web Javascript, changed relation kind for Javascript 6 ‘export … from file’ to a ‘reexport’ relation (previously it was’ export’). Added a new ‘reexport all’ relation for ‘export * from file’.

Understand Build 829

(Build b829) – 19 Feb 2016

CODECHECK

  • Updated MISRA 2008 rule 0-1-7 and All Check script discardedReturnValues.upl to correctly handle templated constructor initialization lists.
  • Updated MISRA 2008 rule 7-5-4, MISRA 2004 rule 16.2, HIS rule 12, and All Check script noRecursion.upl to point violation at the instance of recursion.
  • Updated MISRA 2008 rule 7-1-2 and All Check script parameterShallBeDeclaredAsConst.upl to have a configurable option to treat parameters passed to another function as modified.
  • Updated All Check script externalTypeMismatch.upl to have a configurable option to treat MACROs without a value as an empty string.
  • Updated All Check script constRefParam.upl to ignore move constructors.
  • Updated All Check script oneVariablePerLine.upl to correctly handle range based loops.

GENERAL

  • Fixed crash on switching projects with the contextual information sidebar open.
  • Fix bug where file extension to file type mapping was broken.
  • Fixed an issue where the expand/collapse icon would disappear in the Project Config dialog.

LICENSING

  • Allow resizing of the License Setup Dialog.

STRICT PARSER

  • Fixed invalid entity kind for functions called in a template parameter dependent context and found through a using declaration. Added missing 'Using' reference to templates referenced in a using declaration.
  • Fixed duplicate references to constructor call arguments in template class instantiations.

WEB PARSER

  • For Web Javascript, made changes to handle symbol lookup and refresh parsing for modules.
  • For Web html and xml, fixed bug that caused invalid syntax errors and incorrect line counts.

Understand Build 827

(Build b827) – 12 Feb 2016

CODECHECK

  • Updated MISRA 2012 rule 8.2 and All Check script functionsTypesInPrototypeForm.upl to correctly handle functions declared with template parameters.
  • Updated MISRA 2012 rule 6.1 and 6.2 as well as All Check scripts bitFieldsDeclareWithAppropriateType.upl and singleBitNamedBitFieldsNotSigned.upl to properly handle nested typedef(s).
  • Fixed bug in MISRA 2008 rule 2-13-1, MISRA 2004 rule 4.1, and All Check script onlyStandardEscapes.upl where #include directives that included a \ character were flagged as violations.

LICENSING

  • Fixed licensing issue with Linux when adding an additional license.

PROJECT

  • When converting projects to relative mode, don't convert files above the project directory.
  • Fixed project browser file sync.

Understand Build 826

(Build b826) – 10 Feb 2016

CODECHECK

  • Fixed a bug in MISRA 2012 rules 5.2 and 5.3, MISRA 2008 rule 2-10-2, MISRA 2004 rule 5.2 and All Check script identifiersDistinctInScope.upl and scopeHiding.upl where certain file endings were not handled correctly.
  • Updated MISRA 2012 rule 8.3, MISRA 2008 rule 3-2-1, MISRA 2004 rule 8.3, and All Check scripts allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl to properly handle functional MACRO expansion.
  • Updated MISRA 2008 rule 0-1-4 and All Check script singleUseVariables.upl to not test template parameters.

GENERAL

  • Fixed crash on override definition.

GRAPHS

  • UML Sequence Diagram updated to show the defined in instead of the parent (if valid).
  • Updated the UML Sequence Diagram Visio export to fix an issue with malformed Visio code.

PARSER

  • Add support for displaying scopes in assembly files.

Understand Build 825

(Build b825) – 5 Feb 2016

CODECHECK

  • Fixed bug in MISRA 2008 rule 15-3-7 and All Check script catchAllHandlerShallOccurLast.upl where nested try .. catch blocks and successive try .. catch blocks were not tested correctly.
  • Fixed bug in MISRA 2012 rule 8.2 and All Check script functionsTypesInPrototypeForm.upl where functions built with MACROs were not handled correctly.
  • Updated MISRA 2012 rule 8.4 and All Check script compatibleDeclarationVisibleWhenExternalLinkageIsDefined.upl to not run on function templates.
  • Fixed bug in MISRA 2008 rule 15-5-1 and destructorsNotThrowException.upl where destructors defined by MACROs were not handled correctly.
  • Updated MISRA 2008 rule 7-1-1, All Check scripts unmodifiedVariablesShallBeConst and separateVariableDeclaration.upl to correctly handle template parameters.
  • Updated MISRA 2008 rule 11-0-1 and All Check script nonPodMemberDataPrivate.upl to ignore class templates.
  • Updated MISRA 2012 version 8.2 and All Check script functionsTypesInPrototypeForm.upl to allow for a MACRO defined as void to serve as an empty parameter list.
  • Updated MISRA 2004 rules 8.10 and 8.11 as well as All Check scripts explicitStaticWhenInternal.upl and staticLinkageWhenPossible.upl to not test function templates.
  • Updated operandOfSideEffect.upl to handle lambda functions correctly.
  • Updated MISRA 2008 rule 3-1-1 and All Check script possibleToIncludemultipleTranslationsWithoutViolatingOneDefinition.upl to not run on class template methods.
  • Updated MISRA 2004 rule 16.1 and All Check script noVarArgs.upl to no longer check implicit declarations.
  • Updated MISRA 2008 rule 6-4-6, MISRA 2004 rule 15.3 and All Check script switchHasDefault.upl to correctly handle MACROs used to build switch statements.

COMMANDLINE

  • Updated Und Settings -CommandAddMode to correctly add files and directories to the project as Relative or Absolute independent of the Settings -AddMode configuration.

LICENSING

  • Licensing dialog – Fixed a text issue with multiple "days" showing up.

PROJECT

  • Updated the New Project Wizard so that none of the languages are on by default during the initial new project setup.

WEB PARSER

  • For Web Javascript, made changes to allow parsing of Javascript 6 classes.
  • For Web Javascript, made changes to handle import and export syntax for Javascript 6.

Understand Build 824

(Build b824) – 29 Jan 2016

CODECHECK

  • Updated MISRA 2012 rule 8.4 and All Check script compatibleDeclarationVisibleWhenExternalLinkageIsDefined.upl to ignore main.
  • Updated incompleteConstructorInitializationList.upl to handle class templates correctly.

GRAPHS

  • Update to UML Sequence Diagram. Shows undefined functions in their own lifeline.

PROJECT

  • Fixed failure to update fuzzy/strict settings panels on change.

STRICT PARSER

  • Fixed worker process crash on malformed lambda.

Understand Build 823

(Build b823) – 26 Jan 2016

CODECHECK

  • Fixed a bug in MISRA 2008 rule 4-5-1, MISRA 2004 rule 12.6 and All Check script booleanOperatorShallBeUsedCorrectly.upl where the token following a boolean was not being tested.
  • Add Regular Expression option to Naming Convention Checks.

COMMANDLINE

  • Fixed failure to start Und in interactive mode.
  • Updated Und version with the "-dbversion" switch. This will allow the users to view the database version creation and modified build number. The database "-db" will need to be supplied. I.E. und version -dbversion somedatabase.udb

PROJECT

  • Fixed crash on project rescan.

Understand Build 822

(Build b822) – 22 Jan 2016

CMAKE

  • Fixed relative name lookup.

CODECHECK

  • Updated MISRA 2012 rule 8.6 and All Check script identifierWithExternalLinkageOneDefinition.upl to not run on unknown or undefined objects.
  • Updated MISRA 2008 rule 8-4-2, MISRA 2004 rule 16.4, and All Check script sameIdentifiersInDeclAndDef.upl to use lexeme->ent for greater accuracy.
  • Fixed a bug in MISRA 2012 rule 8.2, MISRA 2008 rule 8-4-2, MISRA 2004 rule 16.4, and All Check scripts functionsTypesInPrototypeForm.upl as well as sameIdentifiersInDeclAndDef.upl where function MACRO expansion was not handled correctly.
  • Updated MISRA 2012 rule 5.8 and All Check script externalIdentifiersUnique.upl to no longer test unknown entities.
  • Fixed bug in missingParameterName.upl where >> was not handled correctly.

ECLIPSE

  • Update Eclipse plugin on update site to version 1.1.3.

GENERAL

  • Changed new project wizard to allow import from CMake compile command databases.

GRAPHS

  • UML Sequence Diagram C, fix for an issue where functions do not have a valid parent.

LICENSING

  • Fixed an issue with the license server not returning a valid license when looking for the earliest available non maintenance expired license.

METRICS

  • For C#, added knot count metrics.

PROJECT

  • Allow files and directories that are automatically added during analysis to be excluded from the project instead of removed entirely. This means that they won't be re-added during subsequent analyses.
  • Fix rescan to not force a full reparse of MSVC projects.

VISUALSTUDIO

  • Add support for MSVC 2015.

Understand Build 821

(Build b821) – 15 Jan 2016

ADA

  • Added new 'end body' relations for ends of program unit bodies. Made declare relations for 'accept..do' statements 'declare body' relations.

CODECHECK

  • Fixed a bug in missingParameterName.upl where a false positive was thrown when a std::array object was used as a parameter.
  • Updated HIS 01 and CommentCodeRatio.upl to have an option to run on either per file or per function.
  • Updated unusedLocal.upl to ignore __range local object that's created during a range based loop.
  • Updated MISRA 2004 rule 16.3, All Check script allFuncParamsNamed.upl and the InfoSiftr.pm library to utilize entities for more accurate parameter parsing.

COMMANDLINE

  • Updated Und to include an -exitstatus (lowercase) command line parameter for CodeCheck. This will override the errorlevel returned by Und with the CodeCheck violation count.

GENERAL

  • Added Scopes List support for basic, cobol, javascript, php, plm, vhdl and xml.

GRAPH

  • Updated the UML Sequence Diagram to display the function filename instead of the function name in the lifeline header. The activation/click lifeline header will be for the file as well (not the function).

PERL

  • Updated a_globals.pl with configurable flag options for testing local objects used across multiple program units.

PROJECT

  • Don't show watched directories that are empty because all of their contents are excluded.
  • Added project settings page to manage CMake compile command databases.
  • Add CMake compile command databases as synced project files.

STRICT

  • Fixed missing define reference to exception catch variable decls defined inside of lambdas.

VHDL

  • Changed 'end' references to 'end body' for package and subprogram body declarations.

Understand Build 820

(Build b820) – 8 Jan 2016

CODECHECK

  • Fixed bug in MISRA 2008 rule 9-3-2 and All Check script memberFunctionsShallNotReturnNonConstHandles.upl to ignore methods with a const return type.
  • Updated MISRA 2012 rule 8.6 and All Check script identifierWithExternalLinkageOneDefinition.upl to have an option for exempted namespaces.
  • Updated MISRA 2012 rule 8.6 and All Check script identifierWithExternalLinkageOneDefinition.upl to not test lambda functions.

ECLIPSE

  • Removed the limit on how many files could be added to a new Understand project when creating it with the Eclipse plugin.

GENERAL

  • Updated the View Menu and removed the Scope List View button from the toolbar.

GRAPHS

  • Add an option to the UML Class diagram to hide standard library classes.

JAVA PARSER

  • Added support for lambda parameter type inferrence.

STRICT

  • Fixed end reference location of lambda functions.

TOOLS

  • Fixed icon size issue and extra separator for Mac in the UserTools toolbar.

Understand Build 819

(Build b819) – 25 Dec 2015

EDITOR

  • Fixed regression in triggering indent after inserting opening curly braces.

GRAPHS

  • Added C support for UML sequence diagrams.

JAVA PARSER

  • Fixed bug where references to any class '?' indicator caused an increment in the count of coupled classes.

Understand Build 817-818

(Build b817-818) – 18 Dec 2015

  • BUILD 817: Chinese Special Build

API LEXER

  • Fixed bugs in column determination in api lexer when handling certain c++ macro expansions.

C#

  • Add C# project option to control if extending standard classes is counted in MaxInheritanceTree metric. The default behavior in new and existing projects is to not count standard classes in the MaxInheritanceTree metric.

CODECHECK

  • Updated Scott Meyers 9 and All Check script virtualFUnctionCallInConstructorDestructor.upl.
  • Updated MISRA 2008 rule 3-2-4, MISRA 2004 rule 8.9, and All Check script externalLinkageExactlyOneDefinition.upl to not test lambda functions.

COMMANDLINE

  • Fixed an issue with the -CommandAddMode not adding relative paths.

IREPORT

  • Add architecture information to the API Info interactive report.

JAVA

  • Added super name to type text for variables and parameters defined using <? super type-name>.
  • Add java project option to control if extending standard classes is counted in MaxInheritanceTree metric. The default behavior in new and existing projects is to not count standard classes in the MaxInheritanceTree metric.

PROJECT

  • Removed info browser sync to the current selection when the project browser gains focus.

SEARCH

  • Fixed Find in Files Architectures to load correctly on a per project basis.

Understand Build 816

(Build b816) – 14 Dec 2015

COBOL

  • Fixed failure to analyze free format files with compiler directives at column 6.

JAVA API

  • Added 'type' and 'freetext' functions to Entity class.

STRICT PARSER

  • Fixed regression in build 815. Unknown files got an empty name.

Understand Build 815

(Build b815) – 12 Dec 2015

API

  • Fixed bugs in api lexer when handling c++ macro expansion.

CODECHECK

  • Fixed bug in MISRA 2008 rule 0-1-7 and All Check script discardedReturnValues.upl where a preprocessing #if was being treated as a standard if statement.
  • Updatd MISRA 2008 rule 8-5-1 and All Check script variablesShallHaveValueBeforeUsed.upl to not test template parameters.
  • Updated MISRA 2008 rule 3-2-3, MISRA 2004 8.8, and All Check scripts typeObjectOrFunctionShallBeDeclaredOnce.upl and extDeclareOneFile.upl to not run on Implicit declarations.
  • Updated missingParameterName.upl to correctly handle templated parameters.
  • Updated MISRA 2004 rule 16.3 and All Check script allFuncParamsNamed.upl to ignore =delete and =default delcarations.

COMPILER

  • Add support for @ extension in MPLAB XC8 compiler support.
  • Add support for Renesas RL78 C++ compiler.

GENERAL

  • Updated the bottom layout area to function exactly like the left layout area (saves and restores correctly instead of grouping on startup).
  • IReport Modify the API Info Interactive Report to print entity names as objects that can be interacted with.

JAVA PARSER

  • Added generic type arguments to type text for variables and parameters.

METRICS

  • Add support for MaxNesting metric in c++ classes.

PYTHON API

  • Fixed Ent.refs() signature in class summary to mention 'unique' parameter.

SEARCH

  • Fixed an issue with changing the Find in Files dialog to the Directory setting failing to resize properly.
  • Updated the Find in Files dock/drawer to close the dock on Esc if a dock and close the drawer on Esc if a drawer.

STRICT PARSER

  • Fixed header resolve errors when headers are found in the working directory or when the input character encoding is different from the system encoding.

Understand Build 814

(Build b814) – 4 Dec 2015

CODECHECK

  • Updated MISRA 2008 rule 9-3-3 and All Check script methodsMadeConstOrStaticIfPossible.upl to have an option to ignore virtual functions.
  • Updated MISRA 2008 rule 7-1-2 and All Check script parameterShallBeDeclaredAsConst.upl to detect simple cases where the parameter is passed out of scope.
  • Fixed bug in MISRA 2012 rule 5.3, MISRA 2008 rule 2-10-2, MISRA 2004 rule 5.2, and All Check script scopeHiding.upl where overriding functions may be detected as false positives.
  • Updated MISRA 2012 rule 8.3, MISRA 2008 rule 3-2-1, MISRA 2004 rule 8.3, and All Check rule allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl to use expanded MACRO text.
  • Updated All Check script destructorSetDataPtrTo0.upl to correctly handle C style and C++ style type casting.

PROJECT

  • Updated the project configuration rescan to properly scan for the file types that may have been changed but not saved yet (while still in the configuration dialog).

STRICT PARSER

  • Fixed possible crash after a large number of consecutive file-not-found errors.
  • Disabled error related to MS-style inline asm. Inline asm isn't analyzed.
  • Added some missing special keywords (e.g. __declspec) to macro expansion. Fixed errant macro expansion tokens expanded from macro names passed as arguments.

WEB PARSER

  • For php, fixed crash on files with unterminated comments.

Understand Build 813

(Build b813) – 27 Nov 2015

CODECHECK

  • Fixed an issue with CodeCheck results where Entity name and Check result error message were not displaying html text correctly.

PROJECT

  • Updated Und to allow users to set the c++ option 'Kill Worker Processes After'. -c++KillWorkerProcessAfter – Note that valid values range between 1 and 99 minutes.
  • Added -commandaddmode option to Und. This will allow for users to specify to add includes, macros etc. in a different addmode for the Und Command (single use). Arguments are 'Absolute' or Relative'.

Understand Build 812

(Build b812) – 21 Nov 2015

CODECHECK

  • Updated MISRA 2008 rule 8-3-1 and All Check script overridingVirtualFunctionsShallNotChangeDefaults.upl to not test constructors and destructors.
  • Fixed but in MISRA 2008 rule 9-3-3 and All Check methodsMadeConstOrStaticIfPossible.upl where non static data members were not being detected properly.
  • Updated MISRA 2004 rule 16.3, All Check script allFuncParamsNamed.upl, and the library InfoSiftr.pm to properly utilize MACRO expansion when the 'Save expanded Macro text' option is turned on.
  • Updated MISRA 2004 rule 8.11 and All Check script explicitStaticWhenInternal.upl to not run on classes.
  • Updated MISRA 2008 rule 17-0-3 and All Check script standardLibraryFunctionsShallNotBeOverridden.upl to not run on classes.
  • Updated MISRA 2004 rule 8.10 and All Check script staticLinkageWhenPossible.upl to not run on classes.

PYTHON PARSER

  • Fixed bug where an import from a subpackage using 'from . import name' caused an 'implicit import' relation to the __init__.py file in the current directory.

SEARCH

  • Updated the editor search line (Ctrl+f) to ensure that the search box is at least so wide and made the "Search Wrapped" label a tooltip to provide additional space.
  • Updated Find in Files window to allow the dock/undock feature (pushpin icon) to behave correctly. Note that Escape will not close the window when not free floating.

STRICT PARSER

  • Show calls to functions marked with the noreturn attribute as an exit from the function in the control flow graph.

Understand Build 811

(Build b811) – 13 Nov 2015

CODECHECK

  • Fixed a few Perl warnings being caused by mismatched number of parameters.
  • Updated MISRA 2012 rule 8.2 and All Check script functionsTypesInPrototypeForm.upl to correctly handle C++ 11 lambda functions.
  • Updated MISRA 2012 rule 8.2 and All Check script check functionsTypesInPrototypeForm.upl to ignore template specializations.

COMMANDLINE

  • Updated Und to accept wildcards when using the command line ignore options (-C++Ignore, -C++IgnoreAdd, -C++IgnoreRemove).

GENERAL

  • Fixed loss of bookmarks after analysis.

PROJECT

  • Updated the add directory (new project) in Understand and Und to not ignore the exclude when setting the watch property to off.

STRICT PARSER

  • Reduced default template instantiation depth to 128 on Windows.

TOOLS

  • Updated UserTools to not try to run the command if empty.

Understand Build 809

(Build b809) – 6 Nov 2015

C# PARSER

  • Added support for c# 6.0 index initializers.
  • Fixed bug loading some reference dll files that have structures used as generic actual parameters for parent classes. This fix may cause changes to CountMethodAll and CountClassCoupled metrics.
  • Add support for MSVC 2015 C# project.
  • Added support for c# 6.0 string interpolation.
  • Added support for c# 6.0 exception filters.

CODECHECK

  • Updated MISRA 2008 rule 6-4-8, MISRA 2004 rule 15.5 and All Check script switchStatementShallHaveCaseClause.upl to allow for MACROs used in switch construction.
  • Updated MISRA 2008 rule 0-1-7 and All Check rule discardedReturnValues.upl to properly handle void casted member functions.
  • Fixed bug in MISRA 2008 rule 8-4-1 and All Check script functionsShallNotBeDefinedWithEllipsisNotation.upl to handle template functions correctly.

GENERAL

  • Fixed popup menu issues in entity filter and 'C++ (Strict)' options panel on Linux and Solaris. Fixed command line warnings related to the same issue.
  • Potential fix for Getting Started News hanging and potentially crashing Understand if shutting down in that state.

LICENSESERVER

  • Updated licensing text email body for sending an almhostid to scitools.
  • Updated the LicenseServer.exe to clear all data and load the new data in the reporting (graph and chart) if a new log file is selected.

STRICT PARSER

  • Fixed invalid implicit init reference for data members with an in-class initializer.

Understand Build 808

(Build b808) – 31 Oct 2015

C# PARSER

  • Added support for VS 2015 property initialization.
  • Added support for the c# 'using static' directive and for the use of an expression as a property getter.
  • Added support for c# 6.0 null-conditional operators.

CODECHECK

  • Updated MISRA 2008 rule 7-1-2 and All Check script to correctly handle const type * const correctly.
  • Fixed bug where MISRA 2008 rule 15-1-1 and All Check script throwShallNotItselfCauseAnException.upl could get stuck in an infinite loop.
  • Updated MISRA 2012 rule 8.6 and All Check script identifierWithExternalLinkageOneDefinition.upl to not fail in the event of an entity without a reference.
  • Updated CodeCheck Ignores to use the script error message without the variables filled in to compare when removing ignored violations.
  • Updated noDynamicMemory.upl to have an option to ignore smart pointers.

PARSER

  • Improve c++ resolve time.

STRICT PARSER

  • Fixed possible worker process crash on template parameter dependent bit width expressions.
  • Added option to kill worker processes after timeout. Default is two minutes.
  • Fixed hang on abort when reporting error messages.

TOOLS

  • Added links to LiveChat for evaluation customers.

WINDOW

  • Fixed split workspace drop into chosen tab order.

Understand Build 807

(Build b807) – 23 Oct 2015

CODECHECK

  • Updated MISRA 2008 rule 8-0-1 and All Check script anInitDeclaratorListShallConsistOfASingleInitDeclarator.upl to not throw a false positive on template declarations that use a comma.
  • Updated catchConstRef.upl to have an option to ignore ellipsis.
  • Add Hersteller Intiative Software (HIS) Metrics to CodeCheck.
  • Updated MISRA 2008 rule 8-4-4 and All Check script functionIdentifierShallBeUsedToCallOrAddress.upl to correctly handle function templates.
  • Updated MISRA 2008 rule 15-3-5 and All Check script aClassTypeExceptionWillBeCaughtByReference.upl to be more accurate.

FUZZY PARSER

  • For fuzzy c++ parser, fixed bug where deref references could be erroneously created for some parameter declarations.

INFOBROWSER

  • Updated the New Information Browser key command to not send a sync to the other Information Browsers if the Ctrl key is used. Used the Ctrl key to stay uniform with the option to hold the Ctrl key when using the 'View Information' context menu to open a new IB.

STRICT PARSER

  • Added missing throw and catch references.

TOOLS

  • Updated the hover text in User Tools – Menu Text.
  • Fix for the User Tool ordering with the Move Up and Move Down buttons.
  • User Tools – Added convenience menu items to directly access parts of the User Tools configuration.

WEB PARSER

  • For Php, fixed bug where some static class member references were not recognized.

Understand Build 806

(Build b806) – 17 Oct 2015

C# PARSER

  • Fixed bug where same named parameters within overloaded methods had the same uniquename.

CODECHECK

  • Updated MISRA 2004 rule 16.3 and All Check allFuncParamsNamed.upl to have a configurable option to ignore fuctions declared with macros.
  • Removed incremental find popup menu because of resizing and other issues.
  • Updated All Check script uninitialized_objects.upl to ignore static and global objects.
  • Updated MISRA 2012 rule 8.7 and All Check script noExternalLinkageUnlessExternal.upl to recognized friendby references as external usage.
  • Updated All Check script fixedValuesConstants.upl to have an option to ignore pragma directives.

COMPARE

  • Potential fix for a crash in the DiffView component.

DOCUMENTATION

  • Fix title in 4.0 help documentation.

EDITOR

  • Fixed bookmarks disappearing and getting lost after removing the preceding line.
  • Avoid triggering auto-indent with '{' in the middle of a line.

FUZZY PARSER

  • Fixed fuzzy c++ parser to pickup references to constants used as parameters initializers in function declarations and definitions.

JAVA PARSER

  • Fixed bug where same named parameters within overloaded methods had the same uniquename.

LICENSING

  • License Server Status (licenseserver.exe) report updated to account for multiple 4.0 licenses.

PROJECT

  • Removed the option to stop analysis and keep partial analysis data.
  • Fixed deadlock when trying to abort analysis during the resolve phase.

STRICT PARSER

  • Restore some missing init references.
  • Fixed reference kind of deleted special member functions.
  • Allow language standard flag to be spelled with two dashes and normalize to lower case.

Understand Build 805

(Build b805) – 10 Oct 2015

C# PARSER

  • Fixed invalid syntax error when using 'as <type>' in a conditional expression.

CODECHECK

  • Fixed bug in MISRA 2008 rule 16-1-1, MISRA 2204 rule 19.14 and All Check script definedPreProcessorOperatorTwoStandardForms.upl where chained defined operators inside a larger marcro defintions was not handled correctly.
  • Updated MISRA 2008 rule 18-4-1 and All Check script noDynamicMemory.upl to allow for C++ 11 method and constructor delete.
  • Updated MISRA 2008 rule 8-4-4, MISRA 2004 rule 16.9 and All Check script functionIdentifierShallBeUsedToCallOrAddress.upl to correctly handle member functions and functions defined within a namespace.

COMMANDLINE

  • Updated the Und dependencies export 'longnoroot' and 'root' format to export the correct root.

EDITOR

  • Fixed possible crash in auto-indent within C/C++ preprocessor conditionals.

FAVORITES

  • Updated the Favorites 'New Favorites' dialog to have focus on the line edit box.
  • Updated Favorite Groups to select the next item in the list after removing the currently selected item.

GENERAL

  • Add Understand icon to the install directory to make shortcuts easier to create.
  • Fixed invalid prompt to save modified editors after canceling the project configuration dialog.

PROJECT

  • Fixed a case sensitivity Windows issue with the 'Browse for Missing Includes' dialog.
  • Fixed file encoding override copy/paste.

STRICT PARSER

  • Fixed failure to remember override settings for C/C++ language standard and sysroot when changed from the settings dialog.
  • Fixed C/C++ language standard override copy/paste.
  • Recognize 'h++' as a header extension.

Understand Build 804

(Build b804) – 5 Oct 2015

COMMANDLINE

  • Updated Und to use a Table of Contents for the -html and -htmlsnippets CodeCheck report export.

DOCUMENTATION

  • Update documentation to reflect 4.0 changes.

GENERAL

  • Clarify user_api functions that return temporary strings that must be copied immediately by the caller.
  • Fixed crash when closing or switching projects with annotations.
  • Fixed failure to update title bar file name in split view.

JOVIAL

  • Made Jovial 3 subroutines declared in compool files but never implemented have kind 'unresolved subroutines'.

SEARCH

  • Fixed a Find in Files issue where Relative and Absolute directory paths were not being searched correctly.

Understand Build 803

(Build b803) – 2 Oct 2015

C# PARSER

  • For c#, fixed possible crash in attribute parsing.

CODECHECK

  • Fixed bug in MISRA 2008 rule 6-6-1 and All Check script labelReferencedByAGotoShallBeInSameBlock.upl where /* and */ are used in alternating strings.
  • Updated MISRA 2008 rule 7-1-2 and All Check script parameterShallBeDeclaredAsConst.upl to ignore function pointer parameters.
  • Upgraded MISRA 2008 rule 2-10-5, MISRA 2004 rule 5.5 and All Check staticReuse.upl to include an option to ignore functions that are unknown or unresolved.

FUZZY PARSER

  • Fixed bug in fuzzy c++ parser where macros defined in local scopes were not handled properly.

GRAPHS

  • Rename deferred option in Control Flow Cluster graph to ‘Show Finally-Block Flows’ and enable by default.

IREPORT

  • Add Interactive Report to display API Information for all entities (previously the All Info script).

JOVIAL

  • Added essential complexity and path count metrics.
  • Improved handling of Jovial 3 goto switch statements in control flow graph.
  • Fixed problem where the use of Jovial 3 goto switch statements did not increase the cyclomatic complexity.

SEARCH

  • Fixed an issue where adding Architectures, etc.. would resize the Find in Files dialog inappropriately.

STRICT PARSER

  • Added a persistent warning dialog box for strict parser errors.

TREEMAP

  • Updated the Metrics – TreeMap hover text.

Understand Build 802

(Build b802) – 26 Sep 2015

CODECHECK

  • Added MISRA 2012 rule 15.4 and MISRA 2004 rule 14.6 to Code Check. Also updated MISRA 2008 rule 6-6-4 and All Check script noMoreThanOneBreakOrGoto.upl to be more accurate and robust.
  • Added MISRA 2012 rule 15.7 to Code Check.
  • Added MISRA 2012 rule 15.5 to Code Check.

COMMANDLINE

  • Fixed an issue with Und not adding include paths with environment variables correctly on windows.

FUZZY PARSER

  • Added support for National Instruments LabWindows/CVI compiler to fuzzy c++ parser.

JOVIAL

  • Added control flow graphs for Jovial.
  • Added api lexers for Jovial.

    LICENSING

    • Updated Mac SDL licensing so that it will not be overwritten on future updates.

    STRICT PARSER

    • Added automatic detection of available Apple SDKs on Mac.
    • Fixed regression in showing Windows-specific options in target settings.
    • Downgrade unqualified pointer to member function error to a warning in MSVC compatibility mode.
    • Enable modules by default for Objective-C files.
    • Added better support for blocks.
    • Fixed possible crash on bit field expressions that don't evaluate to an integer constant.
    • Added C++14 language standard options to the configuration panel.

  • Understand Build 801

    (Build b801) – 19 Sep 2015

    BUILDSPY

    • Added automatic detection of -std flag for switching the C/C++ language standard.

    CODECHECK

    • Fixed a bug in MISRA 2012 rule 5.1 and externalIdentifiersShallBeDistinct.upl where unresolved entities were incorrectly handled.
    • Fixed bug in MISRA 2012 rule 15.6 and All Check script iterationStatementShallBeCompoundStatement.upl where do .. while loops were not being handled correctly.
    • Fixed bugs in MISRA 2012 rule 8.4, 6.1 and both of their All Check counterparts as well as externalTypeMismatch.upl to correctly handle typedefs.
    • Updated MISRA 2008 rule 0-1-7 and All Check script discardedReturnValues.upl to handle inline void declarations correctly.
    • Fixed an issue with the tabs shifting focus incorrectly when sorting alphanumerically through the dimple menu and on the CodeCheck tab title change (when alphanumeric sorting is enabled). Also fixed the CodeCheck modified icon (red/green) to show correctly.
    • Updated MISRA 2012 rule 8.6 and All Check script identifierWithExternalLinkageOneDefinition.upl to include a note about adding system header files to project.

    GRAPHS

    • Fixed an issue where the .DOT export option was not available on various graph types.
    • For Ada control flow graphs, fixed bug where text was missing for 'abort' statements and select 'when' statements.
    • Fixed a crash on Mac when enabling the .DOT export.

    STRICT PARSER

    • Fixed analysis of preprocessed files containing GNU line markers.
    • Added support for all MSVC extensions used in MFC/ATL headers.

    WEB PARSER

    • Fixed bug where entity fullnames sometimes had double '..' sequences.
    • For Javascript, fixed bug in nodejs mode where 'exports' properties from different files were being merged.

    Understand Build 800

    (Build b800) – 10 Sep 2015

    CODECHECK

    • Fixed a bug in MISRA 2008 rule 3-2-1 and All Check script allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl where declarations of type ( Function ) ( Parameters ) were not handled correctly.
    • Added MISRA 2012 rule 15.3 to Code Check.
    • Fixed bug in MISRA 2008 rule 3-2-1 and All Check script allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl where DeclareIn Using references were handled improperly.

    COMMANDLINE

    • Added correct usage text for Und analyze -rescan. Affected files will be analyzed after the rescan.
    • Added a new switch -rescanwithoutanalyze to allow users to utilize the Und rescan ability without requiring an analyze of the added/removed files.

    GENERAL

    • Fixed sluggish performance in updating the menu system with the new User Tool "Disable for this project" feature.

    LICENSING

    • Update dongle licenses to support newer Operating Systems.
    • Fixed an Understand Portable License issue where a weird dialog appeared the first time Understand was run (clean installation) and the portable license dongle was in use.

    METRICS

    • Fix calculations of computed project metrics, such as Cyclomatic.

    PYTHON PARSER

    • Fixed bug where 'parent' of a python package was sometimes one of the referencing files.

    STRICT

    • Added missing init reference for C++11 in-class initialization of non-static data members.

    Understand Build 799

    (Build b799) – 5 Sep 2015

    CHANGE

    • Fix for potential crash when analyzing and accessing the Entity Comparison.

    COBOL

    • Added support for EJECT and SKIP1/SKIP2/SKIP3 statements.

    CODECHECK

    • Fixed a bug in MISRA 2008 rule 6-5-1 and All Check script forLoopShallContainASingleLoopCounter.upl where the new C++ 11 style for loop would crash the script.
    • Fix a CodeCheck issue when double clicking a Result code snippet and no valid entity is associated with that violation. E.G. TODO comment.
    • Fixed a bug in MISRA 2008 rule 3-2-1 and All Check script allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl where nested parenthesis within a declaration would crash the script.
    • Fixed bugs in MISRA 2008 rule 6-5-3, 6-5-5, All Check scripts loopControlVariableNotModifiedWithinConditionOrExpression.upl and loopCounterShallNotBeModified.upl where lexigraphically scanning the for loop did not handle C++ 11 style for loops correctly.
    • Updated externalIdentifiersShallBeDistinct.upl and identifiersDistinctInScope.upl to fail without a script error when scanning malformed code.

    FORTRAN PARSER

    • Fixed bug where some macro expansions caused problems in the control flow graph.

    GENERAL

    • Fixed an issue with File Dependency CSV Export Dialog hanging on Mac.
    • Fixed library link names for user API library on Mac.

    LICENSING

    • Updated the License Server to not allow the AlmFree command to free ToGo licenses.

    STRICT

    • Added option to compare include files by contents instead of path when adding found includes.
    • Fixed worker process crash on designated initialization in an anonymous struct or union.

    TOOLS

    • Updated User Tools to allow the user to disable a user tool depending upon the project loaded.

    Understand Build 798

    (Build b798) – 28 Aug 2015

    ADA

    • Changed allocation reference kind from a plain 'ref' to a 'use alloc'. Also, changed reference kind for a default formal subroutine from a 'call' to a 'ref default formal'.

    ANNOTATIONS

    • Fixed an issue with Annotations disappearing from various text files.

    CODECHECK

    • Updated MISRA 2012 rules 5.1, 5.8 and 8.5 as well as All Check script externalIdentifiersUnique.upl to be able to run on multi language projects.
    • Fixed bug in MISRA 2012 rule 7.3 where a bad entity was being passed to violation.

    COMPARE

    • Updated the Tools – Compare – Files results to display the MD5 hash when the files are considered the same.

    GENERAL

    • Previewer – Added a keybinding that allows users to toggle the previewer sync checkbox.
    • Fixed text typo in the Project Portability dialog.

    INFOBROWSER

    • Add includeby references to Pascal References IB field.

    PARSER

    • For Pascal/Delphi, made missing include file messages 'warnings' instead of 'errors' to be consistent with other languages.

    STRICT

    • Fixed possible crash on #include_next directives with the option to search for missing includes among project headers enabled.

    UPERL

    • Fixed crash on database load with external perl + understand module.

    Understand Build 797

    (Build b797) – 21 Aug 2015

    API

    • Fix error handling strings with parentheses in api lexer with macro expansion enabled.

    C# PARSER

    • Fixed bug where no 'end' reference was produced for anonymous types.

    CODECHECK

    • Updated MISRA 2008 rule 7-3-4 and All Check script usingDirectivesShallNotBeUsed.upl to include line and column numbers in violations.
    • Updated MISRA 2012 rule 8.5 to include file, line number and column number of one of the declare references.
    • Updated MISRA 2012 rule 8.3, MISRA 2004 rule 8.3, MISRA 2008 rule 3-2-1 and All Check script allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl to be more robust in the Strict parser.
    • Fixed potential crash in CodeCheck when jumping to violation code in the Results Locator.
    • CodeCheck – Terminology updated (Analysis – Inspect).
    • Updated name of noErrno to be consistent with other check names.
    • Added 'Fuzzy' tag to MISRA C 6.1, bitFieldsDeclaredWithAppropriateType.upl, singleBitNamedBitFieldsNotSigned.upl, and bitFieldsBoolOrExplicitSignedness.upl.
    • Updated MISRA 2012 rule 8.14 and All Check script restrictShallNotBeUsed.upl to include a notice about using C99 and later.
    • Updated MISRA 2012 rule 8.6 to include the Strict Only tag.
    • Added MISRA 2012 rule 15.6 and All Check script iterationStatementShallBeCompoundStatement.upl to Code Check.

    FUZZY PARSER

    • Fix bug handling MSVC solution files with '.' project subdirectory specifications.

    GENERAL

    • Fixed an issue with renaming not working properly on files with a different case.

    GRAPH

    • For control flow graphs, make change to better handle switch/case statements with no branch alternatives.

    INFOBROWSER

    • Bookmark and IB windows now will display the project name if there are multiple instances of Understand running and the windows are floating (not Docked).

    JAVA PARSER

    • Added Java Implicit Member Variable and Java Implicit Method kinds to represent the implicit array members 'clone' and 'length'.

    PASCAL PARSER

    • For Pascal/Delphi, fixed some problems with include file processing.

    STRICT PARSER

    • Fixed regression in saved macro expansion text for some functional macros.

    Understand Build 796

    (Build b796) – 15 Aug 2015

    ANNOTATIONS

    • Updated the orphaned annotations to allow the user to right click the annotation or to double click the orphan annotation detail and set the filter text.

    CODECHECK

    • Updated MISRA 2008 rule 6-5-3 and All Check script loopCounterShallNotBeModified.upl to be more accurate.
    • Fixed bug in MISRA 2004 rule 14.10 and All Check script danglingElse.upl where an else if statement that ended with preprocessing directives would not properly detect the dangling else.
    • Fixed a bug where MISRA 2012 rule 8.7 and All Check script noExternalLinkageUnlessExternal.upl where unresolved objects were being tested for parents.

    COMMANDLINE

    • Fixed an issue in Und where settings -override_c++Includes commands were crashing.

    INDEX

    • Fixed intermittent instant search indexer crash.

    STRICT

    • Fixed several saved macro expansion text issues.

    Understand Build 795

    (Build b795) – 10 Aug 2015

    ADA PARSER

    • Fixed possible crash on attempt to parse binary files as Ada source.

    ANNOTATION

    • Fixed crashes in Annotation Orphan management.
    • Fixed an Annotation issue when searching annotations and including orphans.

    CODECHECK

    • Updated MISRA 2004 rule 13.3, MISRA 2008 rule 6-2-2 and AllCheck script testingEqualityInFloatingPointValues.upl to also test for !=
    • Updated namespaceNamingConvention.upl to include a configurable option for file names and line numbers.
    • Updated CodeCheck result to sync when visiting the source code.
    • Updated MISRA 2004 rules 20.10 and 20.11 as well as MISRA 2008 rules 18-0-2, 18-0-3 and 18-0-5 to include a configurable option to allow more than one violation per file.
    • Fixed a bug in pointersMustBeInitialized.upl where pointers were not being tested unless the option box was checked.
    • Updated MISRA 2004 rule 6.5, MISRA 2008 rule 9-6-4 and AllCheck script signedBitFieldsUseful.upl to include the Fuzzy Only tag.
    • Fixed bug in MISRA 2004 rule 20.6 and AllCheck script noOffsetof.upl where not all references to forbidden macro were being checked.
    • Fixed bug in MISRA 2008 rule 3-1-2 where functions declared within another function were not being flagged as violations.
    • Fixed bug in MISRA 2004 rule 20.7 and MISRA 2008 rule 17-0-5 where setjmp macro usage was not properly detected.

    EDITOR

    • Fixed possible crash on startup or other interference with editor configuration from a local Lua installation with the LUA_PATH environment variable set.

    GENERAL

    • Fixed a Linux issue where the Project – Configure “Add a file” dialog was not always filtering correctly.
    • Fix to the Mac “Preferences” to be modal – keeps the application wide keybindings from activating when editing them in the Tools – Options/Preferences – Keybindings page.
    • Fixed a Linux issue of not being able to add an extensionless file during Project Settings – Add File dialog.

    GRAPHS

    • Add options to UML Class diagram to change layout direction and colorize edges for better visibility.
    • Potential fix for an issue in the Cluster Control Flow graphs.

    PARSER

    • For assembly, fixed possible crash in parse when Assembly is selected as a language but no assembly files are in the project.

    PASCAL PARSER

    • For Pascal/Delphi, fixed bug where some relations could be missing from include files.
    • For Pascal/Delphi, fixed bug where line count metrics for some include files were zero instead of the actual count value.

    STRICT PARSER

    • Added simple interface to recursively search a directory for frameworks.

    Understand Build 794

    (Build b794) – 1 Aug 2015

    BUILDSPY

    • Fixed regressions in detecting the source file in some compile commands.
    • Fixed library link paths on Mac.

    FORTRAN PARSER

    • Fixed bug where use of 'endprocedure' and 'endsubmodule' in fixed format files caused the creation of invalid local variables.
    • Fixed bug in fixed format files where reference column numbers were incorrect when multiple semicolon separated statements appeared on a single line. These statements also appeared incorrectly in the control flow graph.
    • Made change to create an unknown module when a submodule's parent is not found.
    • Added support for Fortran 2008 lock and unlock statements.
    • Added intrinsics08.txt file with list of intrinsic functions and modules for Fortran 2008. Added some missing names to the Fortran 2003 instrinsics file.
    • Improved handling of unknown types. All unknown types with the same name now merge into a single entity instead of generating a separate entity for each referencing program entity.

    GENERAL

    • Fixed an issue where the Info Browser – Visit Next and Visit Previous would not leave the focus of a released window.
    • Save-All toolbar button now displays properly.
    • Fixed an issue with the Navigator not marking unsaved edited files with "*" correctly.

    LICENSING

    • Fixed an issue in almtest where ToGo debug info was showing unnecessarily.

    REPORTS

    • Fixed bug where the line break was sometimes missing after the first line of an html object cross ref item.

    SEARCH

    • Find in Files – Updated to dynamically resize the height of the dialog depending upon the "Find In" selection.
    • Find in Files – Open Files – Fixed to use the File Types field correctly.

    Understand Build 793

    (Build b793) – 27 Jul 2015

    PARSER

    • Improved parsing of source files with apparent embedded null characters, due to missing or improper file encoding specifications.

    PYTHON PARSER

    • Made change to count docstring literals as comments instead of statements.
    • Fixed bug where an ‘import from’ an unknown module or package could result in an ‘unknown module’ entity with itself as the ‘parent’.

    SEARCH

    • Find in Files – Moved the ! checkbox for file types to a separate line with text for clarification. Fixed the buttons to appear correctly on the Mac.

    STRICT PARSER

    • Fixed worker process crash on project header lookup from some #include_next directives.

    WEB PARSER

    • For web xml, fixed bug where invalid xml sometimes resulted in zero values for line count metrics.

    Understand Build 792

    (Build b792) – 18 Jul 2015

    ANNOTATIONS

    • Wrap Annotations in hover text in editor.

    CODECHECK

    • Fixed bug in MISRA 2004 rule 8.8 and corresponding All Check script where declaration of namespaces was not ignored.
    • In Codecheck Checks Panel, wrap the "Detailed Description: File\Path\…" label when it exceeds the width of the window.
    • Updated the Ignored Violations to display the notes as a column and allow for word wrap.
    • In Code Check Checks view, allow columns to be user-resized.
    • Added next page and previous page shortcuts to the codecheck window that can be set under tools->options->keybindings->codecheck.
    • Fixed a bug in MISRA 2008 rule 11-0-1 and it's corresponding All Check script where a POD class was treated as a Non-POD class.

    GENERAL

    • Only show indent file and indent selection options in files that support it.
    • Fix custom architectures to remember file entities when project portability changes.
    • Fix editor hover text for unknown functions to match info browser for the parameters and return type.
    • Add a right click menu option for c macros without a define reference to define/change the project value.
    • Possible fix for issue, editor tab tooltips sometimes missing.

    LICENSESERVER

    • Update to log usage and provide various reporting tables and graph.

    LICENSING

    • Almstatus – Updated the -b attribute to include the CheckedOut and CheckedIn status numbers. Also updated the -? (help) to detail the -b csv format.
    • Almhostid – Updated to include a -s to show all almhostid's including duplicates. Fixed the Almhostid descriptions that were incomplete or absent.

    PASCAL PARSER

    • For Delphi Pascal, fixed invalid syntax error parsing some nested type declarations.
    • For Pascal, fixed crash on parsing units with the same name as the containing namespace.

    PROJECT

    • Remember Project Browser File Sync checkbox state when Understand closes and reopens.

    SEARCH

    • Fixed Project Browser and Information Browser resize when showing incremental search.

    Understand Build 791

    (Build b791) – 10 Jul 2015

    ANNOTATIONS

    • Make the add/edit Annotations dialog non-modal. If a reparse invalidates the entity (or the scope for the line), then the Annotations cannot be saved.

    EDITOR

    • Added an option to wrap Annotations at a given column, available under tools->options->editor->advanced settings.
    • Show error message for crash on startup from missing or invalid configuration files (instead of silently failing).

    FORTRAN PARSER

    • Fixed bug in fixed format files where use of a double word keyword sometimes caused an incorrect column number for the following entity reference.
    • Make individual elements of Fortran fullname IB field clickable.
    • Add Children Information Browser field for Fortran modules.
    • Add Parent Information Browser field for Fortran submodules.
    • Fixed some syntax errors parsing Fortran 2008 submodules in fixed format files.

    GENERAL

    • Fix crash on import architecture from xml for xml files with extra spaces in the listed entities.

    LICENSESERVER

    • Fixed an issue where almhostid did not show on Mac/Linux. Also added the stop server for Mac/Linux.

    LICENSING

    • Almhostid – removed duplicate host ids.

    SEARCH

    • Fixed an issue in Find in Files / Replace in Files dialog to allow users to resize the dialog on the Mac.

    Understand Build 790

    (Build b790) – 3 Jul 2015

    ANNOTATIONS

    • Fix crash in line annotations saving non-project file.

    CODECHECK

    • In Codecheck Check List, select check when checkbox is clicked.

    EDITOR

    • Change editor tab tool tip to show absolute path.
    • Fixed hang on auto-indent after an unmatched closing parentheses.

    FORTRAN PARSER

    • Added support for Fortran 2008 submodules.
    • Added support for Fortran 2008 'impure' attribute.
    • Fixed bug where routines with explicit interface declarations had incorrect values for line counts, complexity, and paths.
    • Fixed bug where local entity created for a renaming 'use only' declaration was given the kind 'function' when a variable was renamed.

    GENERAL

    • Save changes to window positions and favorites as they occur.
    • Allow changing project portability and named roots from New Project Wizard.
    • Add a gui export option for macros and includes.
    • Save project information about open editors whenever an editor is open or closed.
    • In Gui for C# Reference File Alias List, allow named roots and convert files to project add mode.
    • Add a sync check box to the metrics browser.

    GRAPHS

    • Added an "Inverse Selection" option for graphs. The option must be given a keybinding under tools->options->keybindings->graph window to be used.

    INFOBROWSER

    • Add Parent IB field for Fortran submodules.
    • Add Children IB field for Fortran modules.

    LICENSESERVER

    • Make licenseserver binary executable on linux by default.

    PROJECT

    • For Project Settings that use file paths (includes, imports, and such):
    • – Check those settings for named roots in Missing Named Roots dialog.
    • – Add c++ frameworks, python imports, and assembly includes to the settings that follow project add mode.
    • – Don't remove values with unknown NamedRoots (fixes bug where adding a named root from und removed any settings with unknown name root.)
    • – Follow project add mode where possible when editing the following settings from und: assembly includes, cpp auto includes, cpp includes, cpp frameworks, fortran includes, java class paths, pascal includes, python import paths, file override cpp auto includes, file override cpp includes, file override cpp frameworks, file override fortran includes, file override pascal includes.
    • Show absolute file path in tooltips in project browser.
    • Make Project Browser sort by file extension case insensitive on windows.
    • For Project Settings that use file paths (includes, imports, and such):
    • Fix case where removing file from project browser while project browser was sorted by file extension scrolled to the next file alphabetically instead of to the next file by file extension.

    Understand Build 789

    (Build b789) – 29 Jun 2015

    ANNOTATIONS

    • Fix some line annotation weirdness.
    • Fix some line annotation issues on file save.

    COBOL PARSER

    • Fixed line count metrics for lines containing both code and comments in free format.

    EDITOR

    • Added option to print form feed inline instead of starting a new page.
    • Fixed printing issues in files containing control characters.

    FORTRAN PARSER

    • Fixed bug where reference information following 'end enum' was sometimes incorrect. Also, added support for Cray Fortran extension where enums can be named.

    GRAPHS

    • Added a key bindings page for graphs.
    • Fix issue with Show Inter Child Edges Default not applying to the collapsed start entity/architecture when the graph is first generated.
    • Fixed failure to activate some new graph windows when the option to sort tabs alphabetically is enabled.
    • Remove progress bars for graphs because of window resizing issues. Instead, show busy cursor when the mouse is over a graph that is still generating.
    • Show python class attributes in UML class diagram when showing class details.
    • Allow UML Class Diagram to be generated from a Python package.

    VHDL PARSER

    • Check for binary content before trying to analyze a file.

    Understand Build 787

    (Build b787) – 22 Jun 2015

    REPORTS

    • Fix error in Imports report where only the first file for a given letter was printed.

    Understand Build 786

    (Build b786) – 19 Jun 2015

    ANNOTATIONS

    • Show Annotations in hover text in graphs.

    COBOL PARSER

    • Fixed comment line counts in free format mode.

    CODECHECK

    • Added MISRA 2012 Directive 4.3 to Code Check.
    • Added MISRA 2012 Directive 4.4 to Code Check.
    • Added MISRA 2012 Directive 4.5 to Code Check and updated language on MISRA 2012 Directive 4.4.
    • Updated MISRA 2004 rule 8.10 and All Check script staticLinkageWhenPossible.upl to ignore private methods.
    • Updated identifierWithExternalLinkageOneDefinition.upl and MISRA 2012 rule 8.6 to have an option to ignore the standard library.
    • Updated MISRA 2008 rule 4-5-3 and All Check script charShallBeUsedWithAppropriateOperators.upl to ignore Use Cast references.
    • Updated noDefinitionsHeader.upl and noExternalLinkageUnlessExternal.upl to have options for ignoring const in header file.
    • Upgraded MISRA 2012 rule 8.6 and corresponding All Check to properly handle Templates.
    • Updated MISRA 2012 rule 8.3, MISRA 2004 rule 8.3 and corresponding All Check script to properly handle arrays.
    • Updated uninitialized_objects.upl to ignore class data members.
    • Upgraded MISRA 2008 rule 9-3-2 to ignore methods that don’t return by pointer or reference.

    EDITOR

    • In the editor, for Fortran, treat “procedure” as a keyword to fix folds.
    • Fixed failure to print inactive line backgrounds white when the options to print black or color on white are selected.

    FORTRAN PARSER

    • Added support for Fortran 2008 ‘critical’ construct.
    • Added support for names on Fortran 2008 block statements and the ‘mold’ option on allocate statements.

    GENERAL

    • Connect mouse back and forward buttons to previewer window history.
    • Double click in previewer opens in editor.

    GRAPHS

    • Change Graph Customizer Panel to a toolbar.
    • Remember open graphs.
    • Add an option to the Cluster Control Flow Graph to layout horizontally.
    • Added a Show Edges Between Children Default right click menu option to toggle the default. Nodes that are expanded by default (such as the initial node in an internal dependencies diagram) show inter child edges initially regardless of the setting. Note that changing defaults only affects nodes that are using the defaults (i.e. not customized) and so restore defaults may need to be called to affect the entire graph.
    • Fix issue with cluster control flow Visio export truncating lines with “<“.
    • Made changes in control flow graph to handle Fortran 2008 exit statements that exit any enclosing named construct.

    INFOBROWSER

    • Possible fix for crash on resolve that occurred in the info browser from annotations.

    LICENSING

    • Fixed an issue with Understand trying to use a floating license and exceeding the checkout license number. “Maintenance Expired” message is shown on the client though the maintenance isn’t expired.

    PROJECT

    • Change the name of the “Import” report to “Imports” in the gui to match und.

    SCRIPTS

    • Fix typo in c_globalrefs.pl sample script.

    SEARCH

    • Add Packages filter for Python entities.

    WEB PARSER

    • Fixed bug where the use of tabs in Php files resulted in truncated text in the control flow diagram.

    Understand Build 785

    (Build b785) – 14 Jun 2015

    ANNOTATIONS

    • Fix Remove All to work for line annotations.

    CODECHECK

    • Fixed bug where notDefinitionsHeader.upl was not ignoring Template Functions.
    • Fixed typo in magic number checks.
    • Shortened the CodeCheck tab name and many of the graph tab names.
    • Updated inlineFunctionsInClass.upl to ignore anything that is not a function.
    • Fix error on undefined function definition in External Identifiers Shall Be Distinct check.
    • Updated variableNamingConvention.upl to treat pointer to const and const pointers correctly.
    • Updated unusedLocal to have an option for parameters.
    • Fixed an issue where moving columns in the Results by File and Results by Check windows in CodeCheck causes the text to overlap.
    • Updated MISRA 2008 rule 7-1-2 and parameterShallBeDeclaredAsConst.upl to ignore parameters that are passed by value.

    COMMANDLINE

    • Added the number of files added to the und add build.log message.

    CSHARP PARSER

    • Fixed error where some Framework 4 dll files did not load correctly, resulting in 'unknown' entities and incorrect values for metrics CountDeclMethodAll and CountClassCoupled.

    FORTRAN PARSER

    • Added support for Fortran 2008 block construct.
    • Added support for Fortran 2008 sync statements.
    • Added support for Fortran 2008 codimension and contiguous statements.
    • For Fortran 2008, made changes to allow multiple type-bound procedures to be defined in one statement.
    • Added support for Fortran 2008 Do Concurrent statement.

    FUZZY PARSER

    • Improve fuzzy c++ parser handling of function declarations with unknown types.

    GENERAL

    • Fixed an issue of not cancelling the New Project dialog when you have a project open, with a changed, unsaved file and cancelling the save file dialog.
    • Re-aligned the second column in Bookmarks to ignore the file name and shift next to the line numbers.
    • Fixed Scheduler Options to reset settings when the option dialog is cancelled.

    INFOBROWSER

    • Have the CIS Information browsers refresh the annotations field as needed.

    METRICS

    • For c#, fixed bug where event and indexer accessors were not counted in the containing class's CountDeclMethod metrics.

    PERL

    • Add index for sample perl scripts.

    PROJECT

    • Add support for php comment collection.

    REFACTOR

    • Fix error where extract function refactor tool garbled some unicode strings.
    • Fix error with extract function refactor tool when text contained %.

    SEARCH

    • Revert hiding empty entity filter categories because of performance regression.

    STRICT PARSER

    • Fixed occasional bogus references to entities referenced in default argument initializers.

    Understand Build 784

    (Build b784) – 1 Jun 2015

    ANNOTATIONS

    • Changed Annotation Search Results to show a line number (start from 1) rather than an offset (start from 0). The number is still relative to the entity, so function(2) would be the 2nd line in the function, not the second line in the file.
    • Prevent annotation search/filter/orphan dialogue from shrinking to a size where the options are truncated or hard to read.

    COBOL PARSER

    • Increment Cyclomatic and CyclomaticModified metric counts for PERFORM # TIMES statements.

    COMMANDLINE

    • Update und analyze message to clarify that files added and files removed lines come from a rescan of watched directories.

    GENERAL

    • Fixed failure to launch on Mac.
    • Fix Previewer Window Title translation.

    PROJECT

    • Changed Analysis Log menu option names to match those in the Information Browser.

    Understand Build 783

    (Build b783) – 29 May 2015

    ADA PARSER

    • Made change to allow '$' in identifiers to support the XD Ada compiler.

    C# PARSER

    • Made change to use an appropriate named root for the mscorlib.dll file if one is defined.
    • Made change to use named root paths instead of absolute paths for files imported through the References list.
    • Fixed bug where the short name for namespace entities was the full dotted name instead of the simple name.

    COBOL

    • Fixed statement count metrics for some files that copy copybooks.

    CODECHECK

    • Fixed bug where binary operator != was treated as the unary ! in MISRA 2008 rule 4-5-2 and enumShallBeUsedWithAppropriateOperators.upl.

    ECLIPSE PLUGIN

    • Update Eclipse plugin to handle linked resources when creating an Understand project. This fix must be downloaded from the update site.

    FORTRAN PARSER

    • For Fortran 2008, added coarray variables and coindex references.

    LICENSING

    • Fix for a license server issue not showing the correct maintenance.

    Understand Build 782

    (Build b782) – 23 May 2015

    CODECHECK

    • Fix function length codecheck not working right in some scenerios.

    FORTRAN PARSER

    • Made changes to handle Fortran 2008 codimension declarations.

    GENERAL

    • Fixed licensing issue where a valid auto eval license was not recognized when exiting the Licensing Setup Dialog. Fixed licensing issue when no Understand.ini file is present and connecting to a license server gave a false maintenance message to the user.
    • Match Annotation tab names to annotation menu text for consistency.
    • Added the dependency browser to the view menu.

    GRAPHS

    • Fixed error where '>' character was added onto the ends of multi-line function names on calls/called by graph svg export.
    • Fix cluster coloring in svg export.

    IREPORT

    • Restore missing tree arrows in the ireport results window.
    • Make arrows in trees follow application style foreground color.

    JAVA PARSER

    • Fixed bug where a named root used in a classpath .jar did not work correctly.

    PROJECT

    • For reports, added Extend Tree for C++.

    SEARCH

    • Only show entity filter categories with content.

    UND COMMANDLINE

    • Fixed bug where some project settings, like adding found include files to the project, were not working properly when used from the command line.

    Understand Build 781

    (Build b781) – 15 May 2015

    COMMANDLINE

    • In Und, change the name of the Import report to Imports to avoid name conflict with the command import.

    ECLIPSE

    • Fix an issue where the Eclipse plugin failed to analyze when a graph was open. (To apply fix, you must update the Eclipse plugin from the update site).

    FUZZY PARSER

    • Improved handling of macros defined in inactive regions in fuzzy C++ parser.

    GENERAL

    • Fix for crash in previewer window that sometimes occurred on reparse.
    • Fix some translation issues in annotations dialogue, application styles settings page, and previewer.
    • Changed the icon in tools->options->User Interface to a user, and removed icons for the sub pages to make it consistent with the rest of the dialogue.

    GRAPHS

    • Add support for Java and C# for uml sequence diagrams.
    • Fix cluster control flow graph bug that showed all nodes even when hide nodes with no highlighted edges was checked.
    • Fix issue with styled labels in cluster control flow graphs repeating the first character for each node in Python.

    INFOBROWSER

    • Fix possible crash on view information.

    Understand Build 780

    (Build b780) – 13 May 2015

    FUZZY PARSER

    • Add support for non-standard __typeof__ operator to GNU C, for fuzzy C parser.

    GENERAL

    • Fixed performance regression on project open.

    GRAPHS

    • Fix UML Class diagram not always rendering correctly when ‘Show Class Details’ was enabled.

    INSTANT SEARCH

    • Moved calculation of out-of-date files onto indexer background thread to improve responsiveness for project files located on a network share.

    STRICT PARSER

    • Fixed saved macro expansion text to exclude unexpanded functional macro arguments.

    WEB PARSER

    • For Javascript, fixed bug where ‘finally’ nodes were omitted from try-catch-finally structures.

    Understand Build 779

    (Build b779) – 8 May 2015

    CODECHECK

    • Change option layout for Control Character check.

    EDITOR

    • Added the ability to annotate a line. Line annotations are tied to the scope entity where possible and are updated on reparse, opening a file, and saving a file. Externally modified files can be reparsed to restore the annotations to the correct areas. Annotations that belong to lines after the last line in the file are moved to the last line of the file. Line annotations may be orphaned if the scope entity is removed, and are handled the same as other orphans.

    GENERAL

    • Moved the “Save Released Window Positions” and the “Clear Saved Window Positions” to Tools – Options – User Interface – Windows. Also only enable the “Clear Saved Window Positions” button when there are saved window positions.

    GRAPHS

    • Added a Show Legend option to cluster control flow graphs (off by default).
    • Allow Cluster Control Flow Graphs to be generated from the API. (Note: styled text is NOT available from the API).
    • For C#, Java, Php, and Python, Changed the control flow graphs for try-catch-finally statements that contain exits to more accurately reflect the actual control flow.
    • Added a Show Deferred Edges option to cluster control flow graphs (off by default).

    LICENSING

    • Almstatus now displays the server build number in the results.
    • Fixed an issue of getting the “No Valid License” error when Escaping (Esc key) out of the license Setup Dialog. Esc now performs the same action as the Cancel button.

    METRICS

    • For C#, Java, Php, and Python, fixed incorrect essential complexity value for some instances of routines with exits from try-catch-finally statements.

    VHDL

    • Added control flow graph.

    Understand Build 778

    (Build b778) – 2 May 2015

    C# PARSER

    • For c# control flow graphs, added label text to labeled statements.

    CHANGE

    • Removed “Global Objects” option from the Compare Entities dropdown list.

    CODECHECK

    • Add new codecheck to look for control characters like formfeed and bell.

    EDITOR

    • Fixed editor detection of file names containing a plus.

    GENERAL

    • Possible fixes for crash in preview window on reparse / project open.
    • Fixed binary detection of files loaded from zip files. The editor will now prompt before trying to open .class files from jar files.
    • Update Keybindings page for Previewer window to have the correct name.

    GRAPHS

    • Fixed an issue with graphs taking the shortcut key from an editor while in split view.

    PYTHON PARSER

    • Changed database entity information to make checksum part of uniquename for an entity be based on unix style file names.
    • Changed database entity information to make uniquename for an entity not be based on line number within a file.

    SCHEDULER

    • Fixed an issue with Scheduled Activities not using the “Run every X Minutes” setting correctly.

    STRICT PARSER

    • Fixed worker process crash on #include_next directive found by searching project headers.
    • Fixed resolve of methods in Objective-C categories.

    TOOLS

    • Added Understand::Gui::sync(entity) to perl api.

    UPERL

    • Add documentation for freetext command to Perl API.

    Understand Build 777

    (Build b777) – 24 Apr 2015

    CSHARP PARSER

    • Fixed bug where the essential complexity was incorrect for some routines with goto statements inside try-catch-finally statements. Also, in the control flow graph for these routines, duplicate deferred-goto links are no longer displayed.

    FORTRAN PARSER

    • Made changes to add dimension text to variable type text.
    • Fixed a bug where an include inside an interface block caused a syntax error.

    GENERAL

    • Added an application-wide color scheme panel under tools->options->user interface->application styles. Changed windows such as find in files results and the analysis log to follow the application style rather than have specific settings. Users can match the application styles to current editor settings.
    • hiding the vertical headers in the manage architectures tables since they don’t contain any information and appear bright against dark backgrounds.
      changing explore entities initial window to be the alternate row color instead of yellow so that it doesn’t clash with dark backgrounds.
      set row indentation for tree views and alternating row colors for other views through the style sheet so that it applies to everything.

    • Change C++ Class Names editor style to include all tag type names (struct, union, and enum).
    • Added a Previewer window (View->Previewer) that is basically an editor window that can be synced. The window can also be set to be used by default when going to a reference, and has it’s own history. Also, made view information (hotkey or menu click) trigger a sync.

    GRAPHS

    • Added a right click menu option to show legend for graphs with custom styling (architecture dependency graphs, cluster call graphs, and relationship graphs).
    • Improve graph search to better handle newlines caused by wrapped text. Also, improve graph search highlighting for regular expression searches and cluster control flow graphs to highlight the correct number of characters in the correct location.
    • Made cluster control flow graph node backgrounds and default node foregrounds follow editor style when styled labels is on.
    • Added an include virtual edges option for call/callby relationship graphs. Unlike cluster call graphs, relationship graphs only show virtual edges as a different color if set to do so under tools->options->graphs.

    LICENSING

    • Update to Floating license server to use older maintenance licenses before newer ones.
    • Updated the “Thank you for your purchase” message to be less confusing when displaying maintenance expiration days.

    SCRIPTS

    • Fix Visio format in _export_graphics.pl script.

    STRICT PARSER

    • Enabled option to ignore directory names in include directives.

    Understand Build 776

    (Build b776) – 17 Apr 2015

    C PARSER

    • Fixed parser crash in essential complexity computations for extremely large functions.

    FORTRAN PARSER

    • Fixed bug where declaration of an interface module procedure without the ‘module’ keyword caused a syntax error.
    • Fixed bug where some uses of array constructors using square brackets to enclose values caused syntax errors.
    • Added support for Fortran 2008 ‘error stop’ statement.
    • Fixed bug where declarations of ‘class(*)’ dummy arguments caused syntax errors.

    GRAPHS

    • Moved graph layout into the background for graphviz graphs generated in understand GUI (graphs generated from the API, or as part of a visio xml export are not affected). The graph window will appear and the progress bar in the upper right corner indicates that the layout is still running. The graphwindow can be closed to cancel the graph and the graph can be changed (nodes options changed / undo) which will restart the layout with the new parameters. Restored the message that informs users when the graph failed to layout. Ensure the progress bar disappears when the graph completes the layout or encounters an error during layout.

    LICENSING

    • Fix for an issue when using almfree.exe on Windows server 2008.

    PROJECT

    • Restore previously removed Extends Tree report; make report off by default for all new projects.

    REPORTS

    • Fixed issues with HTML Reports Index by method name.

    VISUALSTUDIO

    • Fix bug importing projects from MSVC 2010 and later that contain multiple global preprocessor definition lines.

    WEB PARSER

    • Added support for ‘use const’ and ‘use function’ statements.

    Understand build 775

    (Build b775) – 8 Apr 2015

    CHANGE

    • Fixed an issue where Compare Entites doesn’t work when Assembly language is selected.

    CODECHECK

    • Updated several scripts to handle the C++ 11 foreach loop gracefully.
    • Fixed issue with importing exported CodeCheck ignores.

    GENERAL

    • Add a sort by file extension option to the Selector Window.
    • Potential fix for bug in Bookmarks.

    GRAPHS

    • Fixed failure to show trailing and inline comments in control flow graph with source code hidden.
    • Fix error where use class groups checkbox and show all dependencies combo initially disappear from internal dependencies graph.
    • Fix collapsing in cluster control flow graph to have text in the right order. Remove extra newlines when showing comments and not source code for collapsed nodes.
    • Added an option for control flow graphs to show parameters with the entity name (part of the entity name submenu). Also fix error where changes through the graph menu weren’t updating the graph.

    LICENSING

    • Fixed a license date issue when Japanese regional was selected.

    STRICT PARSER

    • Fixed crash on specialization of a class template with an invalid class (e.g. because of parse errors in the class definition).

    WEB PARSER

    • For php, added support for argument unpacking with ‘…’.
    • For php, added support for some Php 5.6 features including use of constant expressions in contexts where scalers were formerly required, constant array definitions, variadic function definitions using ‘…’, and the new pow operator ‘**’. Also, fixed error in line count metrics for some html and javascript files.

    Understand Build 774

    We recently sent out new floating license files that will support Understand 4.0, however we neglected to let you know that for Understand 4.0 to connect to this license, the license manager software also needs to be updated to version 770 or later. Sorry about that, it was an oversight on our part. The license manager can be downloaded from here: https://scitools.com/download/licensemanager/  The good news is that this new license is backwards compatible and will support any version of Understand from version 2.5 onward so your team can update to Understand 4.0 at their convenience.
    In order to update the license manager you will need to stop and exit the running license server GUI by right clicking on the License Server icon in the system tray and selecting quit (see the image below). Then run the installation package to the same location.
    Again we are sorry for any inconvenience this may cause, please let us know if there are any issues or questions we can help with.

    (Build b774) – 3 Apr 2015

    STRICT

    • Fixed worker process crash on invalid global allocation function declaration.

    Understand Build 772-773

    (Build b772-b773) – 2 Apr 2015

    ASSEMBLY PARSER

    • For Coldfire 64K Assembly, made unknown include files referenced with a relative or absolute filename have a shortname and longname value. Also, made change to allow quote characters around filenames in include statements.

    CHANGE

    • Added the compare right click context menu to non-project files.

    CODECHECK

    • Updated discardedReturnValues.upl to be more robust.
    • Updated MISRA 2008 rule 3-3-1 to eliminate various reporting errors and added All Check script objectsOrFunctionsWithExternalLinkageShallBeDeclaredInAHeaderFile.upl to Code Check.
    • Add several MISRA 2012 Code Checks.

    COMMANDLINE

    • Und fix that allows the “-l somedir\somefile.dat” to be before the create command instead of always trailing/last.

    EDITOR

    • Added language specific editor styles to themes, and updated predefined themes to stylize function, class, and variable names. Added a classics theme for the original Understand theme.
    • Editor Styles, remove old .ini keys so that old values don’t override new ones. This makes Editor Styles not backwards compatible (if you open Understand 4.0 and then open an earlier version, the earlier version will not have the styles).

    GENERAL

    • Make the keyboard icons in tools->options consistent with the editor icons in the same view (one keyboard icon for the main page and no icons for sub pages).

    GRAPHS

    • Add a show virtual edges option to cluster call graphs that show override/overriddenby edges. Override edges are light blue by default, to change go to tools->options and enter a custom edge style for “overrides,overriddenby” and make sure that “Use Custom Styles on Cluster Call Graphs” is checked.
    • Cluster Call Graphs, Fix aggregate by architecture to work instead of vanishing nodes or doing nothing.
    • Added relationship graphs between two entities. From the UI, a dialog appears to select the second entity, and the second entity can be changed using the sync option of the graph window. From the API, specify the second entity in the option string as “secondent=entityUniqueName”.
    • Cluster Call Graphs, Show c pure virtual methods in cluster call graphs (previously excluded because they were technically unknown).
    • Cluster Call Graphs, Made available from api.
    • Allow c# properties to be clusters in cluster call graphs to improve get/set names.
    • Fix graph window reuse checkbox to work across all graph types. So, all graphs whether architecture, global, or entity will reuse the same window. This fixes errors where reuse checkbox being checked caused a graph of a different type to not be generated at all.
    • Cluster Call Graphs, Improve parent determination so that references don’t appear twice in the graph and known entities with unknown parents still appear.

    LICENSING

    • Added the ability for the c api to point to a specific build/installation for licensing purposes. This is accomplished by calling udbSetLicense(installedDir) before calling udbDbOpen(dbFilename). The installedDir needs to be the directory above the conf folder. For example: the prioritylicense.dat file that I want the c api to use is in “C:\sti\conf\license” so my installedDir would be “C:\\sti\\”.
    • Updated to check for maintenance expiration and license expiration.

    PARSER

    • For web php, added support for using ‘list’ in foreach statements.
    • For web php, added support for Php 5.4 callable typehint and binary numeric literals.
    • For web php, fixed problem causing invalid syntax errors parsing nowdoc strings that contain variable references.
    • For web php, added support for ‘yield’ statement.
    • For web php, made change to allow expressions in ’empty’ check.
    • For web php, added support for ‘finally’ statement.
    • For web php, made ‘self’ and ‘parent’ keywords non case sensitive for Php 5.5.

    STRICT

    • Changed empty macro definitions to match fuzzy. They now expand to nothing instead of being implicitly converted to 1. Buildspy and CMake command line argument parsing have been changed to interpret -DMACRO flags (i.e. without any =) as a macro definition with value 1. Projects that use these mechanisms may need to be regenerated.
    • Fixed incorrect executable statement count for some functions.

    VISUALSTUDIO

    • Fix crash processing MSVC project files with quoted include directories.