Code Problem Descriptions


This topic lists and provides descriptions for the various code problems that can be identified in the Code Insights perspective.

Severe Messages

S001 IDENTIFICATION DIVISION header not found.

The IDENTIFICATION DIVISION header is missing. Be sure that you have entered a valid COBOL program.

S002 PROGRAM-ID not found.

The PROGRAM-ID is missing. Be sure that you have entered a valid COBOL program with a valid PROGRAM-ID.

S003 PROGRAM-ID paragraph not found.

The PROGRAM-ID paragraph is missing. Be sure that you have entered a valid COBOL program with a valid PROGRAM-ID paragraph.

S004 Stack overflow. The token look-ahead exceeded nnnn.

The analysis encountered a stack overflow. Be sure that you have entered a valid COBOL program.

S005 Unable to open input file.

The analysis could not open the input file.

S006 Preprocessor DLL returned invalid return code: xxxx.

The user exit returned an invalid return code, where rc is the return code. Parsing and analysis terminates. The return codes listed earlier are the only valid ones.

S007 Level 0 procedure not found.

A PL/I Procedure statement was not found.

S008 Ambiguity detected. Internal parser error.

There was an error in the analysis because there are multiple rules that match the source it is parsing and it is ambiguous which rule to follow. Contact BMC Customer support.

Error Messages

E001 A REPLACE clause is missing a BY or a period.

Analysis encountered a REPLACE clause without a BY phrase or period. Enter the BY phrase or period.

E002 Procedure name xxxx is undeclared.

A procedure name is referenced by a statement, but the procedure name does not exist in the input program. Analysis stops and the structure chart and logic flow graph are not generated. Add the procedure name.

E005 Recursive Copy/Include.

A nested copy member is opened twice in the program. Correct the program to stop the COPY/INCLUDE recursion.

E006 Found xxxx, but expected yyyy or yyyy or yyyy or ....

Code Insights received unexpected data. If the instances of unexpected data cause the message to exceed 128 bytes, the yyyy series is replaced by ellipsis ( ... ). Analysis stops and the structure chart and logic flow graph are not generated.

E007 Unable to open SQL INCLUDE member xxxx.

Analysis was unable to open the SQLCA or SQLDA INCLUDE member. We should be able to successfully analyze your program. If you would like to have this member included, check the file name and spelling as well as settings for copy paths to ensure the copybook download function is properly configured. For more information, see Downloading_Copybooks.

E008 Illegal qualifier for xxxx.

Analysis encountered an illegal qualifier. Enter a valid qualifier.

E009 Invalid sequence of characters.

Analysis encountered an invalid sequence of characters. Enter a valid character sequence.

E010 Missing COPY/INCLUDE member name.

A member name is missing from a COPY or %INCLUDE statement. Check the file name and spelling as well as settings for copy paths to ensure the copybook download function is properly configured. For more information, see Downloading_Copybooks.

E011 Object of REDEFINES not found.

Analysis could not find the object of a redefine phrase. Check the redefine phrase.

E012 Continuation character expected. End of literal assumed.

A quoted string was not properly terminated. Enter the proper termination.

E013 xx must begin in Area B. Proceeding as if xx began in Area B.

Analysis encountered a statement that begins in the incorrect column.

E016 Unable to open COPY/INCLUDE member xxxx.

Analysis was unable to open the COPY/INCLUDE file. Check the file name and spelling as well as settings for copy paths to ensure the copybook download function is properly configured. For more information, see Downloading_Copybooks.

E017 Unable to open SQL INCLUDE member xxxx.

Analysis was unable to open the SQL INCLUDE member. Check the file name and spelling as well as settings for copy paths to ensure the copybook download function is properly configured. For more information, see Downloading_Copybooks.

E018 Unable to open ++INCLUDE member xxxx.

Analysis was unable to open the ++INCLUDE member. Check the file name and spelling as well as settings for copy paths to ensure the copybook download function is properly configured. For more information, see Downloading_Copybooks.

