-

Difference between revisions of "Error Messages"

From HI-TECH C for CP/M Fan WIKI(EN)
Jump to: navigation, search
(Created page with "Error Messages produced by the compiler are listed below. Each message is followed by the name of the program which produces it, and some further description of what causes th...")
 
 
(4 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
causes the message or what to do about it.
 
causes the message or what to do about it.
  
 +
== . ==
  
 +
;'.' expected after '..' P1
 +
:The ellipsis symbol must have three dots
  
'.' expected after '..' P1
+
== A ==
The ellipsis symbol must have three dots
 
  
actuals too long CPP
+
;actuals too long CPP
Reduce length of macro arguments
+
:Reduce length of macro arguments
  
argument list conflicts with prototype P1
+
;argument list conflicts with prototype P1
The argument list in a function definition must agree
+
:The argument list in a function definition must agree with a prototype if one exists
with a prototype if one exists
 
  
argument redeclared P1
+
;argument redeclared P1
This argument has been declared twice
+
:This argument has been declared twice
  
arithmetic overflow in constant expression CGEN
+
;arithmetic overflow in constant expression CGEN
Evaluation of this constant expression produced an
+
:Evaluation of this constant expression produced an arithmetic overflow. This may or may not represent a true error.
arithmetic overflow. This may or may not represent a
 
true error.
 
  
array index out of bounds P1
+
;array index out of bounds P1
An array index expression evaluates to a constant which
+
:An array index expression evaluates to a constant which is less than zero or greater than or equal to the dimension of the array
is less than zero or greater than or equal to the
 
dimension of the array
 
  
Assertion CGEN
+
;Assertion CGEN
Internal error - contact HI-TECH
+
:Internal error - contact HI-TECH
  
attempt to modify const object P1
+
;attempt to modify const object P1
An attempt has been made to assign to or otherwise
+
:An attempt has been made to assign to or otherwise modify an object designated as 'const'
modify an object designated as 'const'
 
  
bad bitfield type P1
+
== B ==
Bitfields must be of type 'int'
 
  
Bad conval CGEN
+
;bad bitfield type P1
Internal error - contact HI-TECH
+
:Bitfields must be of type 'int'
  
Bad dimensions CGEN
+
;Bad conval CGEN
An array has bad dimensions - probably zero
+
:Internal error - contact HI-TECH
  
Bad element count expr CGEN
+
;Bad dimensions CGEN
Internal error - contact HI-TECH
+
:An array has bad dimensions - probably zero
  
bad formal CPP
+
;Bad element count expr CGEN
Check macro defintion syntax
+
:Internal error - contact HI-TECH
  
bad include syntax CPP
+
;bad formal CPP
Use only "" and <> for include files
+
:Check macro defintion syntax
  
Bad int. code CGEN
+
;bad include syntax CPP
The intermediate code file has been corrupted - can be
+
:Use only "" and <> for include files
caused by running out of disk space
 
  
Bad -M option CGEN
+
;Bad int. code CGEN
A -M option passed to the code generator is unknown
+
:The intermediate code file has been corrupted - can be caused by running out of disk space
  
Bad mod '+' for how = c CGEN
+
;Bad -M option CGEN
Internal error - contact HI-TECH
+
:A -M option passed to the code generator is unknown
  
bad object code format LINK
+
;Bad mod '+' for how = c CGEN
This file is either corrupted or not a valid object
+
:Internal error - contact HI-TECH
file
 
  
Bad op d to swaplog CGEN
+
;bad object code format LINK
Internal error - contact HI-TECH
+
:This file is either corrupted or not a valid object file
  
Bad op n to revlog CGEN
+
;Bad op d to swaplog CGEN
Internal error - contact HI-TECH
+
:Internal error - contact HI-TECH
  
bad origin format in spec LINK
+
;Bad op n to revlog CGEN
An address in a -p option is invalid
+
:Internal error - contact HI-TECH
  
bad '-p' format LINK
+
;bad origin format in spec LINK
The -p option provided is invalid
+
:An address in a -p option is invalid
  
Bad pragma c CGEN
+
;bad '-p' format LINK
The code generator has been passed a pragma it does not
+
:The -p option provided is invalid
know about
 
  
Bad putwsize CGEN
+
;Bad pragma c CGEN
Internal error - contact HI-TECH
+
:The code generator has been passed a pragma it does not know about
  
bad storage class P1, CGEN
+
;Bad putwsize CGEN
The speficied storage class is illegal
+
:Internal error - contact HI-TECH
  
Bad U usage CGEN
+
;bad storage class P1, CGEN
Internal error - contact HI-TECH
+
:The speficied storage class is illegal
  
Bit field too large (n bits) CGEN
+
;Bad U usage CGEN
A bit field may not be larger than an int
+
:Internal error - contact HI-TECH
  
Cannot get memory LINK
+
;Bit field too large (n bits) CGEN
The linker has run out of dynamic memory
+
:A bit field may not be larger than an int
  
Can't be both far and near P1
+
== C ==
The 'far' and 'near' keywords cannot appear in the same
 
type specifier
 
  
can't be long P1
+
;Cannot get memory LINK
Chars and shorts cannot be long
+
:The linker has run out of dynamic memory
  
can't be register P1
+
;Can't be both far and near P1
An extern or static variable may not be register
+
:The 'far' and 'near' keywords cannot appear in the same type specifier
  
can't be short P1
+
;can't be long P1
Float and char cannot be short
+
:Chars and shorts cannot be long
  
can't be unsigned P1
+
;can't be register P1
Float cannot be unsigned
+
:An extern or static variable may not be register
  
can't call an interrupt function P1
+
;can't be short P1
A function qualified 'interrupt' can only be called by
+
:Float and char cannot be short
hardware, not by an ordinary function call
 
  
Can't create filename CGEN
+
;can't be unsigned P1
The file specified could not be created
+
:Float cannot be unsigned
  
Can't create xref file P1
+
;can't call an interrupt function P1
The cross reference file specified could not be created
+
:A function qualified 'interrupt' can only be called by hardware, not by an ordinary function call
  
Can't create CPP
+
;Can't create filename CGEN
Output file could not be created
+
:The file specified could not be created
  
Can't create LINK
+
;Can't create xref file P1
The linker cannot create a file
+
:The cross reference file specified could not be created
  
Can't find include file CPP
+
;Can't create CPP
Check and correct the include file name - spaces are
+
:Output file could not be created
not allowed in file names
 
  
Can't find register for bits CGEN
+
;Can't create LINK
Internal error - contact HI-TECH
+
:The linker cannot create a file
  
Can't generate code for this expression CGEN
+
;Can't find include file CPP
The code generator is unable to generate code for this
+
:Check and correct the include file name - spaces are not allowed in file names
expression - simplifying the expression (e.g. computing
+
 
values into temporary variables) will usually correct
+
;Can't find register for bits CGEN
 +
:Internal error - contact HI-TECH
 +
 
 +
;Can't generate code for this expression CGEN
 +
:The code generator is unable to generate code for this expression - simplifying the expression (e.g. computing values into temporary variables) will usually correct
 
it, otherwise contact HI-TECH
 
it, otherwise contact HI-TECH
  
can't have array of functions P1
+
;can't have array of functions P1
You cannot have an array of functions - you can have an
+
:You cannot have an array of functions - you can have an array of pointers to functions
array of pointers to functions
+
 
 +
;Can't have 'port' variable CGEN
 +
:You cannot declare a variable to be qualified 'port' - you can only use port to qualify pointers or typecast constant values
 +
 
 +
;can't have storage class P1
 +
:A storage class may not appear in a prototype argument
 +
 
 +
;can't initialise auto aggregates P1
 +
:You cannot initialise a structure or array inside a function unless it is static
 +
 
 +
;can't initialize arg P1
 +
:An argument cannot have an initializer
 +
 
 +
;can't mix proto and non-proto args P1
 +
:You cannot mix prototype and non-prototype arguments even in a function definitional
 +
 
 +
;Can't open filename CGEN
 +
:The file specified could not be opened for reading
 +
 
 +
;Can't open LINK
 +
:The linker cannot open a file
 +
 
 +
;Can't seek LINK
 +
:The linker could not seek in file
 +
 
 +
;can't take address of register variable P1
 +
:You can't take the address of a variable in a register
 +
 
 +
;can't take sizeof func CGEN
 +
:You can't take the size of a function. You can take the size of a function call
 +
 
 +
;can't take this address P1
 +
:The expression does not have an address
 +
 
 +
;'case' not in switch P1
 +
:A 'case' label is permitted only inside a switch
 +
 
 +
;char const too long P1
 +
:A character constant may have only one character in it
 +
 
 +
;close error (disk space?) P1
 +
:Probably out of disk space
 +
 
 +
;common symbol psect conflict LINK
 +
:A common symbol is defined to be in more than one psect
 +
 
 +
;constant conditional branch CGEN
 +
:You have a program structure testing a constant expression, e.g. while(1). You should substitute for this the more efficient for(;;)
 +
 
 +
;constant expression required P1
 +
:A constant expression is required in e.g. an array dimension
  
Can't have 'port' variable CGEN
+
;constant operand to || or && CGEN
You cannot declare a variable to be qualified 'port' -
+
:A logical operator has a constant operand which has been optimized out
you can only use port to qualify pointers or typecast
 
constant values
 
  
can't have storage class P1
+
== D ==
A storage class may not appear in a prototype argument
 
  
can't initialise auto aggregates P1
+
;declarator too complex P1
You cannot initialise a structure or array inside a
+
:This declaration is too complex for the compiler to handle
function unless it is static
 
  
can't initialize arg P1
+
;default case redefined P1
An argument cannot have an initializer
+
:Only one default case is permitted in a switch
  
can't mix proto and non-proto args P1
+
;'default' not in switch P1
You cannot mix prototype and non-prototype arguments
+
:A 'default' label is permitted only inside a switch
even in a function definitional
 
  
Can't open filename CGEN
+
;digit out of range P1
The file specified could not be opened for reading
+
:An octal constant may not contain 7 or 8, and a decimal constant may not contain A-F
  
Can't open LINK
+
;dimension required P1
The linker cannot open a file
+
:A dimension is required for all except the most significant in an array declaration
  
Can't seek LINK
+
;Division by zero CGEN
The linker could not seek in file
+
:Attempt to divide by zero in this expression
  
can't take address of register variable P1
+
;Duplicate case label n CGEN
You can't take the address of a variable in a register
+
:There are two case labels in this switch that have the same value
  
can't take sizeof func CGEN
+
;Duplicate -d flag LINK
You can't take the size of a function. You can take the
+
:Only one -d flag is allowed to the linker
size of a function call
 
  
can't take this address P1
+
;duplicate label P1
The expression does not have an address
+
:This label is defined twice
  
'case' not in switch P1
+
;Duplicate -m flag LINK
A 'case' label is permitted only inside a switch
+
:Only one -m flag is allowed to the linker
  
char const too long P1
+
;duplicate qualifier P1
A character constant may have only one character in it
+
:The same qualifier appears more than once in this type specifier
  
close error (disk space?) P1
+
== E ==
Probably out of disk space
 
  
common symbol psect conflict LINK
+
;entry point multiply defined LINK
A common symbol is defined to be in more than one psect
+
:A program can only have one entry point (start address)
  
constant conditional branch CGEN
+
;EOF in #asm P1
You have a program structure testing a constant expres-
+
:End of file was encounterd after #asm and before a #endasm was seen
sion, e.g. while(1). You should substitute for this the
 
more efficient for(;;)
 
  
constant expression required P1
+
;Error closing output file CGEN,CPP
A constant expression is required in e.g. an array
+
:Probably means you have run out of disk space
dimension
 
  
constant operand to || or && CGEN
+
;excessive -I file ignored CPP
A logical operator has a constant operand which has
+
:Use fewer -I options
been optimized out
 
  
declarator too complex P1
+
;expand - bad how CGEN
This declaration is too complex for the compiler to
+
:Internal error - contact HI-TECH
handle
 
  
default case redefined P1
+
;expand - bad which CGEN
Only one default case is permitted in a switch
+
:Internal error - contact HI-TECH
  
'default' not in switch P1
+
;exponent expected P1
A 'default' label is permitted only inside a switch
+
:An exponent is expected after the 'e' or 'E' in a floating point constant. The exponent must contain only +, - and digits 0-9
  
digit out of range P1
+
;Expression error CGEN
An octal constant may not contain 7 or 8, and a decimal
+
:Internal error - contact HI-TECH
constant may not contain A-F
 
  
dimension required P1
+
;expression generates no code CGEN
A dimension is required for all except the most signi-
+
:This expression has no side effects and thus generates no code. It has been optimized out
ficant in an array declaration
 
  
Division by zero CGEN
+
;expression syntax P1
Attempt to divide by zero in this expression
+
:The expression is badly formed
  
Duplicate case label n CGEN
+
;expression too complex P1
There are two case labels in this switch that have the
+
:The expression has too many nested parantheses or other nested constructs
same value
 
  
Duplicate -d flag LINK
+
== F ==
Only one -d flag is allowed to the linker
 
  
duplicate label P1
+
;Fixup overflow referencing LINK
This label is defined twice
+
:The linker has relocated a reference to a psect or symbol and the relocated address is too big to fit into the space, e.g. a relocated one byte address exceeds 256 or a relocated 16 bit address exceeds 65536
  
Duplicate -m flag LINK
+
;float param coerced to double P1
Only one -m flag is allowed to the linker
+
:This float parameter has been converted to double - a prototype will override this coercion
  
duplicate qualifier P1
+
;function() declared implicit int P1
The same qualifier appears more than once in this type
+
:This function has been called without an explicit declaration. It is wise to explicitly declare all functions, preferably with a prototype. This will avoid many potential errors where your program comprises more than one source file
specifier
 
  
entry point multiply defined LINK
+
;function does not take arguments P1
A program can only have one entry point (start address)
+
:The prototype for this function indicates it takes no arguments
  
EOF in #asm P1
+
;function or function pointer required P1
End of file was encounterd after #asm and before a
+
:A function identifier or pointer to function is required for a function call.
#endasm was seen
 
  
Error closing output file CGEN,CPP
+
;functions can't return arrays P1
Probably means you have run out of disk space
+
:A function cannot return an array - it can return a pointer
  
excessive -I file ignored CPP
+
;functions can't return functions P1
Use fewer -I options
+
:A function cannot return a function - it can return a pointer to function
  
expand - bad how CGEN
+
== H ==
Internal error - contact HI-TECH
 
  
expand - bad which CGEN
+
;hex digit expected P1
Internal error - contact HI-TECH
+
:A hex digit is expected after '0x'
  
exponent expected P1
+
== I ==
An exponent is expected after the 'e' or 'E' in a
 
floating point constant. The exponent must contain only
 
+, - and digits 0-9
 
  
Expression error CGEN
+
;identifier is a structure tag P1
Internal error - contact HI-TECH
+
:A structure tag has been used in a context where another kind of tag is expected, e.g. saying struct fred where fred has previously been declared as union fred.
  
expression generates no code CGEN
+
;identifier is a union tag P1
This expression has no side effects and thus generates
+
:Similar to the above error
no code. It has been optimized out
 
  
expression syntax P1
+
;identifier is an enum tag P1
The expression is badly formed
+
:Similar to the above error
expression too complex P1
 
The expression has too many nested parantheses or other
 
nested constructs
 
  
Fixup overflow referencing LINK
+
;identifier<nowiki>:</nowiki> large offset CGEN
The linker has relocated a reference to a psect or sym-
+
:Z80 only: This identifier has a large offset from the stack frame and thus access to it is inefficient. In a function any arrays should be declared after any simple variables
bol and the relocated address is too big to fit into
 
the space, e.g. a relocated one byte address exceeds
 
256 or a relocated 16 bit address exceeds 65536
 
  
float param coerced to double P1
+
;identifier redeclared P1
This float parameter has been converted to double - a
+
:The identifier has been redeclared with different attributes
prototype will override this coercion
 
  
function() declared implicit int P1
+
;identifier redefined P1
This function has been called without an explicit
+
:An identifier has been defined twice
declaration. It is wise to explicitly declare all func-
 
tions, preferably with a prototype. This will avoid
 
many potential errors where your program comprises more
 
than one source file
 
  
function does not take arguments P1
+
;If-less else CPP
The prototype for this function indicates it takes no
+
:Check #if usage
arguments
 
  
function or function pointer required P1
+
;If-less endif CPP
A function identifier or pointer to function is
+
:Check #if usage
required for a function call.
 
  
functions can't return arrays P1
+
;illegal '#' directive P1
A function cannot return an array - it can return a
+
:A # directive passed through to the first pass is unknown. If this occurs with a #include it may be caused by a previous include file not having a <CR><LF> or newline on the last line.
pointer
 
  
functions can't return functions P1
+
;Illegal character in preprocessor if CPP
A function cannot return a function - it can return a
+
:Check for strange character
pointer to function
 
  
hex digit expected P1
+
;illegal character P1
A hex digit is expected after '0x'
+
:A character unknown to the compiler has been encountered. The value given is the octal value of the character
  
identifier is a structure tag P1
+
;illegal conversion between pointer types P1
A structure tag has been used in a context where
+
:The expression causes one pointer type to be converted to another incompatible type
another kind of tag is expected, e.g. saying struct
 
fred where fred has previously been declared as union
 
fred.
 
  
identifier is a union tag P1
+
;illegal conversion of integer to pointer P1
Similar to the above error
+
:An integer is used where a pointer is expected
  
identifier is an enum tag P1
+
;illegal conversion of pointer to integer P1
Similar to the above error
+
:A pointer is used where an integer is expected
  
identifier: large offset CGEN
+
;illegal conversion P1
Z80 only: This identifier has a large offset from the
+
:The type conversion here is illegal
stack frame and thus access to it is inefficient. In a
 
function any arrays should be declared after any simple
 
variables
 
  
identifier redeclared P1
+
;Illegal flag LINK
The identifier has been redeclared with different
+
:This option is illegal
attributes
 
  
identifier redefined P1
+
;illegal function qualifier(s) P1
An identifier has been defined twice
+
:A function cannot have 'const' qualification
  
If-less else CPP
+
;illegal initialisation P1
Check #if usage
+
:The initialisation of this variable is illegal
  
If-less endif CPP
+
;Illegal number CPP
Check #if usage
+
:Check number syntax
  
illegal '#' directive P1
+
;illegal type for array dimension P1
A # directive passed through to the first pass is unk-
+
:An array dimension must be an integral quantity
nown. If this occurs with a #include it may be caused
 
by a previous include file not having a <CR><LF> or
 
newline on the last line.
 
  
Illegal character in preprocessor if CPP
+
;illegal type for index expression P1
Check for strange character
+
:An array index must be a simple integral expression
  
illegal character P1
+
;illegal type for switch expression P1
A character unknown to the compiler has been encoun-
+
:The expression in a 'switch' must be integral
tered. The value given is the octal value of the char-
 
acter
 
  
illegal conversion between pointer types P1
+
;illegal use of void expression P1
The expression causes one pointer type to be converted
+
:Void expressions may not be used in any way
to another incompatible type
 
  
illegal conversion of integer to pointer P1
+
;implicit conversion of float to integer P1
An integer is used where a pointer is expected
+
:A floating point value has been converted to integer - truncation may occur
  
illegal conversion of pointer to integer P1
+
;implicit return at end of non-void function P1
A pointer is used where an integer is expected
+
:A function with a non-void type has returned without a return statement
  
illegal conversion P1
+
;implict signed to unsigned conversion P1
The type conversion here is illegal
+
:Unwanted sign extension may occur here. Add an explicit typecast to force exactly the conversion you want
  
Illegal flag LINK
+
;inappropriate break/continue P1
This option is illegal
 
  
illegal function qualifier(s) P1
+
;inappropriate 'else' P1
A function cannot have 'const' qualification
+
:An 'else' has appeared without a matching 'if'
  
illegal initialisation P1
+
;inconsistent storage class P1
The initialisation of this variable is illegal
+
:Only one storage class may be specified in a declaration
  
Illegal number CPP
+
;inconsistent type P1
Check number syntax
+
:Only one basic type may be specified in a declaration
  
illegal type for array dimension P1
+
;initialisation illegal in arg list P1
An array dimension must be an integral quantity
+
:You cannot initialise a function parameter
  
illegal type for index expression P1
+
;initialisation syntax P1
An array index must be a simple integral expression
+
:The syntax of this initialisation is illegal
  
illegal type for switch expression P1
+
;initializer in 'extern' declaration P1
The expression in a 'switch' must be integral
+
:A declaration with the 'extern' keyword has an initializer; this is not permitted as the extern declaration reserves no storage
  
illegal use of void expression P1
+
;integer constant expected P1
Void expressions may not be used in any way
+
:An integer constant was expected here
  
implicit conversion of float to integer P1
+
;integer expression required P1
A floating point value has been converted to integer -
+
:An integral expression is required here
truncation may occur
 
  
implicit return at end of non-void function P1
+
;integral type required P1
A function with a non-void type has returned without a
+
:An integral type is required here
return statement
 
  
implict signed to unsigned conversion P1
+
== L ==
Unwanted sign extension may occur here. Add an explicit
 
typecast to force exactly the conversion you want
 
  
inappropriate break/continue P1
+
;large offset CGEN
 +
:Z80 only: This identifier has a large offset from the stack frame and thus access to it is inefficient. In a function any arrays should be declared after any simple variables
  
inappropriate 'else' P1
+
;Line too long P1
An 'else' has appeared without a matching 'if'
+
:The source line is too long, or does not have a <CR><LF> or newline at the end
  
inconsistent storage class P1
+
;local psect conflicts with global psect of same name LINK
Only one storage class may be specified in a declara-
+
:A local psect cannot have the same name as a global psect
tion
 
  
inconsistent type P1
+
;logical type required P1
Only one basic type may be specified in a declaration
+
:A logical type (i.e. an integral type) is required as the subject of a conditional expression
  
initialisation illegal in arg list P1
+
;lvalue required P1
You cannot initialise a function parameter
+
:An lvalue, i.e. something which can be assigned to, is required after an '&' or on the left hand of an assignment
  
initialisation syntax P1
+
== M ==
The syntax of this initialisation is illegal
 
  
initializer in 'extern' declaration P1
+
;macro recursion CPP
A declaration with the 'extern' keyword has an initial-
+
:A preprocessor macro has attempted to expand itself. This would create infinite recursion
izer; this is not permitted as the extern declaration
 
reserves no storage
 
  
integer constant expected P1
+
;member is not a member of the struct/union P1
An integer constant was expected here
+
:This member is not in the structure or union with which it is used
  
integer expression required P1
+
;members cannot be functions P1
An integral expression is required here
+
:A member cannot be a function - it can be a pointer to function
  
integral type required P1
+
;Missing arg to -u LINK
An integral type is required here
+
:-u requires an argument
  
large offset CGEN
+
;Missing arg to -w LINK
Z80 only: This identifier has a large offset from the
+
:-w requires an argument
stack frame and thus access to it is inefficient. In a
 
function any arrays should be declared after any simple
 
variables
 
  
Line too long P1
+
;missing ) CPP
The source line is too long, or does not have a
+
:Put correct ) in expression
<CR><LF> or newline at the end
 
  
local psect conflicts with global psect of same name
+
;Missing number after % in -p option LINK
LINK
+
:After % in a -p option there must be a number
A local psect cannot have the same name as a global
 
