-

Difference between revisions of "Error Messages"

From HI-TECH C for CP/M Fan WIKI(EN)
Jump to: navigation, search
m
Line 181: Line 181:
  
 
constant conditional branch CGEN
 
constant conditional branch CGEN
:You have a program structure testing a constant expression, e.g. while(1). You should substitute for this the
+
:You have a program structure testing a constant expression, e.g. while(1). You should substitute for this the more efficient for(;;)
more efficient for(;;)
 
  
 
constant expression required P1
 
constant expression required P1
Line 242: Line 241:
  
 
exponent expected P1
 
exponent expected P1
:An exponent is expected after the 'e' or 'E' in a floating point constant. The exponent must contain only
+
:An exponent is expected after the 'e' or 'E' in a floating point constant. The exponent must contain only +, - and digits 0-9
+, - and digits 0-9
 
  
 
Expression error CGEN
 
Expression error CGEN
Line 259: Line 257:
  
 
Fixup overflow referencing LINK
 
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 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
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
 
float param coerced to double P1

Revision as of 11:07, 28 July 2017

App1

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

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

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

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

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

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

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

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) 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

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

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 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 )

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