Code Analysis - Known Issues and Restrictions

The following restrictions apply to the code analysis functionality:

Branch prediction

Branch prediction is not enabled. For example, this will not be detected as unreachable code by Dead Code Analysis:
if 0 equals 1
               display "Unreachable code"
           else
               display "World"
           end-if 

Conditional compilation

Conditional compilation is not supported.

Data Flow Analysis

The following functionality is not supported:

  • By value
  • Entry points
  • Following data through internal calls to entry points within the same program (re-entrant)
  • JSON parse syntax
  • Multi-program source
  • Section fall through
  • Selecting a data item from the file-control section
  • Qualified paragraph names (paragraph OF section)

ENTRY defined through variable

ENTRY statements defined through variables are not supported, and the ENTRY's statements will be marked as dead even if they can be called.

working-storage section.
       78 entry-name value "my-entry-name".

       procedure division.
       
       entry entry-name
           display "this is my-entry-name"
           goback
       .

In the example above, the DISPLAY statement will be marked as dead even if it can be called.

Local variable declarations

Local variable declarations are not supported.

.NET COBOL support

The .NET COBOL syntax is not supported.

Program Flow Graph

The following functionality is not supported:

  • By value
  • Entry points
  • JSON parse syntax
  • Multi-program source - multi-program COBOL files only show the graph for the first program.
  • Section fall through
  • Qualified paragraph names (paragraph OF section)

Projects stored on a network share

  • The Program Flow Graph and Data Flow Analysis features are not available for projects stored on a network share. To work with these features, you need to copy the projects to a local drive.
  • Code slicing is not supported.

Supported languages

Only the COBOL language is supported.