psect
 
  
logical type required P1
+
;Missing number after pragma 'pack' P1
A logical type (i.e. an integral type) is required as
+
:The correct syntax is #pragma pack(n) where n is 1, 2 or 4.
the subject of a conditional expression
 
  
lvalue required P1
+
;module has code below file base LINK
An lvalue, i.e. something which can be assigned to, is
+
:A -C option was specified but the program has code below the address specified as the base of the binary file
required after an '&' or on the left hand of an assign-
 
ment
 
  
macro recursion CPP
+
;multiply defined symbol LINK
A preprocessor macro has attempted to expand itself.
+
:A symbol is defined more than once
This would create infinite recursion
 
  
member is not a member of the struct/union P1
+
== N ==
This member is not in the structure or union with which
 
it is used
 
  
members cannot be functions P1
+
;name is a union, struct or enum P1
A member cannot be a function - it can be a pointer to
+
:A union, struct or enum tag has been re-used in a different context
function
 
  
Missing arg to -u LINK
+
;No case labels CGEN
-u requires an argument
+
:This switch has no case labels
  
Missing arg to -w LINK
+
;no identifier in declaration P1
-w requires an argument
+
:This declaration should have an identifier in it
  
missing ) CPP
+
;No room CGEN
Put correct ) in expression
+
:The code generator has run out of dynamic memory. You will need to reduce the number of symbols and/or the complexity of expressions
  
