Understand Build 921

(Build b921) – 8 Dec 2017

C# PARSER

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

CODECHECK

  • Fix for a potential crash in CodeCheck analysis.

FUZZY PARSER

  • Add support for c99 designated initializers in fuzzy parser.

GRAPHS

  • Fixed missing includes in the Architecture Internal Dependency Graphs.

STRICT PARSER

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

USER API

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

Understand Build 920

(Build b920) – 1 Dec 2017

EDITOR

  • Fixed performance issue related to Annotations.

GENERAL

  • Optimized editor reference lookup slightly.

Understand Build 919

(Build b919) – 17 Nov 2017

GENERAL

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

Understand Build 918

(Build b918) – 10 Nov 2017

GRAPHS

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

WEB PARSER

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

Understand Build 917

(Build b917) – 6 Nov 2017

INFOBROWSER

  • Fix crash displaying IB for unresolved c entities.

Understand Build 916

(Build b916) – 3 Nov 2017

API

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

CODECHECK

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

WEB PARSER

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

Understand Build 915

(Build b915) – 25 Oct 2017

GRAPHS

  • Fix crash in project-level graphs introduced in b914

METRICS

  • Fix crash in metrics calculation introduced in b912

Understand Build 914

(Build b914) – 20 Oct 2017

FORTRAN PARSER

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

GENERAL

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

LICENSING

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

PASCAL PARSER

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

Understand Build 913

(Build b913) – 12 Oct 2017

C# PARSER

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

FORTRAN PARSER

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

JAVA PARSER

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

API

  • Remove udbDbLanguages() from user_api.

WEB PARSER

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

Understand Build 912

(Build b912) – 29 Sep 2017

INFOBROWSER

  • Fixed crash in Ada IB introduced in Build 911.

METRICS

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

PASCAL PARSER

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

PROJECT

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

Understand Build 911

(Build b911) – 22 Sep 2017

CODECHECK

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

PASCAL PARSER

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

WEB PARSER

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

Understand Build 910

(Build b910) – 15 Sep 2017

COMMANDLINE

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

PARSER

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

Understand Build 909

(Build b909) – 8 Sep 2017

C# PARSER

  • Made changes to avoid a possible parse crash.

COMMANDLINE

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

PASCAL PARSER

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

REPORTS

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

SEARCH

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

Understand Build 908

(Build b908) – 1 Sep 2017

PASCAL PARSER

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

STRICT PARSER

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

Understand Build 907

(Build b907) – 24 Aug 2017

PASCAL PARSER

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

WEB PARSER

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

Understand Build 906

(Build b906) – 11 Aug 2017

C/C++ PARSER

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

CODECHECK

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

WEB PARSER

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

Understand Build 905

(Build b905) – 5 Aug 2017

CODECHECK

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

WEB PARSER

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

Understand Build 904

(Build b904) – 28 Jul 2017

FUZZY PARSER

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

GENERAL

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

REPORTS

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

VHDL PARSER

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

WEB PARSER

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

Understand Build 903

(Build b903) – 21 Jul 2017

API

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

CODECHECK

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

GENERAL

  • Update documentation.

WEB PARSER

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

Understand Build 902

(Build b902) – 14 Jul 2017

API GRAPHS

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

INFOBROWSER

  • Add accessors IB field for python properties.

PASCAL PARSER

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

PYTHON PARSER

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

VISUALSTUDIO

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

Understand Build 901

(Build b901) – 7 Jul 2017

EDITOR

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

GUI

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

REPORTS

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

Understand Build 900

(Build b900) – 30 Jun 2017

CODECHECK

  • Updated CodeCheck results treemap options to include Custom Scaling.

FORTRAN PARSER

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

PROJECT

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

WEB PARSER

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

Understand Build 899

(Build b899) – 23 Jun 2017

WEB PARSER

  • Fixed some syntax issues with JSX React files.

Understand Build 898

(Build b898) – 16 Jun 2017

CODECHECK

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

FORTRAN PARSER

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

FUZZY PARSER

  • Fixed memory leak in fuzzy c++ parser.

WEB PARSER

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

Understand Build 897

(Build b897) – 9 Jun 2017

C PYTHONAPI

  • Fixed unresolved symbol error on database open on Linux.

WEB PARSER

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

Understand Build 896

(Build b896) – 8 Jun 2017

JAPANESE

  • Japanese Special Build

GENERAL

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

PYTHON PARSER

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

WEB PARSER

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

Understand Build 895

(Build b895) – 2 Jun 2017

GRAPHS

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

JAVA

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

TREEMAP

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

WEB PARSER

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

Understand Build 894

(Build b894) – 24 May 2017

JAPANESE

  • Japanese Special Build

GRAPHS

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

JAVA PARSER

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

Understand Build 893

(Build b893) – 19 May 2017

ECLIPSE

  • Fixed error dialog when generating graphs.

GENERAL

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

GRAPHS

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

PASCAL PARSER

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

PYTHON PARSER

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

SEARCH

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

VISUAL BASIC

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

Understand Build 892

(Build b892) – 12 May 2017

CODECHECK

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

EDITOR

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

FUZZY PARSER

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

GENERAL

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

PYTHON PARSER

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

Understand Build 891

(Build b891) – 5 May 2017

GRAPHS

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

PYTHON PARSER

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

Understand Build 890

(Build b890) – 28 Apr 2017

CODECHECK

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

GENERAL

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

GRAPHS

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

PYTHON

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

REPORTS

  • Updated the File Contents report to show nested classes.

STRICT PARSER

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

Understand Build 889

(Build b889) – 22 Apr 2017

ANNOTATIONS

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

C# PARSER

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

CODECHECK

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

PYTHON PARSER

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

REFACTOR

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

Understand Build 888

(Build b888) – 22 Apr 2017

JAPANESE

  • Japanese Special Build


Includes these build updates:

ANNOTATIONS

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

C# PARSER

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

CODECHECK

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

PYTHON PARSER

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

REFACTOR

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

Understand Build 887

(Build b887) – 16 Apr 2017

CODECHECK

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

GENERAL

  • Include python sample scripts.

PYTHON PARSER

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

STRICT PARSER

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

UPERL

  • Fix Japanese translation

VISUAL BASIC PARSER

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

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.