Code Analysis (Known Issues)

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)
  • Nested programs

Code Analysis rules

Nested programs are not supported.

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.

IDE menu items

The following Microsoft's Visual Studio analysis commands are not supported for Visual COBOL projects:

  • Analyze > Run Code Analysis > On Solution
  • Analyze > Configure Code Analysis > On Solution
  • Analyze > Windows > Code Metrics Results

Local variable declarations

Local variable declarations are not supported.

.NET COBOL support

The .NET COBOL syntax is not supported.

Parameterized sections

Many of the code analysis features are restricted when using parameterized sections. The following is not supported:

  • Data flow and data flow graph
  • Program flow
  • Rules
  • Code slicing, including:
    • Extract section/paragraph to program
    • Create program from section/paragraph
    • Create program from computation
    • Create program from condition

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 programming languages

Only the COBOL language is supported.