Missing number after % in -p option LINK
+
;No source file CPP
After % in a -p option there must be a number
+
:Source file could not be found - check spelling, directory paths etc.
  
Missing number after pragma 'pack' P1
+
;no space CPP
The correct syntax is #pragma pack(n) where n is 1, 2
+
:Reduce number/size of macro definitions
or 4.
 
  
module has code below file base LINK
+
;no start record: entry point defaults to zero LINK
A -C option was specified but the program has code
+
:No start address has been specified for the program; the linker has set the start address to 0
below the address specified as the base of the binary
 
file
 
  
multiply defined symbol LINK
+
;Non-constant case label CGEN
A symbol is defined more than once
+
:This case label does not evaluate to an integral constant
  
name is a union, struct or enum P1
+
;non-void function returns no value P1
A union, struct or enum tag has been re-used in a dif-
+
:A function which should return a value has a 'return' statement with no value
ferent context
 
  
No case labels CGEN
+
;not a variable identifier P1
This switch has no case labels
+
:The identifier is not a variable - it may be e.g. a label or structure tag
  
no identifier in declaration P1
+
;not an argument P1
This declaration should have an identifier in it
+
:This identifier is not in the argument list for this function
  
No room CGEN
+
== O ==
The code generator has run out of dynamic memory. You
 
