C.5 Symbol handling

This section lists all the messages that concern the handling of symbols. This means all things that have to do with procedure and variable names.

Error: Identifier not found arg1
The compiler doesn’t know this symbol. Usually happens when you misspel the name of a variable or procedure, or when you forgot to declare a variable.
Fatal: Internal Error in SymTableStack()
An internal error occurred in the compiler; If you encounter such an error, please contact the developers and try to provide an exact description of the circumstances in which the error occurs.
Error: Duplicate identifier arg1
The identifier was already declared in the current scope.
Hint: Identifier already defined in arg1 at line arg2
The identifier was already declared in a previous scope.
Error: Unknown identifier arg1
The identifier encountered hasn’t been declared, or is used outside the scope where it’s defined.
Error: Forward declaration not solved arg1
This can happen in two cases:
Fatal: Identifier type already defined as type
You are trying to redefine a type.
Error: Error in type definition
There is an error in your definition of a new array type:
One of the range delimiters in an array declaration is erroneous. For example, Array [1..1.25] will trigger this error.
Error: Type identifier not defined
The type identifier has not been defined yet.
Error: Forward type not resolved arg1
A symbol was forward defined, but no declaration was encountered.
Error: Only static variables can be used in static methods or outside methods
A static method of an object can only access static variables.
Error: Invalid call to tvarsym.mangledname()
An internal error occurred in the compiler; If you encounter such an error, please contact the developers and try to provide an exact description of the circumstances in which the error occurs.
Fatal: record or class type expected
The variable or expression isn’t of the type record or class.
Error: Instances of classes or objects with an abstract method are not allowed
You are trying to generate an instance of a class which has an abstract method that wasn’t overridden.
Warning: Label not defined arg1
A label was declared, but not defined.
Error: Label used but not defined arg1
A label was declared and used, but not defined.
Error: Illegal label declaration
This error should never happen; it occurs if a label is defined outside a procedure or function.
Error: GOTO and LABEL are not supported (use switch -Sg)
You must compile a program which has labels and goto statements with the -Sg switch. By default, label and goto aren’t supported.
Error: Label not found
A goto label was encountered, but the label isn’t declared.
Error: identifier isn’t a label
The identifier specified after the goto isn’t of type label.
Error: label already defined
You are defining a label twice. You can define a label only once.
Error: illegal type declaration of set elements
The declaration of a set contains an invalid type definition.
Error: Forward class definition not resolved arg1
You declared a class, but you didn’t implement it.
Hint: Unit arg1 not used in arg2
The unit referenced in the uses clause is not used.
Hint: Parameter arg1 not used
This is a warning. The identifier was declared (locally or globally) but wasn’t used (locally or globally).
Note: Local variable arg1 not used
You have declared, but not used a variable in a procedure or function implementation.
Hint: Value parameter arg1 is assigned but never used
This is a warning. The identifier was declared (locally or globally) set but not used (locally or globally).
Note: Local variable arg1 is assigned but never used
The variable in a procedure or function implementation is declared, set but never used.
Hint: Local arg1 arg2 is not used
A local symbol is never used.
Note: Private field arg1.arg2 is never used
Note: Private field arg1.arg2 is assigned but never used
Note: Private method arg1.arg2 never used
Error: Set type expected
The variable or expression isn’t of type set. This happens in an in statement.
Warning: Function result does not seem to be set
You can get this warning if the compiler thinks that a function return value is not set. This will not be displayed for assembler procedures, or procedures that contain assembler blocks.
Warning: Type arg1 is not aligned correctly in current record for C
Arrays with sizes not multiples of 4 will be wrongly aligned for C structures.
Error: Unknown record field identifier arg1
The field doesn’t exist in the record definition.
Warning: Local variable arg1 does not seem to be initialized
Warning: Variable arg1 does not seem to be initialized
These messages are displayed if the compiler thinks that a variable will be used (i.e. appears in the right-hand-side of an expression) when it wasn’t initialized first (i.e. appeared in the left-hand side of an assigment)
Error: identifier idents no member arg1
When using the extended syntax of new, you must specify the constructor method of the class you are trying to create. The procedure you specified does not exist.
Found declaration: arg1
You get this when you use the -vb switch. In case an overloaded procedure is not found, then all candidate overloaded procedures are listed, with their parameter lists.
Error: Data segment too large (max. 2GB)
You get this when you declare an array whose size exceeds the 2GB limit.