Understand Build 891

(Build b891) – 5 May 2017

GRAPHS

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

PYTHON PARSER

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

Understand Build 890

(Build b890) – 28 Apr 2017

CODECHECK

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

GENERAL

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

GRAPHS

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

PYTHON

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

REPORTS

  • Updated the File Contents report to show nested classes.

STRICT PARSER

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

Understand Build 889

(Build b889) – 22 Apr 2017

ANNOTATIONS

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

C# PARSER

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

CODECHECK

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

PYTHON PARSER

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

REFACTOR

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

Understand Build 888

(Build b888) – 22 Apr 2017

JAPANESE

  • Japanese Special Build


Includes these build updates:

ANNOTATIONS

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

C# PARSER

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

CODECHECK

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

PYTHON PARSER

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

REFACTOR

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

Understand Build 887

(Build b887) – 16 Apr 2017

CODECHECK

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

GENERAL

  • Include python sample scripts.

PYTHON PARSER

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

STRICT PARSER

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

UPERL

  • Fix Japanese translation

VISUAL BASIC PARSER

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

Understand Build 885

(Build b885) – 7 Apr 2017

CODECHECK

  • Fixed an issue with the persistent dialog message boxes and using shift to see the message again not working correctly.

EDITOR

  • Fixed unused entity highlighting for PHP functions.

FORTRAN PARSER

  • Fixed bug where some macro expansions with arguments could cause syntax errors.

GENERAL

  • Fixed an issue when the database was being written to when open is cancelled.

PYTHON PARSER

  • Fixed an error that sometimes resulted in the creation of an unknown entity when an entity from an enclosing context should have been found.
  • Fixed problem where some uses of 'from filename import name' did not locate the imported enitiy and resulted in an unknown entity.

STRICT PARSER

  • Fixed failure to detect headers with non-standard extensions on Windows.

VISUAL BASIC PARSER

  • Fixed bug where some calls to overloaded methods without parameters were missed.

Understand Build 883

(Build b883) – 1 Apr 2017

CODECHECK

  • Fixed a bug in MISRA 2012 directive 4.5, MISRA 2008 rule 2-10-1 and All Check script differentIdentifiersShallBeTypographicallyUnambiguous.upl where violations triggered on reserved identifiers.
  • Added All Check scripts CPP_I016_reservedIdentifiersMacrosAndFunctionsShallNotBeDeclared.upl and CPP_P029_unusedMacroDeclaration.upl to Code Check.
  • Fixed a bug where MISRA 2012 rule 21.2 would throw a violation on the built in identifiers __begin, __end and __range.
  • Fixed a bug in MISRA 2012 rule 2.5 when a MACRO defined and used within inactive code threw a violation when using the Fuzzy parser.
  • Fixed a bug in MISRA 2012 rule 17.8 and All Check script CPP_F023_parameterNotModified.upl where the entity named in the violation was the offending function and not the parameter.

EDITOR

  • Fixed an issue where adding multiple new editor styles was not working correctly.

GUI

  • Fixed an issue with the Most Recently Used tab feature not working correctly.

PYTHON PARSER

  • Fixed a syntax error on parsing some uses of dictionary argument expansions.

STRICT PARSER

  • Added option to disable analysis of unincluded headers in isolation.
  • Fixed worker process crash on invalid target settings left over from previous versions.
  • Enable exceptions and RTTI unconditionally when targetting PS4.

VISUAL BASIC PARSER

  • Added support for generic class instantiations.

Understand Build 882

(Build b882) – 25 Mar 2017

ANNOTATIONS

  • Fixed line annotations relative to enclosing scope.
  • Fixed editor indicator.

COBOL

  • Fixed errors in portable projects.
  • Fixed syntax highlighting and possible copy errors in comment entries in the identification division.

EDITOR

  • Fixed binary file check.

FORTRAN PARSER

  • Fixed a bug where dec preprocessor commands using lower case keywords for logical operators did not work correctly.

GRAPHS

  • Added Visual Basic Classes and Methods to Metric Treemaps.

JAVA API

  • Fixed failure to load native library on Mac.

SEARCH

  • Updated the Find in Files dialog to include the Visual Basic extensions in the extension droplist.

VISUAL BASIC PARSER

  • Fixed bug where preprocessor symbols defined using other preprocessor symbols didn't expand correctly.
  • Fixed bug in some preprocessor #if evaluations.
  • Made changes to handle project level defines of preprocessor symbols.

Understand Build 881

(Build b881) – 17 Mar 2017

ASSEMBLY PARSER

  • Add support for set and modify references in 1750A Assembly parser.