will need to reduce the number of symbols and/or the
 
complexity of expressions
 
  
No source file CPP
+
;only functions may be qualified interrupt P1
Source file could not be found - check spelling, direc-
+
:The type qualifier 'interrupt' may be applied only to functions, not variables.
tory paths etc.
 
  
no space CPP
+
;only functions may be void P1
Reduce number/size of macro definitions
+
:Only functions, not variables, may be declared void
  
no start record: entry point defaults to zero LINK
+
;only lvalues may be assigned to or modified P1
No start address has been specified for the program;
+
:You have attempted to modify an expression which does not identify a storage location
the linker has set the start address to 0
 
  
Non-constant case label CGEN
+
;only register storage class allowed P1
This case label does not evaluate to an integral con-
+
:A parameter may only be auto or register
stant
 
  
non-void function returns no value P1
+
;operands of operator not same pointer type P1
A function which should return a value has a 'return'
+
:The operands to the named operator in the expression are both pointers but are not the same pointer type
statement with no value
 
  
not a variable identifier P1
+
;operands of operator not same type P1
The identifier is not a variable - it may be e.g. a
+
:The operands to the named operator in the expression are incompatible types
label or structure tag
 
  
not an argument P1
+
== P ==
This identifier is not in the argument list for this
 
function
 
  
only functions may be qualified interrupt P1
+
;pointer required P1
The type qualifier 'interrupt' may be applied only to
+
:A pointer is required after a '*' (indirection) operator
functions, not variables.
 
  
only functions may be void P1
+
;popreg - bad reg CGEN
Only functions, not variables, may be declared void
+
:Internal error - contact HI-TECH
  