E019 Unable to open -INC member xxxx.

Analysis was unable to open the -INC member. Check the file name and spelling as well as settings for copy paths to ensure the copybook download function is properly configured. For more information, see Downloading_Copybooks.

E020 Unmatched exception phrase.

Analysis encountered an exception phrase without a matching statement. Analysis stops and the structure chart and logic flow graph are not generated. Delete the phrase or enter a matching statement.

E021 Unmatched ELSE phrase.

Analysis encountered an ELSE phrase without a matching IF statement. Analysis stops and the structure chart and logic flow graph are not generated. Delete the phrase or enter a matching IF statement.

E022 Unmatched WHEN phrase.

Analysis encountered a WHEN phrase without a matching statement. Analysis stops and the structure chart and logic flow graph are not generated. Delete the phrase or enter a matching statement.

E023 xxxx is an illegal character.

Analysis encountered a character that is not in the COBOL character set. Analysis stops and the structure chart and logic flow graph are not generated. Check the COBOL dialect and settings in the Lang Level tab in the Settings dialog box. Enter the proper characters.

E024 xxxx is not valid in the PICTURE clause.

Analysis encountered data that is not permitted in a PICTURE clause. Re-enter the PICTURE clause with valid data.

E025 xxxx is undefined.

Analysis encountered an undefined field. Check the spelling of the field name. If the spelling is correct, make sure the field name is not in a missing copybook or %INCLUDE. Then check settings for copy paths to ensure the copybook download function is properly configured. For more information, see Downloading_Copybooks.

E026 Unmatched AT END phrase.

Analysis encountered an unmatched AT END phrase. Analysis stops and the structure chart and logic flow graph are not generated. Check the logic before and after the AT END phrase.

E027 FILE-CONTROL paragraph SELECT clause not found for FD and 01-level record.

Analysis could not find a FILE-CONTROL paragraph SELECT clause for an FD and 01 record. Add the SELECT clause.

E028 FILE-CONTROL paragraph SELECT clause not found for FD.

Analysis could not find a FILE-CONTROL paragraph SELECT clause for an FD. Add the SELECT clause.

E029 END label xxxx is not a label on any open block.

A labeled END statement could not find the statement that created the block.

E030 Scope terminator found without a matching statement.

Analysis encountered a scope terminator without a matching statement. This could be caused by having a period at the end of a statement before reaching the END-IF.

E031 Nested programs are not supported and will be excluded from analysis.

The analysis will be confined to the main program, and nested programs will be excluded.

Warning Messages

W001 A period is required.

A required period is missing. Add the period.

W003 Missing period for COPY statement.

The COPY statement requires a period. Add the period.

W004 xxxx is not declared.

The analysis encountered an undeclared SQL data element. Check the file name and spelling as well as settings for copy paths to ensure the copybook download function is properly configured. For more information, see Downloading_Copybooks.

W005 xxxx is not uniquely qualified.

The analysis encountered duplicate qualifiers. Check the qualifiers and enter unique ones.

W006 Missing period in REPLACE statement.

The REPLACE statement is missing a period. Add the period.

W007 Host variable without preceding colon.

The host variable is not preceded by a colon. In some contexts, you can specify a host variable in an SQL statement without a preceding colon. The analysis issues a warning message and processes the statement as if the missing colon is present. BMC strongly recommends that all host variables be preceded by a colon for the following reasons:

  • It enhances readability by making the host variables easier to identify.
  • It increases portability, since other varieties of SQL do not let you omit a colon.
  • Future versions of DB2, in conformity with ANSI standards, may not allow the omission.

W008 Found x, but expected y.