CODECHECK

  • Updated MISRA 2012 rule 8.6, MISRA 2008 rule 0-1-10, All Check script identifierWithExternalLinkageOneDefinition.upl, All Check script definedFunctionsCalled.upl, and Scitools Recommended Check definedFunctionsCalled.upl to exclude the C++ standard library.
  • Updated MISRA 2012 rule 20.13 and All Check script validPreprocessingDirective.upl to have an option to ignore GCC directives.
  • Updated MISRA 2012 directive 4.4 to include the closest entity name to violation.
  • Updated library code checks to test for a definition before throwing a violation.
  • Fixed bug in All Check script pointersMustBeInitialized.upl where multiplication inside an array declaration triggered a false positive.
  • Fixed a bug in MISRA 2008 rule 7-3-6 and All Check script usingDirectiveDeclarationsNotInHeaderFiles.upl where define a template in a namespace could cause a false positive.
  • Updated the CodeCheck result treemap to allow for image export.

SEARCH

  • Instant search, Show search results after clicking on an item in the suggestion popup list.

VISUAL BASIC PARSER

  • Made changes so that inactive lines are shown in the editor.
  • Fixed problem where some metrics were missing for modules.
  • Made change to purge dll file information from the database when dll files are removed from the reference list.
  • Added support for Const and If,Elseif,Else,Endif directives.

Understand Build 880

(Build b880) – 3 Mar 2017

COMPILER

  • Added support for Keil arm c compiler.

FORTRAN PARSER

  • Fixed a couple of parsing errors.

GRAPHS

  • Add branch nodes in Control Flow Graph for IBM Assembly.

VISUALBASIC PARSER

  • Fixed a few memory leaks.

Understand Build 879

(Build b879) – 24 Feb 2017

ASSEMBLY PARSER

  • Add support for 1750A assembly variant where 15 leading spaces does not mean a comment.

CODECHECK

  • Updated MISRA 2012 rule 2.3, MISRA 2008 rule 0-1-5, and All Check script UnusedTypeDeclarations.upl to no longer flag derived typedefs.

EDITOR

  • Move the user style .lua file to the .ini file location and treat the old files appropriately. If the theme is not found then we inform the user and default to the Understand theme.

FORTRAN PARSER

  • Fixed several parsing issues.
  • Fixed syntax errors when preprocessor #include lines appeared within continued statements.

GENERAL

  • Updated the Project Overview Charts colors.

Understand Build 878

(Build b878) – 17 Feb 2017

CODECHECK

  • Updated MISRA 2008 rule 17.8 and All Check script CPP_F023_parameterNotModified.upl to no longer test parameters explicitly passed by reference.
  • Updated MISRA 2012 rule 2.3, MISRA 2008 rule 0-1-5, and All Check script UnusedTypeDeclarations.upl to include specializeby references.
  • Updated MISRA 2012 rule 2.3, MISRA 2008 rule 0-1-5, and All Check script UnusedTypeDeclarations.upl to ignore template parameters.
  • Fixed a bug in MISRA 2004 rule 16.5 and All Check script explicitVoidWhenNoParams.upl where the check option to ignore unresolved functions only checked unresolved functions.
  • Updated Effective C++ rule 3 to ignore member objects.
  • Updated 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 to ignore lambda functions.
  • Switched pointer violations from type *const to const type *.
  • Updated 3_potentialConst.upl to no longer flag range based loops.
  • Updated 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 to ignore functions defined with MACROs.

FORTRAN PARSER

  • Fixed problem where large files of inactive code caused slow processing.

GENERAL

  • Updated the split window icons to stay selected if being used.

GRAPHS

  • Control flow graph, Left align collapsed blocks.

IBM ASSEMBLY PARSER

  • Added Beta support for Structured Assembly Language Programming for the IBM 390.

METRICS

  • Fixed an issue with Metric Charts showing incorrectly.

VISUALBASIC PARSER

  • Fixed some memory leaks in the Basic parser and in the control flow graph code.
  • Added support for overload resolution involving implicit narrowing type conversions. Also, fixed bug where invocations of overloaded methods made with no parentheses did not generate 'call' relations.

Understand Build 877

(Build b877) – 10 Feb 2017

C# PARSER

  • Fixed some problems with incorrect line count metrics.

CODECHECK

  • Fixed a potential issue where a " – " in the short name of the user checks may not allow the check to be run properly.
  • Updated MISRA 2012 rule 16.6, MISRA 2008 rule 6-4-8, MISRA 2004 rule 15.5 and All Check script switchStatementShallHaveCaseClause.upl to properly handle empty case clauses that utilize curly braces
  • Updated CodeCheck results text/dashboard export to convert html code back to plain text where needed.