only lvalues may be assigned to or modified P1
+
;portion of expression has no effect CGEN
You have attempted to modify an expression which does
+
:A portion of this expression has no effect on its value and no side effects
not identify a storage location
 
  
only register storage class allowed P1
+
;probable missing '}' in previous block P1
A parameter may only be auto or register
+
:A declaration has been encountered where an expression was expected. The likely cause of this is that you have omitted a closing '}' in the function above this point.
  
operands of operator not same pointer type P1
+
;psect cannot be in classes a and b LINK
The operands to the named operator in the expression
+
:A psect can only be in one class
are both pointers but are not the same pointer type
 
  
operands of operator not same type P1
+
;psect exceeds max size LINK
The operands to the named operator in the expression
+
:This psect is larger than a specified maximum size
are incompatible types
 
  
pointer required P1
+
;psect is absolute LINK
A pointer is required after a '*' (indirection) opera-
+
:This psect is absolute and cannot have a link address specified in a -p option
tor
 
  
popreg - bad reg CGEN
+
;Psect not loaded on 0xhexnum boundary LINK
Internal error - contact HI-TECH
+
:This psect must be loaded on a specific boundary
  
portion of expression has no effect CGEN
+
;Psect not relocated on 0xhexnum boundary LINK
A portion of this expression has no effect on its value
+
:This psect must be linked on a specific boundary
and no side effects
 
  
probable missing '}' in previous block P1
+
;psect origin multiply defined LINK
A declaration has been encountered where an expression
+
:This psect has its link address defined more than once
was expected. The likely cause of this is that you have
 
omitted a closing '}' in the function above this point.
 
  
psect cannot be in classes a and b LINK
+
;pushreg - bad reg CGEN
A psect can only be in one class
+
:Internal error - contact HI-TECH
  
psect exceeds max size LINK
+
== R ==
This psect is larger than a specified maximum size
 
  
psect is absolute LINK
+
;redundant & applied to array P1
This psect is absolute and cannot have a link address
+
:An array type has an '&' operator applied to it. It has been ignored since use of an array implicitly gives its address
specified in a -p option
 
  
Psect not loaded on 0xhexnum boundary LINK
+
;regused - bad arg to G CGEN
This psect must be loaded on a specific boundary
+
:Internal error - contact HI-TECH
  
Psect not relocated on 0xhexnum boundary LINK
+
== S ==
This psect must be linked on a specific boundary
 
  
psect origin multiply defined LINK
+
;signatures do not matchLINK
This psect has its link address defined more than once
+
:An extern function has been declared with an incorrect prototype. For example if an argument is declared as a long in an extern declaration, but is really an int, a signature mismatch will occur.
  
pushreg - bad reg CGEN
+
;signed bitfields not supported P1
Internal error - contact HI-TECH
+
:Only unsigned bitfields are supported
  
redundant & applied to array P1
+
;simple type required P1
An array type has an '&' operator applied to it. It has
+
:An array or structure type cannot be used here
been ignored since use of an array implicitly gives its
 
address
 
  
regused - bad arg to G CGEN
+
;Sizeof yields 0 CGEN
Internal error - contact HI-TECH
+
:The size of an object has evaluated to zero in a context where this is illegal, e.g. incrementing a pointer to a zero length object.
  
signatures do not matchLINK
+
;storage class illegal P1
An extern function has been declared with an incorrect
+
:A storage class may not be specified here
prototype. For example if an argument is declared as a
 
long in an extern declaration, but is really an int, a
 
signature mismatch will occur.
 
  
signed bitfields not supported P1
+
;struct/union member expected P1
Only unsigned bitfields are supported
+
:A structure or union member is required after a '. or '->'
  
simple type required P1
+
;struct/union redefined P1
An array or structure type cannot be used here
+
:This structure or union has been defined twice
  
Sizeof yields 0 CGEN
+
;struct/union required P1
The size of an object has evaluated to zero in a con-
+
:A structure or union identifier is required before a '.'
text where this is illegal, e.g. incrementing a pointer
 
to a zero length object.
 
  
storage class illegal P1
+
;Switch on long! CGEN
A storage class may not be specified here
+
:Switching on a long expression is not supported
  
struct/union member expected P1
+
;symbol cannot be global LINK
A structure or union member is required after a '. or
+
:Stack, filename or line number symbols cannot be global
'->'
 
  
struct/union redefined P1
+
;Syntax error in checksum list LINK
This structure or union has been defined twice
+
:The checksum list provided is invalid
  
struct/union required P1
+
== T ==
A structure or union identifier is required before a
 
'.'
 
  
Switch on long! CGEN
+
;token too long CPP
Switching on a long expression is not supported
+
:Shorten token (e.g. identifier)
  
symbol cannot be global LINK
+
;too few arguments P1
Stack, filename or line number symbols cannot be global
+
:The protype for this function lists more arguments than have been supplied
  
Syntax error in checksum list LINK
+
;too many arguments P1
The checksum list provided is invalid
+
:More arguments have been supplied than listed in the prototype for this function
  
token too long CPP
+
;Too many cases in switch CGEN,P1
Shorten token (e.g. identifier)
+
:There are too many cases in this switch
  
too few arguments P1
+
;too many -D options CPP
The protype for this function lists more arguments than
+
:Use fewer -D options
have been supplied
 
  
too many arguments P1
+
;too many defines CPP
More arguments have been supplied than listed in the
+
:Reduce number of macro definitions
prototype for this function
 
  
Too many cases in switch CGEN,P1
+
;Too many errors CGEN
There are too many cases in this switch
+
:CGEN has given up because there were too many errors.
  
