-

Error Messages

From HI-TECH C for CP/M Fan WIKI(EN)
Revision as of 17:04, 26 July 2017 by Kumokosi (talk | contribs) (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...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

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'

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

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 expres- sion, 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

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 signi- ficant 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

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

  1. 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

Fixup overflow referencing LINK The linker has relocated a reference to a psect or sym- 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 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 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 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

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

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 unk- 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 Check for strange character

illegal character P1 A character unknown to the compiler has been encoun- tered. The value given is the octal value of the char- acter

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 declara- tion

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 initial- izer; 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

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 assign- ment

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

name is a union, struct or enum P1 A union, struct or enum tag has been re-used in a dif- ferent 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, direc- tory 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 con- stant

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

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

pointer required P1 A pointer is required after a '*' (indirection) opera- tor

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

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

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 con- text 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

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

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 con- struct. This is commonly caused by omission of a clos- ing '}' 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 )

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

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