The analysis either expected an apostrophe (') as a string delimiter but found a quote ("), or expected a quote but found an apostrophe.

W010 Could not load preprocessor dll xxxx.

The Program Analyzer could not load the Filename.dll, the preprocessor specified on the Preprocessor tab of the Settings dialog box. The Program Analyzer runs without trying to invoke the preprocessor DLL. The operating system was unable to load the DLL. Be sure that any run-time support that the DLL needs to execute is available. Also, if the DLL file does not include the full drive:pathname, its directory must be known to the current operating system (via LIBPATH or PATH).

W011 Object oriented COBOL is not supported.

Object oriented COBOL is not supported, only tolerated.

W012 Preprocessor directive will be ignored.

PL/I programs containing preprocessor directives other than %INCLUDE, %PRINT, %NOPRINT, %SKIP, and %PROCESS must have the directives resolved before they can be analyzed. For more information, refer to the Usage Restrictions section in Getting-Started-with-Code-Insights.

W013 All statements outside the level 0 procedure will be ignored.

Statements outside the level 0 procedure were encountered, or more than one level 0 procedure was found.

W014 Label variables are not supported on GOTO statements.

Label variables are not supported on GOTO statements, only tolerated.

W015 Reference to SQL procedure xxxx is ignored.

COBOL code references a paragraph that is generated by the SQL pre-processor. We do not display code that is generated by the SQL pre-processor, therefore these statements are ignored.

W016 Statement contains wrong number of INTO variables.

The number of variables specified in an INTO clause is not the same as the number of select-list elements.

W017 Report Writer Definition found in this program.

Report Writer Entry found in this program. Report Writer syntax is not supported, therefore any Report Writer verbs that might follow will be rejected.

Informational Messages

I001 End of sentence should precede xxxx. Assumed present.

Analysis encountered a procedure label or the input source’s END-OF-FILE without a preceding period. The end of sentence is assumed.

I002 In-line PERFORM found without matching END-PERFORM.

Analysis encountered a PERFORM statement without a corresponding END-PERFORM statement.

I003 Recursive PERFORM.

Analysis encountered a recursive PERFORM code problem. Indicates that the paragraph contains recursion (a PERFORM statement that can reach itself before the PERFORM is finished).

I005 Inexecutable statement.

The program's logic did not permit the analysis to reach a particular statement, so the statement was not analyzed. This means that this statement is “dead code” and would never be executed.

I006 Unentered procedure.

The program's logic did not reach a particular procedure.

I007 Unable to open SQL INCLUDE member xxxx.

Analysis was unable to open the SQLCA or SQLDA INCLUDE member. These files are available in your installation directory. You can add these files to the copy paths on the Copybook Paths tab (for COBOL) or the Include Paths tab (for PL/I) in the Settings dialog box.

I008 PRV : violates range xxxx thru xxxx.

Analysis encountered a GO TO statement that branched outside its Perform Range (xxxx through xxxx). This GO TO statement created a Perform Range Violation (PRV) code problem.

I009 Too many error or warning messages.

You have exceeded the number of messages that can be stored. Analysis will continue, but it will not display any more messages.

I010 SRV: violates scoped xxxx.

Analysis encountered a GO TO or NEXT SENTENCE statement that branched outside the range of the specified (xxxx) scoped delimited statement. This created a Scoped Range Violation (SRV) code problem. In the case of an IF statement it indicates that the GO TO or NEXT SENTENCE referred to will end up past the END-IF.

I011 Unresolved scoped xxxx.

The xxxx scope does not execute to its corresponding end scope statement. This message is usually caused by a GO TO out of a scope or a non-returning paragraph called from a scope.

I012 Runaway logic caused by GO or in PROCEDURE DIVISION.

Analysis detected that the program does not contain a terminate execution statement or program logic bypassed terminate execution statement.

I013 Block(s) not explicitly closed.

A block of code does not have a matching end statement.

I014 File xxxx is not used.

File is not used. This will occur if a file is defined in a program but it is not referenced in a statement other than an open or close.

I015 Table xxxx is not used.

Table is not used. This will occur when a table is declared in a program but it is not used in another SQL statement.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*