too many -D options CPP
+
;too many formals CPP
Use fewer -D options
+
:Reduce number of parameters to this macro definition
  
too many defines CPP
+
;Too many initializers CGEN
Reduce number of macro definitions
+
:There are too many initializers for this object
  
Too many errors CGEN
+
;Too many psects LINK
CGEN has given up because there were too many errors.
+
:There are too many psects for the symbol table
  
too many formals CPP
+
;Too many symbols LINK
Reduce number of parameters to this macro definition
+
:There are too many symbols for the linker symbol table
  
Too many initializers CGEN
+
;too many -U options CPP
There are too many initializers for this object
+
:Use fewer -U options
  
Too many psects LINK
+
;too much defining CPP
There are too many psects for the symbol table
+
:Reduce number/size of macros
  
Too many symbols LINK
+
;too much indirection P1
There are too many symbols for the linker symbol table
+
:Too many '*'s in this declaration
  
too many -U options CPP
+
;too much pushback CPP
Use fewer -U options
+
:Simplify macro usage
  
too much defining CPP
+
;type conflict P1
Reduce number/size of macros
+
:There is a conflict of types in this expression, e.g. attempting to assign a structure to a simple type
  
too much indirection P1
+
;type specifier reqd. for proto arg P1
Too many '*'s in this declaration
+
:A prototype argument must have a basic type
  
too much pushback CPP
+
== U ==
Simplify macro usage
 
  
type conflict P1
+
;undefined control CPP
There is a conflict of types in this expression, e.g.
+
:Check use of #
attempting to assign a structure to a simple type
 
  
type specifier reqd. for proto arg P1
+
;undefined enum tag P1
A prototype argument must have a basic type
+
:This enumerated type tag has not been defined
  
undefined control CPP
+
;undefined identifier P1
Check use of #
+
:This identifier has not been defined before use
  
undefined enum tag P1
+
;undefined struct/union P1
This enumerated type tag has not been defined
+
:The structure or union used has not been defined
  
undefined identifier P1
+
;undefined symbol LINK
This identifier has not been defined before use
+
:A list of undefined symbols follows. If some of the symbols should be in a library which was linked, it may be caused by a library ordering problem. In this case rebuild the library with the correct ordering or specify the library more than once in the link command
  
undefined struct/union P1
+
;unexpected EOF P1
The structure or union used has not been defined
+
:End of file was encountered in the middle of a C construct. This is commonly caused by omission of a closing '}' earlier in the program.
  
undefined symbol LINK
+
;Unknown predicate CGEN
A list of undefined symbols follows. If some of the
+
:Internal error - contact HI-TECH
symbols should be in a library which was linked, it may
 
be caused by a library ordering problem. In this case
 
rebuild the library with the correct ordering or
 
specify the library more than once in the link command
 
  
unexpected EOF P1
+
;unknown psect LINK
End of file was encountered in the middle of a C con-
+
:The psect specifed in a -p option is not present in the program. Check the spelling and check the case - upper case does not match lower case
struct. This is commonly caused by omission of a clos-
 
ing '}' earlier in the program.
 
  
Unknown predicate CGEN
+
;unreachable code P1
Internal error - contact HI-TECH
+
:This section of code can never be executed as there is no possible path to reach it
  
unknown psect LINK
+
;Unreasonable include nesting CPP
The psect specifed in a -p option is not present in the
+
:Reduce number of include files
program. Check the spelling and check the case - upper
 
case does not match lower case
 
  
unreachable code P1
+
;Unreasonable matching depth CGEN
This section of code can never be executed as there is
+
:Internal error - contact HI-TECH
no possible path to reach it
 
  
Unreasonable include nesting CPP
+
;unterminated macro call CPP
Reduce number of include files
+
:Probably missing )
  
Unreasonable matching depth CGEN
+
== V ==
Internal error - contact HI-TECH
 
  
unterminated macro call CPP
+
;void function cannot return value P1
Probably missing )
+
:A function declared void cannot return a value
  
void function cannot return value P1
+
== W ==
A function declared void cannot return a value
 
  
Write error (out of disk space?) LINK
+
;Write error (out of disk space?) LINK
Probably means the disk is full
+
:Probably means the disk is full

Latest revision as of 04:03, 29 November 2017

Error Messages produced by the compiler are listed below. Each message is followed by the name of the program which produces it, and some further description of what causes the message or what to do about it.

.

'.' expected after '..' P1
The ellipsis symbol must have three dots

A

actuals too long CPP
Reduce length of macro arguments
argument list conflicts with prototype P1
The argument list in a function definition must agree with a prototype if one exists
argument redeclared P1
This argument has been declared twice
arithmetic overflow in constant expression CGEN
Evaluation of this constant expression produced an arithmetic overflow. This may or may not represent a true error.
array index out of bounds P1
An array index expression evaluates to a constant which is less than zero or greater than or equal to the dimension of the array
Assertion CGEN
Internal error - contact HI-TECH
attempt to modify const object P1
An attempt has been made to assign to or otherwise modify an object designated as 'const'

B

bad bitfield type P1
Bitfields must be of type 'int'
Bad conval CGEN
Internal error - contact HI-TECH
Bad dimensions CGEN
An array has bad dimensions - probably zero
Bad element count expr CGEN
Internal error - contact HI-TECH
bad formal CPP
Check macro defintion syntax
bad include syntax CPP
Use only "" and <> for include files
Bad int. code CGEN
The intermediate code file has been corrupted - can be caused by running out of disk space
Bad -M option CGEN
A -M option passed to the code generator is unknown
Bad mod '+' for how = c CGEN
Internal error - contact HI-TECH
bad object code format LINK
This file is either corrupted or not a valid object file
Bad op d to swaplog CGEN
Internal error - contact HI-TECH
Bad op n to revlog CGEN
Internal error - contact HI-TECH
bad origin format in spec LINK
An address in a -p option is invalid
bad '-p' format LINK
The -p option provided is invalid
Bad pragma c CGEN
The code generator has been passed a pragma it does not know about
Bad putwsize CGEN
Internal error - contact HI-TECH
bad storage class P1, CGEN
The speficied storage class is illegal
Bad U usage CGEN
Internal error - contact HI-TECH
Bit field too large (n bits) CGEN
A bit field may not be larger than an int

C

