Preprocessor Error Messages
The following is a list of error messages specific to the C language:
E_E00001
The #define statement may be used only with values, not names. Use typedef if you wish to make '%0c' a synonym for a type.
Reason:
The #define directive accepts only integer, floating-point or string literals as the replacement token.
Action:
You may not use arbitrary text as the replacement token. To define type names you should use typedef. The embedded preprocessor #define is not as versatile as the C #define.
E_E00002
Cast of #define value is ignored.
Reason:
The preprocessor ignores a cast of the replacement value in a #define statement. Casts, in general, are not supported by the embedded C preprocessor.
Action:
Remove the cast from the #define statement.
E_E00003
Incorrect indirection on variable'%0c'. Variable is subscripted, [], or dereferenced, *,%1c time(s) but declared with indirection of%2c.
Reason:
This error occurs when the address or value of a variable is incorrectly expressed because of faulty indirection. For example, the name of an integer array has been given instead of a single array element, or, in the case of character string variables, a single element of the string (that is, a character) has been given instead of a pointer to the string or the name of the array.
Action:
Either redeclare the variable with the intended indirection or change its use in the current statement.
E_E00004
Last component of structure reference'%0c' is illegal.
Reason:
This error occurs when the preprocessor encounters an unrecognized name in a structure reference. The user may have incorrectly typed the name of structure element or may have failed to declare it to the preprocessor.
Action:
Check for misspellings in component names and that all of the structure components have been declared to the preprocessor.
E_E00005
Unclosed block – %0x unbalanced left brace(s).
Reason:
The preprocessor reached the end of the file still expecting one or more closing braces (}).
Action:
Make sure that you have no opening braces in an unclosed character or string constant, or have not accidentally commented out a closing brace. Also remember that the preprocessor ignores #ifdef directives, so having several opening braces in alternate paths of an #ifdef will confuse the preprocessor.
E_E00006
Unsupported forward declaration of C function "%0c".
Reason:
The preprocessor does not support function declarations. For example, the following declaration will cause this error:
##int func():
Action:
Remove the ## mark from the function declaration.
E_E00007
Unsupported definition of nested C function "%0c". Check for missing closing brace of preceding function.
Reason:
(EQUEL) The preprocessor does not support nested function definitions. This error commonly occurs when the user has omitted the ## mark on the closing brace of the previous function definition.
Action:
Check for the ## mark on the closing brace of the previous function definition. Make sure no function definitions are nested.
E_E00008
Incorrect declaration of C varchar variable is ignored. The members of a varchar structure variable may consist only of a short integer and a fixed length character array.
Reason:
Varchar variables (variables declared with the varchar storage class) must conform to an exact varying length string template so that Ingres can map to and from them at runtime. The length field must be exactly two bytes (derived from a short), and the character string field must be a single-dimensioned C character array. The varchar clause must be associated with a variable declaration and not with a type definition or structure tag declaration.
Action:
Check the varchar structure declaration. Make sure that both structure members are declared properly.
E_E00009
Missing'=' in the initialization part of a C declaration."
Reason:
The preprocessor allows automatic initialization of variables and expects the regular C syntax.
Action:
Insert an equals sign (=) between the variable and the initializing value.