Build Notes (1213) - 17 Dec 2024


Command Line(Und)

  • Add C# Preprocessor Symbols setting to und.
  • Und report command improve error messages for invalid codecheck inspections.

Compare

  • Potential fix for an inconsistent crash accessing comparison db from an ireport.

General

  • Fix rescan not updating file list

API

  • C++ namespace comments now available by default instead of requiring a kind spec
  • Change public ib() api call to default to 1 level of expansion per field, to avoid unexpected long waits in worst case scenarios

Graphs

  • Fix scaling when legend is turned on

Indexer

  • Fix potential crash on corrupted instant search index

Info Browser

  • Restore global information browser shortcuts broken in last build with sync changes

Installer

  • Add plugins to CLI build kit

Interactive Reports

  • Ireports add optional target parameter to init method for Python plugins.

Metrics

  • Ensure values for disabled metric plugins can still be accessed by id from the API.

VS Code Plugin

  • Remove errors/warnings of files under deleted or renamed folders

Search

  • Fix whole words match in search inside search results.
  • Fix stale instant search results for deleted files

Settings

  • Fix display of python version in the configuration panel when the user has specified an installed executable

Language - Fortran

  • Fixed invalid syntax error on some select type guards in fixed format fortran.
  • Fixed some invalid parser errors on array constructor syntax. Fixed lookup problem in use-only statements where referenced entity is defined in a generic interface.


Fixes/Extensions
  • Fix for script in duplicate lines of code interactive report
  • Shared Tasks CSV: fix long name and -help argument
  • Shared Tasks: fix "Objects: Shared only" option and improve CSV CLI
  • Shared Tasks: Fix object parents, fix member function name
  • Extend the Most Complex Functions chart to work for files and architectures in addition to databases, allow modifying the complexity metric and the number of entities shown.

New Charts
  • Function Metrics Histogram - display metric values in a histogram for the functions in a file, architecture, or database. 

New IReports
  • Line Metrics
  • HIS Metrics
  • Complexity Metrics Report
  • Metrics Table
  • Halstead Metrics

New Metric Plugins
  • Comment Lines (Includes Comments Before Functions)
  • Comment to Code Ratio (Includes Comments Before Functions)
  • Maximum Call Depth (HIS LEVEL)
  • Calls
  • Unique Calls (HIS CALLS)
  • Called By
  • Unique Called By (HIS CALLING)
  • Goto Statements (HIS GOTO)
  • Parameters (HIS PARAM)
  • MinRecursiveDepth (related to HIS AP_CG_CYCLE)
  • Exits
  • Early Exits (HIS RETURN)
  • Language Scope (HIS VOCF)
  • Stability (HIS S)
  • Halstead Distinct Operators (n1)
  • Halstead Distinct Operands (n2)
  • Halstead Total Operators (N1)
  • Halstead Total Operands (N2)
  • Halstead Vocabulary (n)
  • Halstead Length (N)
  • Halstead Difficulty (D)
  • Halstead Effort (E)
  • MISRA HIS Subset Violations (HIS NOMV)

New CodeCheck Checks
  • MISRA23_25.5.3, MISRA23_21.20: The pointer returned by the C++ Standard Library functions asctime, ctime, gmtime, localtime, localeconv, getenv, setlocale or strerror must not be used following a subsequent call to the same function
  • VHDL 28: unlabeled processes
  • MISRA23_8.14.1: The right-hand operand of a logical && or || operator should not contain persistent side effects
  • CPP_T061: Use const whenever possible
  • CPP_DD022: Magic Numbers
  • CPP_D055: Non-virtual Destructors in Base Classes
  • CPP_VF002: Virtual Call in Constructor/Destructor
  • CPP_DD023: Use the same for in corresponding uses of new and delete
  • CPP_P058: Store newed objects in smart pointers in standalone statements
  • CPP_P060: Prefer pass-by-reference-to-const to pass by value
  • CPP_DD024: Postpone variable definitions as long as possible
  • CPP_E087: Minimize casting
  • CPP_DD025: Avoid hiding inherited names
  • CPP_F070: Consider alternatives to virtual functions
  • CPP_DD026: Never redefine an inherited non-virtual function




Known Issues

  • Unable to add multiple files to "Favorites" group
  • Line numbers may be incorrect for Fortran analysis errors and warnings
  • Incorrect control flow graph when simplify macro expansion is enabled