Cannot get memory LINK
The linker has run out of dynamic memory
Can't be both far and near P1
The 'far' and 'near' keywords cannot appear in the same type specifier
can't be long P1
Chars and shorts cannot be long
can't be register P1
An extern or static variable may not be register
can't be short P1
Float and char cannot be short
can't be unsigned P1
Float cannot be unsigned
can't call an interrupt function P1
A function qualified 'interrupt' can only be called by hardware, not by an ordinary function call
Can't create filename CGEN
The file specified could not be created
Can't create xref file P1
The cross reference file specified could not be created
Can't create CPP
Output file could not be created
Can't create LINK
The linker cannot create a file
Can't find include file CPP
Check and correct the include file name - spaces are not allowed in file names
Can't find register for bits CGEN
Internal error - contact HI-TECH
Can't generate code for this expression CGEN
The code generator is unable to generate code for this expression - simplifying the expression (e.g. computing values into temporary variables) will usually correct

it, otherwise contact HI-TECH

can't have array of functions P1
You cannot have an array of functions - you can have an array of pointers to functions
Can't have 'port' variable CGEN
You cannot declare a variable to be qualified 'port' - you can only use port to qualify pointers or typecast constant values
can't have storage class P1
A storage class may not appear in a prototype argument
can't initialise auto aggregates P1
You cannot initialise a structure or array inside a function unless it is static
can't initialize arg P1
An argument cannot have an initializer
can't mix proto and non-proto args P1
You cannot mix prototype and non-prototype arguments even in a function definitional
Can't open filename CGEN
The file specified could not be opened for reading
Can't open LINK
The linker cannot open a file
Can't seek LINK
The linker could not seek in file
can't take address of register variable P1
You can't take the address of a variable in a register
can't take sizeof func CGEN
You can't take the size of a function. You can take the size of a function call
can't take this address P1
The expression does not have an address
'case' not in switch P1
A 'case' label is permitted only inside a switch
char const too long P1
A character constant may have only one character in it
close error (disk space?) P1
Probably out of disk space
common symbol psect conflict LINK
A common symbol is defined to be in more than one psect
constant conditional branch CGEN
You have a program structure testing a constant expression, e.g. while(1). You should substitute for this the more efficient for(;;)
constant expression required P1
A constant expression is required in e.g. an array dimension
constant operand to || or && CGEN
A logical operator has a constant operand which has been optimized out

D

declarator too complex P1
This declaration is too complex for the compiler to handle
default case redefined P1
Only one default case is permitted in a switch
'default' not in switch P1
A 'default' label is permitted only inside a switch
digit out of range P1
An octal constant may not contain 7 or 8, and a decimal constant may not contain A-F
dimension required P1
A dimension is required for all except the most significant in an array declaration
Division by zero CGEN
Attempt to divide by zero in this expression
Duplicate case label n CGEN
There are two case labels in this switch that have the same value
Duplicate -d flag LINK
Only one -d flag is allowed to the linker
duplicate label P1
This label is defined twice
Duplicate -m flag LINK
Only one -m flag is allowed to the linker
duplicate qualifier P1
The same qualifier appears more than once in this type specifier

E

entry point multiply defined LINK
A program can only have one entry point (start address)
EOF in #asm P1
End of file was encounterd after #asm and before a #endasm was seen
Error closing output file CGEN,CPP
Probably means you have run out of disk space
excessive -I file ignored CPP
Use fewer -I options
expand - bad how CGEN
Internal error - contact HI-TECH
expand - bad which CGEN
Internal error - contact HI-TECH
exponent expected P1
An exponent is expected after the 'e' or 'E' in a floating point constant. The exponent must contain only +, - and digits 0-9
Expression error CGEN
Internal error - contact HI-TECH
expression generates no code CGEN
This expression has no side effects and thus generates no code. It has been optimized out
expression syntax P1
The expression is badly formed
expression too complex P1
The expression has too many nested parantheses or other nested constructs

F

Fixup overflow referencing LINK
The linker has relocated a reference to a psect or symbol and the relocated address is too big to fit into the space, e.g. a relocated one byte address exceeds 256 or a relocated 16 bit address exceeds 65536
float param coerced to double P1
This float parameter has been converted to double - a prototype will override this coercion
function() declared implicit int P1
This function has been called without an explicit declaration. It is wise to explicitly declare all functions, preferably with a prototype. This will avoid many potential errors where your program comprises more than one source file
function does not take arguments P1
The prototype for this function indicates it takes no arguments
function or function pointer required P1
A function identifier or pointer to function is required for a function call.
functions can't return arrays P1
A function cannot return an array - it can return a pointer
functions can't return functions P1
A function cannot return a function - it can return a pointer to function

H

hex digit expected P1
A hex digit is expected after '0x'

I

identifier is a structure tag P1
A structure tag has been used in a context where another kind of tag is expected, e.g. saying struct fred where fred has previously been declared as union fred.
identifier is a union tag P1
Similar to the above error
identifier is an enum tag P1
Similar to the above error
identifier: large offset CGEN
Z80 only: This identifier has a large offset from the stack frame and thus access to it is inefficient. In a function any arrays should be declared after any simple variables
identifier redeclared P1
The identifier has been redeclared with different attributes
identifier redefined P1
An identifier has been defined twice
If-less else CPP
Check #if usage
If-less endif CPP
Check #if usage
illegal '#' directive P1
A # directive passed through to the first pass is unknown. If this occurs with a #include it may be caused by a previous include file not having a <CR><LF> or newline on the last line.
Illegal character in preprocessor if CPP
Check for strange character
illegal character P1
A character unknown to the compiler has been encountered. The value given is the octal value of the character
illegal conversion between pointer types P1
The expression causes one pointer type to be converted to another incompatible type
illegal conversion of integer to pointer P1
An integer is used where a pointer is expected
illegal conversion of pointer to integer P1
A pointer is used where an integer is expected
illegal conversion P1
The type conversion here is illegal
Illegal flag LINK
This option is illegal
illegal function qualifier(s) P1
A function cannot have 'const' qualification
illegal initialisation P1
The initialisation of this variable is illegal
Illegal number CPP
Check number syntax
illegal type for array dimension P1
An array dimension must be an integral quantity
illegal type for index expression P1
An array index must be a simple integral expression
illegal type for switch expression P1
The expression in a 'switch' must be integral
illegal use of void expression P1
Void expressions may not be used in any way
implicit conversion of float to integer P1
A floating point value has been converted to integer - truncation may occur
implicit return at end of non-void function P1
A function with a non-void type has returned without a return statement
implict signed to unsigned conversion P1
Unwanted sign extension may occur here. Add an explicit typecast to force exactly the conversion you want
inappropriate break/continue P1
inappropriate 'else' P1
An 'else' has appeared without a matching 'if'
inconsistent storage class P1
Only one storage class may be specified in a declaration
inconsistent type P1
Only one basic type may be specified in a declaration
initialisation illegal in arg list P1
You cannot initialise a function parameter
initialisation syntax P1
The syntax of this initialisation is illegal
initializer in 'extern' declaration P1
A declaration with the 'extern' keyword has an initializer; this is not permitted as the extern declaration reserves no storage
integer constant expected P1
An integer constant was expected here
integer expression required P1
An integral expression is required here
integral type required P1
An integral type is required here

