Build Notes (1108) - 30 Jun 2022

Architecture Designer

  • Fix crash that occurred while creating an architecture


Interactive Reports

  • Fix regression in specifying default values for checkbox_horiz and checkbox_vert options in Perl scripts.

Project

  • Fix the File Sync that wasn't working in the Project Browser.
  • Fix hang on project open when the option to sort tabs alphabetically is enabled.

Themes

  • Understand-dark theme: Fix the coloring for all the slide bars (vertical and horizontal) to be more visible.
  • Added dark mode to Metric Definitions.
  • Fix the default editor color in light mode for ADA variables.

Tools

  • Added option to disable audible alerts.


Language - C#

  • Fixed bug where using alias with the same name as the used entity (e.g. 'using X = X') caused the parser to fail in looking up the used entity name.

Language - C++ (Strict)

  • Add new entity and reference kinds for CUDA kernels.
  • Add references to CUDA kernel call config arguments.


CodeCheck

  • Fix failure to start CodeCheck analysis when Perl graph windows are open

CodeCheck Checks

  • C and C++
    • Constructors
      • CPP_C055: Added new: Constructors that can be used with one argument should be declared explicit.
    • Declarations and Definitions
      • CPP_DD008: Added new: Nesting template class definitions should be avoided.
      • CPP_DD009: Added new: Assignment operators should check for self-assignment.
      • CPP_DD010: Added new: The use of friend classes should be avoided unless there is a legitimate basis in design.
      • CPP_DD011: Added new: If the subscript operator (operator[]) is overloaded, both the const and non-const versions should be defined.
      • CPP_DD012: Added new: Layering techniques, where applicable, should be used instead of private inheritance.
    • Exception Handling
      • CPP_EH003: Added new: Destructors should not throw exceptions
      • CPP_EH004: Added new: Exceptions should be caught only by reference
    • Functions
      • CPP_F063: Added new: Member function arguments should not share the same name as class state variables.
      • CPP_F064: Added new: Member functions should always be declared const unless they modify state variables.
      • CPP_F065: Added new: Any parameter not modified by a method should be passed to the method as a const.
    • Headers
      • CPP_H019: Added new: Forward referencing should be used, when appropriate, over direct inclusion when documenting dependencies within a header file.
    • Memory Allocation
      • CPP_M014: Added new: The operator new should be called with the nothrow option when expecting NULL to be returned upon error, as some implementations of new throw an exception instead of returning NULL.
      • CPP_M015: When overloading the new[] operator, a corresponding delete[] operator should be provided.
      • CPP_M016: Added new: Overloaded new operator should not hide the global new operator.
      • CPP_M017: Added new: All local allocations made in a method, other than the destructor, should be deallocated prior to exiting the method.
    • Pointers
      • CPP_P054: Added new: References should be used instead of pointers when possible.
      • CPP_P057: Added new: A pointer to dynamic memory that is declared and allocated locally to a function or method should be declared as an auto_ptr. An auto_ptr
    • Styling
      • CPP_ST032: CPP_ST032 check for standard intentation
    • Variables
      • CPP_V036: Added new: Static data member initialization should be placed in the class .cpp file.
      • CPP_V037: Added new: Initializer lists should be used to initialize member variables over direct assignment.
      • CPP_V038: Added new: The concept of information hiding, also known as data encapsulation, should be implemented by ensuring that C++ classes have no public attributes. Rather, C++ classes should have access methods if direct manipulation of attributes is desired.
      • CPP_V039: Added new: Within an object, most instance variables should be accessed directly. Methods should be used to set variables whose values are determined by an algorithm.
      • CPP_V040: CPP_V040 check that local variables do not shadow outer variables within the scope of the function


  • Warnings
    • CPP_W006 Added new: integer overflow
    • CPP_W007 Added new: integer to void pointer cast
    • CPP_W008 Added new: void pointer to int cast clang warnings to code check.
    • CPP_W009 Added new: zero-length-bounds
    • CPP-W010 Added new: clang warning incompatible pointer types
  • Java
    • JAVA_06: Add check "Package names shall be in all lowercase alphabetic characters and integers"
    • JAVA_07: Add check "If multiple classes are imported, the list shall be imported alphabetically"
    • JAVA_08: Add check "Each package group shall be separated with a newline"
    • JAVA_09: Add check "Each Java class shall be assigned to a named package"
    • JAVA_10: Add check "Use package names instead of prefixes on class identifiers"