Considerations and Known Limitations

Platform-specific:

  • When using Linux, you may encounter an error when trying to open the CC4M GUI. This problem can be solved by following the steps described here.

  • When using MAC combined with R2020b, hyperlinks in the report generated by the Code Checker may not work. The issue is fixed with R2021a or R2020b update 3.

Generic:

  • PDF version of the manual has no working links to the detailed function references in.

  • If you use a version of CC4M within a unsupported (newer) MATLAB release, you may experience unexpected behavior or see unexpected results. A warning will be shown in the command window that can easily be disabled for future Code Checker runs. In the CC4M Release notes the supported versions of MATLAB releases is announced.

Simulink & Model Advisor Integration:

  • The Simulink Model Advisor is only supported for M-functions in Simulink or Stateflow - checking a set of M-files is only supported using monkeyproof.cc4m.start.

  • Automated fixes are not available.

Code analyis:

  • MATLAB files with invalid names can not be analyzed.

  • Methods in a classdef file can not be separately analyzed, only as part of the classdef file they are defined in. The code analysis is performed on a code file, not on a part of that file.

  • The code analysis relies on undocumented features.

  • The detection of data types of variables is imperfect. This may cause unexpected results. See Appendix Datatype detection for more information on what is and what is not detected.

  • During the analysis, property values may be initialized when gathering class information, if the checked code has class definitions among them. This may cause unexpected behaviour if the calculation of the initial values of properties deals with peripherals such as printing to the command window or reading from or writing to files. Potential errors during the initialization of properties are caught and will not interfere with the code analysis.

Code Checks and Code Reports:

  • Class properties are sometimes reported as fields (of a structure) when assigned values in functions or methods.

  • The dependency analysis ignores function handles or eval-like constructions.

  • In MATLAB versions before R2018b, dependencies on MATLAB-installed functions can be reported as local when an overloaded implementation of the function exists higher on the MATLAB path.

  • In MATLAB versions before R2021b, checks depending on editor warnings might give inaccurate results and incorrect line number information.

Other:

  • A disabled fix button in the report indicates that the fix callback has been executed. It does not reflect the current state of the code. To assure that the code has been fixed correcly, rerun the check and verify that the offending code is no longer reported.

  • Calling clear classes after using the CC4M user interface or the Configuration Editor can cause warnings about not being able to clear certain classes because objects exist of those classes. In order to prevent these warnings, call close force all before clear classes. As an alternative, you can choose to ignore or suppress these warnings because the classes that cannot be cleared are generally not the reason for calling clear classes.

  • In MATLAB R2017b, the color of the switches in the CC4M GUI may differ from those in more recent MATLAB releases.