L

large offset CGEN
Z80 only: This identifier has a large offset from the stack frame and thus access to it is inefficient. In a function any arrays should be declared after any simple variables
Line too long P1
The source line is too long, or does not have a <CR><LF> or newline at the end
local psect conflicts with global psect of same name LINK
A local psect cannot have the same name as a global psect
logical type required P1
A logical type (i.e. an integral type) is required as the subject of a conditional expression
lvalue required P1
An lvalue, i.e. something which can be assigned to, is required after an '&' or on the left hand of an assignment

M

macro recursion CPP
A preprocessor macro has attempted to expand itself. This would create infinite recursion
member is not a member of the struct/union P1
This member is not in the structure or union with which it is used
members cannot be functions P1
A member cannot be a function - it can be a pointer to function
Missing arg to -u LINK
-u requires an argument
Missing arg to -w LINK
-w requires an argument
missing ) CPP
Put correct ) in expression
Missing number after % in -p option LINK
After % in a -p option there must be a number
Missing number after pragma 'pack' P1
The correct syntax is #pragma pack(n) where n is 1, 2 or 4.
module has code below file base LINK
A -C option was specified but the program has code below the address specified as the base of the binary file
multiply defined symbol LINK
A symbol is defined more than once

N

name is a union, struct or enum P1
A union, struct or enum tag has been re-used in a different context
No case labels CGEN
This switch has no case labels
no identifier in declaration P1
This declaration should have an identifier in it
No room CGEN
The code generator has run out of dynamic memory. You will need to reduce the number of symbols and/or the complexity of expressions
No source file CPP
Source file could not be found - check spelling, directory paths etc.
no space CPP
Reduce number/size of macro definitions
no start record
entry point defaults to zero LINK
No start address has been specified for the program; the linker has set the start address to 0
Non-constant case label CGEN
This case label does not evaluate to an integral constant
non-void function returns no value P1
A function which should return a value has a 'return' statement with no value
not a variable identifier P1
The identifier is not a variable - it may be e.g. a label or structure tag
not an argument P1
This identifier is not in the argument list for this function

O

only functions may be qualified interrupt P1
The type qualifier 'interrupt' may be applied only to functions, not variables.
only functions may be void P1
Only functions, not variables, may be declared void
only lvalues may be assigned to or modified P1
You have attempted to modify an expression which does not identify a storage location
only register storage class allowed P1
A parameter may only be auto or register
operands of operator not same pointer type P1
The operands to the named operator in the expression are both pointers but are not the same pointer type
operands of operator not same type P1
The operands to the named operator in the expression are incompatible types

P

pointer required P1
A pointer is required after a '*' (indirection) operator
popreg - bad reg CGEN
Internal error - contact HI-TECH
portion of expression has no effect CGEN
A portion of this expression has no effect on its value and no side effects
probable missing '}' in previous block P1
A declaration has been encountered where an expression was expected. The likely cause of this is that you have omitted a closing '}' in the function above this point.
psect cannot be in classes a and b LINK
A psect can only be in one class
psect exceeds max size LINK
This psect is larger than a specified maximum size
psect is absolute LINK
This psect is absolute and cannot have a link address specified in a -p option
Psect not loaded on 0xhexnum boundary LINK
This psect must be loaded on a specific boundary
Psect not relocated on 0xhexnum boundary LINK
This psect must be linked on a specific boundary
psect origin multiply defined LINK
This psect has its link address defined more than once
pushreg - bad reg CGEN
Internal error - contact HI-TECH

R

redundant & applied to array P1
An array type has an '&' operator applied to it. It has been ignored since use of an array implicitly gives its address
regused - bad arg to G CGEN
Internal error - contact HI-TECH

S

signatures do not matchLINK
An extern function has been declared with an incorrect prototype. For example if an argument is declared as a long in an extern declaration, but is really an int, a signature mismatch will occur.
signed bitfields not supported P1
Only unsigned bitfields are supported
simple type required P1
An array or structure type cannot be used here
Sizeof yields 0 CGEN
The size of an object has evaluated to zero in a context where this is illegal, e.g. incrementing a pointer to a zero length object.
storage class illegal P1
A storage class may not be specified here
struct/union member expected P1
A structure or union member is required after a '. or '->'
struct/union redefined P1
This structure or union has been defined twice
struct/union required P1
A structure or union identifier is required before a '.'
Switch on long! CGEN
Switching on a long expression is not supported
symbol cannot be global LINK
Stack, filename or line number symbols cannot be global
Syntax error in checksum list LINK
The checksum list provided is invalid

T

token too long CPP
Shorten token (e.g. identifier)
too few arguments P1
The protype for this function lists more arguments than have been supplied
too many arguments P1
More arguments have been supplied than listed in the prototype for this function
Too many cases in switch CGEN,P1
There are too many cases in this switch
too many -D options CPP
Use fewer -D options
too many defines CPP
Reduce number of macro definitions
Too many errors CGEN
CGEN has given up because there were too many errors.
too many formals CPP
Reduce number of parameters to this macro definition
Too many initializers CGEN
There are too many initializers for this object
Too many psects LINK
There are too many psects for the symbol table
Too many symbols LINK
There are too many symbols for the linker symbol table
too many -U options CPP
Use fewer -U options
too much defining CPP
Reduce number/size of macros
too much indirection P1
Too many '*'s in this declaration
too much pushback CPP
Simplify macro usage
type conflict P1
There is a conflict of types in this expression, e.g. attempting to assign a structure to a simple type
type specifier reqd. for proto arg P1
A prototype argument must have a basic type

U

undefined control CPP
Check use of #
undefined enum tag P1
This enumerated type tag has not been defined
undefined identifier P1
This identifier has not been defined before use
undefined struct/union P1
The structure or union used has not been defined
undefined symbol LINK
A list of undefined symbols follows. If some of the symbols should be in a library which was linked, it may be caused by a library ordering problem. In this case rebuild the library with the correct ordering or specify the library more than once in the link command
unexpected EOF P1
End of file was encountered in the middle of a C construct. This is commonly caused by omission of a closing '}' earlier in the program.
Unknown predicate CGEN
Internal error - contact HI-TECH
unknown psect LINK
The psect specifed in a -p option is not present in the program. Check the spelling and check the case - upper case does not match lower case
unreachable code P1
This section of code can never be executed as there is no possible path to reach it
Unreasonable include nesting CPP
Reduce number of include files
Unreasonable matching depth CGEN
Internal error - contact HI-TECH
unterminated macro call CPP
Probably missing )

V

void function cannot return value P1
A function declared void cannot return a value

W

Write error (out of disk space?) LINK
Probably means the disk is full