GENERAL

  • Updated the Dependency Browser and Dependency Graphs to remove implicit dependencies in Java.

JAVA PARSER

  • Fixed some problems with incorrect line counts in code with lambda expressions and Javadoc comments.

TREEMAP

  • Fixed issue with using the metric for functions and the TreeMap not resizing correctly.

Understand Build 876

(Build b876) – 2 Feb 2017

CODECHECK

  • Added MISRA 2012 rule 18.7 and All Check script CPP_S0001_flexibleArrayMembers.upl to Code Check.
  • Updated MISRA 2012 rule 8.3, MISRA 2008 rule 3-2-1, MISRA 2004 rule 8.3, and All Check script allDeclarationsShallUseSameNameAndTypes.upl to no longer test declarations and definitions constructed with functional MACROs.
  • Updated MISRA 2008 rule 16-0-6, MISRA 2004 rule 19.10 and All Check script definitionOfFunctionLikeMacroShallEncloseParameterInParentheses.upl to no longer throw a violation on parameters encased in spaces.

FORTRAN PARSER

  • Fixed problem in parse where 'use' statements with '::' characters sometimes resulted in an invalid parse order and missing module warnings.

GENERAL

  • Fixed Reports->Dependencies->Class Dependencies->Cytoscape Export to include the Kind and handle html characters (&) in the longname file path.

GRAPH

  • Updated Metrics->TreeMap to include python functions and classes.

IREPORT

  • Updated the api.info.upl plugin so it will show metrics with a zero value.

STRICT

  • Added missing metrics for lambda functions.

TOOLS

  • Updated the Tools->Options page to include a .ini settings file backup/load option.
  • Updated Tools->Options->General to allow users to specify a backup .ini file for manual save/load.
  • Updated the Tools->Options->Restore Defaults button to restore defaults for all option pages instead of just the current page.
  • Updated Tools->Options and Tools->UserTools Settings so that updates will be applied to other open instances of Understand on Save or Apply (usertools, editor styles, keyboard shortcuts).

VISUALBASIC

  • Made changes to better handle overload resolution in method calls.

Understand Build 875

(Build b875) – 28 Jan 2017

CODECHECK

  • Updated MISRA 2008 rule 16-1-1, MISRA 2004 rule 19.14, and All Check script definedPreProcessorOperatorTwoStandardForms.upl to properly detect multiple MACROs used to define defined.
  • Updated MISRA 2012 rule 21.1, MISRA 2008 rule 17-0-1, MISRA 2004 rule 20.1, and All Check script reserverIdentifiersMacrosAndFunctionsShallNotBeDefined.upl to no longer test inactive code.
  • Added MISRA 2012 rule 20.6 to Code Check.
  • Fixed a bug in MISRA 2008 rule 16-1-1, MISRA 2004 rule 19.14 and All Check script definedPreProcessorOperatorTwoStandardForms.upl where a defined operator was incorrectly flagged as a violation when used after a line continuation character while using the Fuzzy parser.
  • Fixed bug in MISRA 2008 rule 0-1-10 and All Check script definedFunctionsCalled.upl where a function call in inactive code wasn't being counted when using the Fuzzy parser.

COMPARE

  • Fixed off-by-one error for some hunks where one side is empty.

FORTRAN PARSER

  • Fixed syntax error on some continuation lines in free format files.

JOVIAL

  • Added support for Jovial variation that allows copy directives with file names of the form '&DIR:NAME&' and copy files with .dat file endings.

STRICT

  • Fixed failure to save freetext to the database for file entities.

Understand Build 874

(Build b874) – 20 Jan 2017

CODECHECK

  • Added MISRA 2012 rule 17.8 and All Check script CPP_F023_parameterNotModified.upl to Code Check.
  • Updated MISRA 2004 rule 16.5 and All Check script externalIdentifiersUnique.upl to have an option to ignore unresolved entities.
  • Fixed a bug in referenceSymbolSpacing.upl where an inline comment, mid declaration, followed by a space, caused a false positive
  • Added option to MISRA 2012 rule 5.8 and All Check script externalIdentifiersUnique.upl to ignore unresolved entities.
  • Fixed bug in MISRA 6-5-4 and All Check script loopCounterShallBeModifiedByConstant where if a loop counter was modified by a MACRO, this script would throw a false positive.

REPORTS

  • Updated the "File Contents" report to be more complete.

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.