home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-04-21 | 101.0 KB | 2,436 lines |
- INDEX 546 13 C Compiler Error Reference
- 22 3 #define syntax error
- 217 2 #elif may not follow #else
- 337 3 #elif must be in an #if
- 535 1 #else may not follow #else
- 615 1 #else must be in an #if
- 671 3 #error: *
- 846 3 #if ... sizeof() syntax error
- 1038 2 #if ... sizeof: bug, unknown type code *
- 1199 3 #if ... sizeof: illegal type combination
- 1383 2 #if bug, operand = *
- 1543 3 #if sizeof() error, no type specified
- 1762 3 #if sizeof, unknown type *
- 1931 3 #if value stack overflow
- 2142 3 #if, #ifdef, or #ifndef without an argument
- 2350 7 #include syntax error
- 2727 2 '.' expected after '..'
- 2875 2 '.' not followed by 'w' or 'b'
- 3030 4 '=' expected after lle
- 3166 4 '=' expected after p
- 3291 3 'case' not in switch
- 3470 4 'default' not in switch
- 3649 2 ( expected
- 3775 3 ) expected
- 3933 4 , expected
- 4211 3 -s, too few values specified in *
- 4397 1 -s, too many values, * unused
- 4501 3 ... illegal in non-prototype arg list
- 4705 3 32 bit addressing illegal
- 4907 4 6301 instruction illegal
- 5034 4 6801 instruction illegal
- 5193 4 68hc11 instruction illegal
- 5306 4 68hc11/6301 instruction illegal
- 5456 2 80186 instruction/addressing mode
- 5614 2 80286 instruction
- 5750 2 80386 instruction/addressing mode
- 5899 2 80486 instruction/addressing mode
- 6017 3 : expected
- 6174 2 ; expected
- 6312 1 = expected
- 6357 2 ] expected
- 6493 2 a parameter may not be a function
- 6658 1 absolute expression required
- 6732 3 add_reloc - bad size
- 6918 3 argument * conflicts with prototype
- 7109 3 argument list conflicts with prototype
- 7302 1 argument redeclared: *
- 7401 1 arguments redeclared
- 7529 3 arithmetic overflow in constant expression
- 7749 3 array dimension on *[] ignored
- 7939 2 array index out of bounds
- 8087 1 assertion
- 8201 2 attempt to modify const object
- 8321 2 auto variable * should not be qualified
- 8506 3 bad #if ... defined() syntax
- 8698 1 bad '-p' format
- 8764 7 bad -a spec: *
- 8985 3 bad -m option: -m*
- 9155 2 bad -q option *
- 9300 3 bad arg (*) to tysize
- 9494 2 bad arg to *l
- 9609 1 bad arg to -b
- 9668 2 bad arg to e: *
- 9823 2 bad arg to extraspecial
- 9968 1 bad arg to im
- 10054 2 bad bconfloat - *
- 10201 2 bad bit address
- 10298 2 bad bit number
- 10379 1 bad bitfield type
- 10440 1 bad character const
- 10522 1 bad character in extended tekhex line *
- 10612 1 bad checksum specification
- 10704 1 bad combination of flags
- 10788 3 bad complex relocation
- 10937 2 bad confloat - *
- 11083 2 bad conval - *
- 11229 2 bad dimensions
- 11361 2 bad dp/nargs in openpar: dp = *
- 11454 3 bad element count expr
- 11627 3 bad float operand size
- 11764 2 bad gn
- 11923 4 bad high address in -a spec
- 12149 2 bad int. code
- 12253 4 bad load address in -a spec
- 12492 4 bad low address in -a spec
- 12727 2 bad mod '+' for how = *
- 12890 4 bad non-zero node in call graph
- 13136 3 bad object code format
- 13296 2 bad op * to revlog
- 13447 2 bad op * to swaplog
- 13588 2 bad op: *
- 13733 2 bad operand size
- 13838 3 bad origin format in spec
- 13974 2 bad popreg
- 14118 2 bad pragma *
- 14220 2 bad psnext list
- 14361 2 bad pushreg
- 14505 2 bad putwsize
- 14654 2 bad record type *
- 14747 2 bad relocation type
- 14888 2 bad ret_mask
- 15038 2 bad segment fixups
- 15135 13 bad segspec *
- 15564 5 bad size in -s option
- 15796 2 bad size list
- 15930 6 bad storage class
- 16277 3 bad string '*' in psect pragma
- 16457 2 bad sx
- 16600 2 bad u usage
- 16751 2 bad variable syntax
- 16914 2 bit field too large (* bits)
- 17028 2 bug: illegal __ macro *
- 17142 4 can't allocate space for port variables: *
- 17386 1 can't be both far and near
- 17455 2 can't be long
- 17575 2 can't be register
- 17670 1 can't be short
- 17778 1 can't be unsigned
- 17873 5 can't call an interrupt function
- 18220 2 can't create *
- 18346 3 can't create cross reference file *
- 18523 2 can't create temp file *
- 18660 1 can't create xref file *
- 18744 2 can't enter abs psect
- 18912 3 can't find space for psect * in segment *
- 19106 3 can't generate code for this expression
- 19300 3 can't have 'port' variable: *
- 19543 5 can't have array of functions
- 19878 2 can't initialise auto aggregates
- 20013 2 can't initialize a basepage variable
- 20141 3 can't initialize arg
- 20361 4 can't mix proto and non-proto args
- 20623 1 can't open
- 20678 2 can't open *
- 20834 2 can't open command file *
- 20929 2 can't open file *
- 21058 3 can't open include file *
- 21216 1 can't reopen *
- 21325 3 can't take address of register variable
- 21519 2 can't take sizeof func
- 21631 3 can't take this address
- 21816 2 can't use a string in an #if
- 21906 2 cannot get memory
- 22012 1 cannot open
- 22069 1 cannot open *
- 22150 5 cannot open include file *
- 22427 3 cast type must be scalar or void
- 22610 2 char const too long
- 22725 5 close error (disk space?)
- 23042 4 closing quote expected
- 23327 2 common symbol psect conflict: *
- 23449 2 complex relocation not supported for -r or -l options yet
- 23585 2 conflicting operand sizes
- 23696 6 constant conditional branch
- 24103 3 constant conditional branch: possible use of = instead of ==
- 24339 2 constant expression required
- 24462 2 constant left operand to ?
- 24621 2 constant operand to || or &&
- 24776 4 constant relational expression
- 25055 2 control line * within macro expansion
- 25219 4 declaration of * hides outer declaration
- 25477 3 declarator too complex
- 25691 2 default case redefined
- 25822 1 deff not supported in cp/m version
- 25911 9 degenerate signed comparison
- 26211 9 degenerate unsigned comparison
- 26438 4 digit out of range
- 26724 3 dimension required
- 26904 2 direct addressing required
- 27027 1 directive not recognized
- 27127 2 divide by zero in #if, zero result assumed
- 27239 1 division by zero
- 27347 3 double float argument required
- 27554 1 duplicate -d flag
- 27618 3 duplicate -m flag
- 27782 2 duplicate base register
- 27904 1 duplicate case label
- 28000 1 duplicate case label *
- 28108 2 duplicate displacement in operand
- 28208 2 duplicate fnconf directive
- 28364 2 duplicate index register
- 28456 3 duplicate label *
- 28640 3 duplicate qualifier
- 28842 2 duplicate qualifier key * (*)
- 28997 2 duplicate qualifier name *
- 29153 1 duplicate qualifier*
- 29247 2 end of file within macro argument
- 29419 3 end statement inside include file or macro
- 29596 2 entry point multiply defined
- 29701 2 enum tag or { expected
- 29834 2 eof in #asm
- 29971 2 eof inside conditional
- 30079 2 eof inside macro def'n
- 30212 5 eof on string file
- 30532 6 error closing output file
- 30902 4 error in format string
- 31156 1 esp not permitted as index register
- 31217 2 expand - bad how
- 31367 2 expand - bad which
- 31522 4 expected '-' in -a spec
- 31647 2 exponent expected
- 31742 3 expression error
- 31928 2 expression generates no code
- 32068 3 expression stack overflow at op *
- 32247 2 expression syntax
- 32341 2 expression too complex
- 32505 11 external declaration inside function
- 33225 2 fail directive: *
- 33366 3 filename work buffer overflow
- 33566 4 fixup overflow referencing *
- 33794 1 flag * unknown
- 33894 6 float param coerced to double
- 34295 2 floating exponent too large
- 34440 2 floating number expected
- 34543 2 form length must be >= 15
- 34678 9 formal parameter expected after #
- 35046 3 function body expected
- 35244 11 function declared implicit int
- 35945 2 function does not take arguments
- 36077 7 function is already 'extern'; can't be 'static'
- 36466 4 function or function pointer required
- 36755 3 function's local data too large
- 36929 2 functions can't return arrays
- 37056 5 functions can't return functions
- 37346 2 functions nested too deep
- 37454 2 garbage after operands
- 37589 2 garbage on end of line
- 37775 2 hc11 and h301 are incompatible
- 37909 2 hex digit expected
- 38013 2 ident records do not match
- 38159 2 identifier expected
- 38276 2 identifier redefined: *
- 38367 7 illegal # command *
- 38698 2 illegal #if line
- 38839 2 illegal #undef argument
- 38936 2 illegal '#' directive
- 39068 5 illegal -o flag
- 39232 2 illegal -p flag
- 39346 1 illegal addressing mode
- 39408 3 illegal character (*)
- 39592 2 illegal character (0*)
- 39706 3 illegal character * in #if
- 39889 2 illegal conversion
- 40051 5 illegal conversion between pointer types
- 40423 5 illegal conversion of integer to pointer
- 40745 5 illegal conversion of pointer to integer
- 41041 1 illegal flag *
- 41099 5 illegal function qualifier(s)
- 41411 2 illegal initialisation
- 41554 2 illegal or too many -p flags
- 41642 2 illegal record type
- 41820 2 illegal register for indirection
- 41939 3 illegal relocation size: *
- 42157 2 illegal relocation type: *
- 42321 2 illegal stack index
- 42416 1 illegal switch *
- 42495 2 illegal type for array dimension
- 42605 1 illegal type for index expression
- 42709 2 illegal type for switch expression
- 42842 3 illegal use of void expression
- 43014 2 image too big
- 43145 3 implicit conversion of float to integer
- 43379 5 implicit return at end of non-void function
- 43694 9 implict signed to unsigned conversion
- 44268 3 inappropriate 'else'
- 44452 4 inappropriate break/continue
- 44737 2 include files nested too deep
- 44942 4 incompatible intermediate code version; should be *.*
- 45228 2 incomplete * record body: length = *
- 45368 1 incomplete record
- 45457 4 incomplete record: type = * length = *
- 45643 2 inconsistent storage class
- 45764 2 inconsistent type
- 45885 1 index offset too large
- 45996 1 indirection on illegal register
- 46065 2 initialisation syntax
- 46229 3 initializer in 'extern' declaration
- 46464 1 insufficient memory for macro def'n
- 46551 4 integer constant expected
- 46781 2 integer expression required
- 46936 2 integral argument required
- 47097 1 integral type required
- 47181 2 invalid disable: *
- 47267 2 invalid number syntax
- 47404 2 invalid operand size
- 47544 2 invalid short addressing
- 47663 2 invalid short addressing override
- 47788 2 jump out of range
- 47961 3 jump target out of range
- 48133 1 label identifier expected
- 48216 5 large stack offset for *
- 48543 1 lexical error
- 48647 4 line does not have a newline on the end
- 48906 4 line too long
- 49139 2 local illegal outside macros
- 49326 1 local psect '*' conflicts with global psect of same name
- 49409 2 logical type required
- 49565 2 long argument required
- 49721 2 macro * wasn't defined
- 49877 2 macro argument after % must be absolute
- 50064 2 macro argument may not appear after local
- 50204 2 macro expansions nested too deep
- 50347 2 macro name used as symbol
- 50483 3 macro work area overflow
- 50702 2 member * redefined
- 50826 4 members cannot be functions
- 51084 5 mismatched comparision
- 51486 3 misplaced '?' or ':', previous operator is *
- 51650 3 misplaced constant in #if
- 51808 1 missing ')'
- 51891 3 missing '=' in class spec
- 51951 1 missing ']'
- 52029 3 missing arg to -u
- 52109 2 missing arg to -w
- 52201 5 missing argument to 'pragma psect'
- 52438 4 missing basic type: int assumed
- 52666 4 missing name after pragma 'printf_check'
- 52856 2 missing number after % in -p option
- 52977 8 missing number after pragma 'pack'
- 53338 2 missing operand size
- 53433 2 missing size for align
- 53541 1 missing size for dc
- 53640 2 mixed 16 and 32 bit index registers
- 53786 2 mod by zero in #if, zero result assumed
- 53924 6 module has code below file base of *
- 54277 3 multi-byte constant * isn't portable
- 54446 1 multiply defined symbol *
- 54542 1 multiply defined symbol: *
- 54619 2 negative index offset
- 54708 3 nested comments
- 54881 2 no #asm before #endasm
- 54977 2 no arg to -o
- 55142 1 no case labels
- 55199 1 no case labels
- 55265 2 no end record
- 55368 2 no end record found
- 55497 1 no file argument
- 55561 2 no file arguments
- 55679 3 no identifier in declaration
- 55860 3 no memory for string buffer
- 56058 1 no space for macro def'n
- 56142 4 no start record: entry point defaults to zero
- 56427 2 no. of arguments redeclared
- 56560 2 nodecount = *
- 56715 2 non-constant case label
- 56830 3 non-prototyped function declaration: *
- 57066 3 non-scalar types can't be converted
- 57260 2 non-void function returns no value
- 57408 2 not a member of the struct/union *
- 57526 2 not a variable identifier: *
- 57632 3 not an argument: *
- 57808 3 object file is not absolute
- 58019 1 one segment override only permitted
- 58120 2 only functions may be qualified interrupt
- 58224 1 only functions may be void
- 58330 6 only lvalues may be assigned to or modified
- 58756 2 only register storage class allowed
- 58863 1 oops! -ve number of nops required!
- 58926 2 operand error
- 59080 3 operand size undefined
- 59271 4 operands of * not same pointer type
- 59508 4 operands of * not same type
- 59744 3 operator * in incorrect context
- 59903 1 option not supported
- 59965 3 out of far memory
- 60195 2 out of far memory (wanted * bytes)
- 60312 5 out of memory
- 60613 3 out of near memory
- 60832 2 out of space in macro * arg expansion
- 60979 3 output file cannot be also an input file
- 61189 2 page width must be >= 41
- 61327 3 phase error
- 61510 2 phase error in macro args
- 61648 2 phase error on temporary label
- 61772 2 pointer required
- 61918 2 pointer to * argument required
- 62076 1 pop immediate illegal
- 62144 2 pop of allreg!!
- 62293 2 pop of register *
- 62446 2 popreg - bad reg *(*)
- 62594 2 popreg - bad reg
- 62781 2 popreg - trying to pop * with 0* regbits - can't do it!
- 62948 2 portion of expression has no effect
- 63068 5 possible pointer truncation
- 63373 2 preprocessor assertion failure
- 63521 5 probable missing '}' in previous block
- 63840 1 psect * cannot be in classes *
- 63914 1 psect * in more than one group
- 64006 4 psect * not loaded on * boundary
- 64231 3 psect * not relocated on * boundary
- 64400 3 psect * not specified in -p option
- 64568 2 psect * re-orged
- 64665 1 psect * selector value redefined
- 64759 3 psect * type redefined: *
- 64987 1 psect exceeds max size: *
- 65066 2 psect is absolute: *
- 65181 2 psect may not be local and global
- 65311 1 psect origin multiply defined: *
- 65389 2 psect property redefined
- 65487 2 psect reloc redefined
- 65598 2 psect selector redefined
- 65712 2 psect size redefined
- 65813 2 push of allreg!!
- 65963 2 push of register *
- 66112 2 pushreg - bad reg
- 66266 2 pushreg - bad reg *(*)
- 66455 2 pushreg - trying to push * with 0* regbits - can't do it!
- 66611 2 radix value out of range
- 66712 1 read error on *
- 66787 2 record too long
- 66879 2 record too long: *
- 67033 2 recursive macro definition of *
- 67161 3 redefining macro *
- 67380 3 redundant & applied to array
- 67551 2 reginit!!!???
- 67705 2 regused - bad arg to g
- 67853 4 relocation error
- 68175 3 relocation offset * out of range 0..*
- 68367 2 relocation too complex
- 68471 1 remsym error
- 68550 1 rept argument must be >= 0
- 68643 1 restore without matching save
- 68734 2 revlog - bad op
- 68887 2 save/restore too deep
- 68983 2 scale value invalid
- 69087 1 scale value must be a constant
- 69162 1 seek error: *
- 69247 2 segment * overlaps segment *
- 69380 5 signatures do not match: *
- 69708 2 signed bitfields not supported
- 69869 2 simple integer expression required
- 70017 1 simple type required for *
- 70119 2 size error
- 70277 7 sizeof yields 0
- 70713 2 storage class illegal
- 70872 4 storage class redeclared
- 71110 4 strange character * after ##
- 71363 1 strange character after # *
- 71422 2 string expected
- 71515 1 string too long
- 71582 2 struct/union member expected
- 71683 1 struct/union redefined: *
- 71760 1 struct/union required
- 71858 2 struct/union tag or '{' expected
- 72004 2 structure too big for function return
- 72149 3 symbol * cannot be global
- 72373 3 symbol * has erroneous psect: *
- 72580 2 symbol * is not external
- 72753 3 symbol * not defined in #undef
- 72933 1 syntax error
- 73033 4 syntax error in -a spec
- 73149 3 syntax error in checksum list
- 73363 1 text does not start at 0
- 73441 1 text offset too low
- 73518 3 text record has bad length: *
- 73699 2 text record has length too small: *
- 73833 3 this function too large - try reducing level of optimization
- 74022 2 this is a struct
- 74179 2 this is a union
- 74332 2 this is an enum
- 74498 2 too few arguments
- 74605 2 too few arguments for format string
- 74770 3 too many (*) enumeration constants
- 74947 2 too many (*) structure members
- 75091 1 too many arguments
- 75196 2 too many arguments for format string
- 75343 1 too many arguments for macro
- 75448 2 too many arguments in macro expansion
- 75570 2 too many cases in switch
- 75744 4 too many comment lines - discarding
- 76024 2 too many errors
- 76191 2 too many include directories
- 76308 2 too many initializers
- 76469 1 too many macro parameters
- 76562 2 too many nested #* statements
- 76662 1 too many psect class specifications
- 76745 1 too many psect pragmas
- 76813 1 too many psects
- 76887 1 too many qualifier names
- 76960 2 too many relocation items
- 77051 1 too many segment fixups
- 77142 1 too many segments
- 77226 3 too many symbols
- 77448 2 too many temporary labels
- 77582 2 too may symbols
- 77710 1 too much indirection
- 77791 2 too much pushback
- 77889 1 type conflict
- 77963 3 type redeclared
- 78192 2 type specifier reqd. for proto arg
- 78326 2 unbalanced paren's, op is *
- 78465 1 undefined enum tag: *
- 78521 2 undefined label: *
- 78638 2 undefined operand size
- 78778 2 undefined public symbol *
- 78902 4 undefined shift (* bits)
- 79229 1 undefined struct/union
- 79318 2 undefined struct/union: *
- 79409 1 undefined symbol *
- 79514 3 undefined symbol * in #if, 0 used
- 79671 2 undefined symbol:
- 79818 1 undefined symbols:
- 79905 2 undefined temporary label
- 80040 1 undefined variable: *
- 80122 2 unexpected end of file
- 80239 1 unexpected eof
- 80340 10 unexpected text in #control line ignored
- 80645 2 unknown predicate *
- 80800 1 unknown addressing mode
- 80876 1 unknown arg to opt
- 80944 2 unknown arg type to lpsize
- 81102 2 unknown complex operator *
- 81265 1 unknown directive
- 81333 2 unknown fnrec type *
- 81423 1 unknown option *
- 81492 1 unknown pragma *
- 81554 2 unknown psect: *
- 81674 2 unknown record type: *
- 81792 3 unreachable code
- 82017 2 unreasonable matching depth
- 82177 1 unrecognized argument to opt
- 82247 2 unrecognized option to -o: *
- 82349 2 unrecognized option to -z: *
- 82530 9 unrecognized qualifer name after 'strings'
- 82882 3 unterminated #if[n][def] block from line *
- 83030 2 unterminated macro arg
- 83161 1 unterminated string
- 83259 2 unterminated string in macro body
- 83344 1 unused constant: *
- 83430 1 unused enum: *
- 83513 1 unused label: *
- 83587 1 unused member: *
- 83675 1 unused structure: *
- 83758 1 unused typedef: *
- 83833 1 unused union: *
- 83926 1 unused variable declaration: *
- 84016 1 unused variable definition: *
- 84111 2 variable may be used before set: *
- 84285 2 void function cannot return value
- 84404 1 while expected
- 84492 2 work buffer overflow *
- 84615 2 write error (out of disk space?) *
- 84688 2 write error on *
- 84809 2 write error on object file
- 84998 1 wrong number of macro arguments for * - * instead of *
- 85071 1 { expected
- 85119 1 } expected
- %#define syntax error
- A macro definition has a syntax error. This could be due
- to a macro or formal parameter name that does not start
- with a letter or a missing closing parenthesis (')').
- %#elif may not follow #else
- If a #else has been used after #if, you cannot then use
- a #elif in the same conditional block.
- %#elif must be in an #if
- #elif must be preceded by a matching #if line. If there
- is an apparently corresponding #if line, check for things
- like extra #endif's, or improperly terminated comments.
- %#else may not follow #else
- There can be only one #else corresponding to each #if.
- %#else must be in an #if
- #else can only be used after a matching #if.
- %#error: *
- This is a programmer generated error; there is a directive
- causing a deliberate error. This is normally used to check
- compile time defines etc.
- %#if ... sizeof() syntax error
- The preprocessor found a syntax error in the argument to sizeof,
- in a #if expression. Probable causes are mismatched parentheses
- and similar things.
- %#if ... sizeof: bug, unknown type code *
- The preprocessor has made an internal error in evaluating
- a sizeof() expression. Check for a malformed type specifier.
- %#if ... sizeof: illegal type combination
- The preprocessor found an illegal type combination in
- the argument to sizeof() in a #if expression. Illegal
- combinations include such things as "short long int".
- %#if bug, operand = *
- The preprocessor has tried to evaluate an expression with
- an operator it does not understand. This is an internal error.
- %#if sizeof() error, no type specified
- Sizeof() was used in a preprocessor #if expression, but no
- type was specified. The argument to sizeof() in a preprocessor
- expression must be a valid simple type, or pointer to a simple type.
- %#if sizeof, unknown type *
- An unknown type was used in a preprocessor sizeof(). The
- preprocessor can only evaluate sizeof() with basic types, or
- pointers to basic types.
- %#if value stack overflow
- The preprocessor filled up its expression evaluation stack
- in a #if expression. Simplify the expression - it probably contains
- too many parenthesized subexpressions.
- %#if, #ifdef, or #ifndef without an argument
- The preprocessor directives #if, #ifdef and #ifndef must
- have an argument. The argument to #if should be an expression,
- while the argument to #ifdef or #ifndef should be a single name.
- %#include syntax error
- The syntax of the filename argument to #include is invalid. The
- argument to #include must be a valid file name, either enclosed in
- double quotes ("") or angle brackets (<>). For example:
- #include "afile.h"
- #include <otherfile.h>
- Spaces should not be included, and the closing quote or bracket must be present. There
- should be nothing else on the line.
- %'.' expected after '..'
- The only context in which two successive dots may appear is as part of the
- ellipsis symbol, which must have 3 dots.
- %'.' not followed by 'w' or 'b'
- A dot (.) introduces an operand size specifier, so it must be followed
- by an appropriate specifier. .W is for words, .B for bytes.
- %'=' expected after lle
- The LLE option requires an equal sign, then the desired listing line length
- as a decimal number, e.g.
-
- opt lle=80
- %'=' expected after p
- The P option specifies a page length, and must have an equal sign and a
- decimal number, e.g.
-
- opt p=66
- %'case' not in switch
- A case statement has been encountered but there is no enclosing switch
- statement. A case statement may only appear inside the body of a
- switch statement.
- %'default' not in switch
- A label has been encountered called "default" but it is not
- enclosed by a switch statement. The label "default" is only legal
- inside the body of a switch
- statement.
- %( expected
- An opening parenthesis was expected here. This must be the first token
- after a while, for, if, do or asm keyword.
- %) expected
- A closing parenthesis was expected here. This may indicate you have
- left out a parenthesis in an expression, or you have some other
- syntax error.
- %, expected
- A comma was expected here. This probably means you have left out the comma
- between two identifiers in a declaration list. It may also mean that
- the immediately preceding type name is misspelled, and has thus been
- interpreted as an identifier.
- %-s, too few values specified in *
- The list of values to the preprocessor -S option is incomplete.
- This should not happen if the preprocessor is being invoked by the
- compiler driver or HPD.
- %-s, too many values, * unused
- There were too many values supplied to a -S preprocessor option.
- %... illegal in non-prototype arg list
- The ellipsis symbol may only appear as the last item in a prototyped
- argument list. It may not appear on its own, nor may it appear after
- argument names that do not have types.
- %32 bit addressing illegal
- 32 bit addressing (i.e. using 32 bit registers in an index expression)
- is illegal unless generating 386 or 486 code. Use a .386 or .486
- directive at the beginning of the file.
- %6301 instruction illegal
- This instruction is for the 6301 and is illegal unless an appropriate
- option is used, e.g.
-
- opt h301
- %6801 instruction illegal
- The 6801 instructions can only be used if an appropriate
- option is used, to allow 6801, 68HC11 or 6301 instructions. E.g.
-
- opt z01
- %68hc11 instruction illegal
- 68HC11 instructions can only be used if the HC11 option is
- used, e.g.
-
- opt HC11
- %68hc11/6301 instruction illegal
- This instruction is only implemented in the 68HC11 and 6301
- processors. Use an HC11 or H301 option, e.g.
-
- opt HC11
- %80186 instruction/addressing mode
- An instruction or addressing mode not supported by the 8088/8086 was
- encountered. Use a .186, .286. .386 or .486 directive to allow these.
- %80286 instruction
- An instruction peculiar to the 80286
- encountered. Use a .286. .386 or .486 directive to allow these.
- %80386 instruction/addressing mode
- An instruction or addressing mode peculiar to the 80386
- encountered. Use a .386 or .486 directive to allow these.
- %80486 instruction/addressing mode
- An instruction or addressing mode peculiar to the 80486
- encountered. Use a .486 directive to allow these.
- %: expected
- A colon is missing in a case label, or after the keyword "default".
- This often occurs when a semicolon is accidentally typed instead of
- a colon.
- %; expected
- A semicolon is missing here. The semicolon is used as a terminator in
- many kinds of statements, e.g. do .. while, return etc.
- %= expected
- An equal sign was expected here.
- %] expected
- A closing square bracket was expected in an array declaration or
- an expression using an array index.
- %a parameter may not be a function
- A function parameter may not be a function. It may be a pointer to
- a function, so perhaps a "*" has been omitted from the declaration.
- %absolute expression required
- An absolute expression is required in this context.
- %add_reloc - bad size
- This is an internal error that should never happen. The assembler may
- be corrupted, and should be re-installed from the original distribution
- disks.
- %argument * conflicts with prototype
- The argument specified (argument 1 is the left most argument) of this
- function declaration does not agree with a previous prototype for this
- function.
- %argument list conflicts with prototype
- The argument list in a function definition is not the same as a previous
- prototype for that function. Check that the number and types of the
- arguments are all the same.
- %argument redeclared: *
- The specified argument is declared more than once in the same argument list.
- %arguments redeclared
- The arguments of the function have been declared differently in two or more places.
- %arithmetic overflow in constant expression
- A constant expression has been evaluated by the code generator
- that has resulted in a value that is too big for the type of
- the expression, e.g. trying to store the value 256 in a "char".
- %array dimension on *[] ignored
- An array dimension on a function parameter is ignored, because the argument is
- actually converted to a pointer when passed. Thus arrays of any size may
- be passed.
- %array index out of bounds
- An array is being indexed with a constant value that is less than zero, or greater
- than or equal to the number of elements in the array.
- %assertion
- An internal error has occured in the compiler. Contact HI-TECH technical support.
- %attempt to modify const object
- Objects declared "const" may not be assigned to or modified in any
- other way..
- %auto variable * should not be qualified
- An auto variable should not have qualifiers such as "near" or "far" associated
- with it. Its storage class is implicitly defined by the stack organization.
- %bad #if ... defined() syntax
- The defined() pseudo-function in a preprocessor expression
- requires its argument to be a single name. The name must start with
- a letter. It should be enclosed in parentheses.
- %bad '-p' format
- The "-P" option given to the linker is malformed.
- %bad -a spec: *
- The format of a -A specification, giving address ranges to the linker,
- is invalid. The correct format is:
-
- -Aclass=low-high
-
- where class is the name of a psect class, and low and high are hex
- numbers.
- %bad -m option: -m*
- The code generator has been passed a -M option that it does not
- understand. This should not happen if it is being invoked by a
- standard compiler driver.
- %bad -q option *
- The first pass of the compiler has been invoked with a -Q option,
- to specify a type qualifier name, that is badly formed.
- %bad arg (*) to tysize
- This is an internal error that should not happen. If this occurs, re-install
- the compiler from the original distribution disks, as it could represent
- a corrupted executable file.
- %bad arg to *l
- The *L directive should be followed by either ON or OFF.
- This turns listing on or off respectively.
- %bad arg to -b
- The argument supplied to "-B" is invalid.
- %bad arg to e: *
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad arg to extraspecial
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad arg to im
- The opcode "IM" only takes the constants 0, 1 or 2 as an argument.
- %bad bconfloat - *
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad bit address
- This bit address is invalid. Bit addresses for the 8051
- may range from 0 to 255.
- %bad bit number
- A bit number must be an absolute expression in the range
- 0-7.
- %bad bitfield type
- A bitfield may only have a type of int.
- %bad character const
- This character constant is badly formed.
- %bad character in extended tekhex line *
- This is an internal error in objtohex and should never occur.
- %bad checksum specification
- A checksum list supplied to the linker is syntatically incorrect.
- %bad combination of flags
- The combination of options supplied to objtohex is invalid.
- %bad complex relocation
- The linker has been asked to perform complex relocation
- that is not syntactically correct. Probably means a corrupted
- object file.
- %bad confloat - *
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad conval - *
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad dimensions
- The code generator has been passed a declaration that
- results in an array having a zero dimension.
- %bad dp/nargs in openpar: dp = *
- This is an internal error in the preprocessor. It should
- not happen.
- %bad element count expr
- There is an error in the intermediate code. Try re-installing the
- compiler from the distribution disks, as this could be caused by a
- corrupted file.
- %bad float operand size
- The operand size for a DF pseudo-op must be either .L for
- long (4 byte) floating point values, or .D for double (8 byte)
- floats.
- %bad gn
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad high address in -a spec
- The high address given in a -A specification is invalid: it
- should be a valid number, in decimal, octal or hexadecimal radix.
- The radix is specified by a trailing O (for octal) or H for
- hex. Decimal is default.
- %bad int. code
- The code generator has been passed input that is not syntatically
- correct.
- %bad load address in -a spec
- The load address given in a -A specification is invalid: it
- should be a valid number, in decimal, octal or hexadecimal radix.
- The radix is specified by a trailing O (for octal) or H for
- hex. Decimal is default.
- %bad low address in -a spec
- The low address given in a -A specification is invalid: it
- should be a valid number, in decimal, octal or hexadecimal radix.
- The radix is specified by a trailing O (for octal) or H for
- hex. Decimal is default.
- %bad mod '+' for how = *
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad non-zero node in call graph
- The linker has encountered a top level node in the call graph
- that is referenced from lower down in the call graph. This
- probably means the program has indirect recursion, which is
- not allowed when using a compiled stack.
- %bad object code format
- The object code format of this object file is invalid. This probably
- means it is either truncated, corrupted, or not a HI-TECH object
- file.
- %bad op * to revlog
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad op * to swaplog
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad op: *
- This is caused by an error in the intermediate code file. You may
- have run out of disk (or RAMdisk) space for temporary files.
- %bad operand size
- This instruction requires an operand size of byte. Any other
- size is illegal.
- %bad origin format in spec
- The origin format in a -p option is not a validly formed
- decimal, octal or hex number. A hex number must have a
- trailing H.
- %bad popreg
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad pragma *
- The code generator has been passed a "pragma" directive that it
- does not understand.
- %bad psnext list
- This is an internal assembler error. Contact HI-TECH technical
- support with full details of the code that caused this error.is
- %bad pushreg
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad putwsize
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad record type *
- This indicates that the object file is not a valid
- HI-TECH object file.
- %bad relocation type
- This is an internal assembler error. Contact HI-TECH technical
- support with full details of the code that caused this error.is
- %bad ret_mask
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad segment fixups
- This is an obscure message from objtohex that is not
- likely to occur in practice.
- %bad segspec *
- The segspec option (-G) to the linker is invalid. The correct
- form of a segspec option is along the following lines:
-
- -Gnxc+o
-
- where n stands for the segment number, x is a multiplier
- symbol, c is a constant (multiplier) and o is a constant
- offset. For example the option
-
- -Gnx4+16
-
- would assign segment selectors starting from 16, and incrementing
- by 4 for each segment, i.e. in the order 16, 20, 24 etc.
- %bad size in -s option
- The size part of a -S option is not a validly
- formed number. The number must be a decimal, octal
- or hex number. A hex number needs a trailing H, and
- an octal number a trailing O. All others are assumed
- to be decimal.
- %bad size list
- The first pass of the compiler has been invoked with a -Z option,
- specifying sizes of types, that is badly formed.
- %bad storage class
- The storage class "auto" may only be used inside a function. A function
- parameter may not have any storage class specifier other than
- "register".
- If this error is issued by the code generator, it could mean that
- the intermediate code file is invalid. This could be caused
- by running out of disk (or RAMdisk) space.
- %bad string '*' in psect pragma
- The code generator has been passed a "pragma psect" directive
- that has a badly formed string. "Pragma psect" should be followed
- by something of the form "oldname=newname".
- %bad sx
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad u usage
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %bad variable syntax
- There is an error in the intermediate code file. This could be caused by
- running out of disk (or RAMdisk) space for temporary files.
- %bit field too large (* bits)
- The maximum number of bits in a bit field is the same as the
- number of bits in an "int".
- %bug: illegal __ macro *
- This is an internal error in the preprocessor that
- should not happen.
- %can't allocate space for port variables: *
- "Port" variables may only be declared "extern" or have an
- absolute address associated via the "@ address" construct. They
- may not be declared in such a way that would require the compiler
- to allocate space for them.
- %can't be both far and near
- It is illegal to qualify a type as both far and near.
- %can't be long
- Only "int" and "float" can be qualified with "long". Thus combinations
- like "long char" are illegal.
- %can't be register
- Only function parameters or auto (local) variables may be declared
- "register".
- %can't be short
- Only "int" can be modified with short. Thus combinations like "short float" are illegal.
- %can't be unsigned
- There is no such thing as an unsigned floating point number.
- %can't call an interrupt function
- A function qualified "interrupt" can't be called from other functions.
- It can only be called by a hardware (or software) interrupt. This is
- because an interrupt function has special function entry and exit code
- that is appropriate only for calling from an interrupt. An
- "interrupt" function can call other non-interrupt functions.
- %can't create *
- The named file could not be created. Check that all directories in the
- path are present.
- %can't create cross reference file *
- The cross reference file could not be created. Check that
- all directories are present. This can also be caused by the
- assembler running out of memory.
- %can't create temp file *
- The compiler could not create the temporary file named. Check that all the
- directories in the file path exist.
- %can't create xref file *
- An output file for the cross reference could not be created.
- %can't enter abs psect
- This is an internal assembler error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %can't find space for psect * in segment *
- The named psect cannot be placed in the specified segment.
- This probably means your code has got too big for the
- specified ROM space (using -A options).
- %can't generate code for this expression
- This expression is too difficult for the code generator to handle.
- Try simplifying the expression, e.g. using a temporary variable
- to hold an intermediate result.
- %can't have 'port' variable: *
- The qualifier "port" can be used only with pointers or absolute variables.
- You cannot define a port variable as the compiler does not allocate space
- for port variables. You can declare an external port variable.
- %can't have array of functions
- You can't have an array of functions. You can however have an array
- of pointers to functions. The correct syntax for an array of pointers
- to functions is "int (* arrayname[])();". Note that parentheses are
- used to associate the star (*) with the array name before the
- parentheses denoting a function.
- %can't initialise auto aggregates
- You can't initialise structures or arrays local to a function unless
- they are declared "static".
- %can't initialize a basepage variable
- A basepage variable can't be initialized, as the basepage is RAM and is
- not initialized at program start.
- %can't initialize arg
- A function argument can't have an initialiser. The initialisation of
- the argument happens when the function is called and a value is
- provided for the argument by the calling function.
- %can't mix proto and non-proto args
- A function declaration can only have all prototyped arguments (i.e.
- with types inside the parentheses) or all K&R style args (i.e. only
- names inside the parentheses and the argument types in a declaration
- list before the start of the function body).
- %can't open
- A file can't be opened - check spelling.
- %can't open *
- The named file could not be opened. Check the spelling and the
- directory path. This can also be caused by running out of memory.
- %can't open command file *
- The command file specified could not be opened
- for reading. Check spelling!
- %can't open file *
- The named file could not be opened. Check spelling. This can
- also be caused by running out of memory.
- %can't open include file *
- The named include file could not be opened. Check spelling.
- This can also be caused by running out of memory, or running
- out of file handles.
- %can't reopen *
- The compiler could not reopen a temporary file it had just created.
- %can't take address of register variable
- A variable declared "register" may not have storage allocated for it
- in memory, and thus it is illegal to attempt to take the address of
- it by applying the "&" operator.
- %can't take sizeof func
- Functions don't have sizes, so you can't take use the "sizeof"
- operator on a function.
- %can't take this address
- The expression which was the object of the "&" operator is not one
- that denotes memory storage ("an lvalue") and therefore its address
- can not be defined.
- %can't use a string in an #if
- The preprocessor does not allow the use of strings in #if
- expressions.
- %cannot get memory
- The linker is out of memory! This is unlikely
- to happen, but removing TSR's etc is the cure.
- %cannot open
- A file cannot be opened - check spelling.
- %cannot open *
- The file specified cannot be opened. Check spelling.
- %cannot open include file *
- The named include file could not be opened for
- reading by the preprocessor. Check the spelling of the
- filename. If it is a standard header file, not in the
- current directory, then the name should be enclosed in
- angle brackets (<>) not quotes.
- %cast type must be scalar or void
- A typecast (an abstract type declarator enclosed in parentheses)
- must denote a type which is either scalar (i.e. not an array or a
- structure) or the type "void".
- %char const too long
- A character constant enclosed in single quotes may not contain more
- than one character.
- %close error (disk space?)
- When the compiler closed a temporary file, an error was reported.
- The most likely cause of this is that there was insufficient space
- on disk for the file. Note that temporary files may be created on a
- RAM disk, so even if your hard disk has ample space it is still
- possible to get this error.
- %closing quote expected
- A newline (end of line) was encountered before a matching closing
- quote was seen. This could be caused by the closing quote having
- been omitted, or by an extra quote character being inserted in the
- string without an escape character (\\) preceding it.
- %common symbol psect conflict: *
- A common symbol has been defined to be in more than
- one psect.
- %complex relocation not supported for -r or -l options yet
- The linker was given a -R or -L option with file that
- contain complex relocation. This is not yet supported.
- %conflicting operand sizes
- This instruction has more than one operand size specified.
- They are incompatible.
- %constant conditional branch
- A conditional branch (generated by an "if" statement etc.)
- always follows the same path. This may indicate an expression
- with missing or badly placed parentheses, causing the evaluation
- to yield a value different to what you expected, or it may be
- because you have written something like "while(1)". To produce
- an infinite loop, use "for(;;)".
- %constant conditional branch: possible use of = instead of ==
- There is an expression inside an if or other conditional construct, where
- a constant is being assigned to a variable. This may mean you have inadvertentley
- used an assignment (=) instead of a compare (==).
- %constant expression required
- In this context an expression is required that can be evaluated to a
- constant at compile time.
- %constant left operand to ?
- The left operand to a conditional operator (?) is constant, thus the result of
- the tertiary operator ?: will always be the same.
- %constant operand to || or &&
- One operand to the logical operators || or && is a constant. Check
- the expression for missing or badly placed parentheses.
- %constant relational expression
- There is a relational expression that will always be true or false. This may be
- because e.g. you are comparing an unsigned number with a negative value, or
- comparing a variable with a value greater than the largest number it can
- represent.
- %control line * within macro expansion
- A preprocessor control line (one starting with a #) has been
- encountered while expanding a macro. This should not happen.
- %declaration of * hides outer declaration
- An object has been declared that has the same name as an outer
- declaration (i.e. one outside and preceding the current function or
- block). This is legal, but can lead to accidental use of one variable
- when the outer one was intended.
- %declarator too complex
- This declarator is too complex for the compiler to handle. Examine
- the declaration and find a way to simplify it. If the compiler finds
- it too complex, so will anybody maintaining the code.
- %default case redefined
- There is only allowed to be one "default" label in a switch
- statement. You have more than one.
- %deff not supported in cp/m version
- The CP/M hosted assembler does not support floating point.
- %degenerate signed comparison
- There is a comparision of a signed value with the most negative value possible
- for this type, such that the comparision will always be true or false. E.g.
-
- char c;
-
- if(c >= -128)
-
- will always be true, because an 8 bit signed char has a maximum negative value
- of -128.
- %degenerate unsigned comparison
- There is a comparision of an unsigned value with zero, which will always be
- true or false. E.g.
-
- unsigned char c;
-
- if(c >= 0)
-
- will always be true, because an unsigned value can never be less than zero.
-
- %digit out of range
- A digit in this number is out of range of the radix for the number,
- e.g. using the digit 8 in an octal number, or hex digits A-F in a
- decimal number. An octal number is denoted by the digit string
- commencing with a zero, while a hex number starts with "0X" or "0x".
- %dimension required
- Only the most significant (i.e. the first) dimension in a
- multi-dimension array may not be assigned a value. All succeeding
- dimensions must be present.
- %direct addressing required
- Direct or indexed addressing is required for bit operations.
- Extended addressing cannot be used.
- %directive not recognized
- An assembler directive is unrecognized. Check spelling.
- %divide by zero in #if, zero result assumed
- Inside a #if expression, there is a division by
- zero which has been treated as yielding zero.
- %division by zero
- A constant expression that was being evaluated involved a division by zero.
- %double float argument required
- The printf format specifier corresponding to this argument is %f or similar,
- and requires a floating point expression. Check for missing or extra
- format specifiers or arguments to printf.
- %duplicate -d flag
- Only one -d flag can be given to the linker.
- %duplicate -m flag
- The linker only likes to see one -m flag, unless one
- of them does not specify a file name. Two map file names
- are more than it can handle!
- %duplicate base register
- Only one base register, i.e. only one of BP and BX may
- be used in a 16 bit indexed addressing form.
- %duplicate case label
- There are two case labels with the same value in this switch statement.
- %duplicate case label *
- There is more than one case label with this value in a switch statement.
- %duplicate displacement in operand
- The operand on this instruction has two offsets. Only one
- is permitted.
- %duplicate fnconf directive
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %duplicate index register
- Only one index register (SI or DI) may be used in a 16 bit
- indexed form.
- %duplicate label *
- The same name is used for a label more than once in this function.
- Note that the scope of labels is the entire function, not just the
- block that encloses a label.
- %duplicate qualifier
- There are two occurences of the same qualifier in this type specification.
- This can occur either directly or through the use of a typedef. Remove
- the redundant qualifier.
- %duplicate qualifier key * (*)
- P1 has been given a duplicate qualifer key by the compiler driver. This
- should not occur if the standard driver is being used.
- %duplicate qualifier name *
- A duplicate qualifier name has been specified to P1 via a -Q option. This
- should not occur if the standard compiler drivers are used.
- %duplicate qualifier*
- There are two qualifiers with the same name or key letter.
- %end of file within macro argument
- A macro argument has not been terminated. This probably means the closing
- parenthesis has been omitted from a macro invocation.
- %end statement inside include file or macro
- An end statement has been encountered inside an include file
- or macro. There should be one end statement only, at the end
- of the main source file.
- %entry point multiply defined
- There is more than one entry point defined in the object
- files given the linker.
- %enum tag or { expected
- After the keyword "enum" must come either an identifier that is or
- will be defined as an enum tag, or an opening brace.
- %eof in #asm
- An end of file has been encountered inside a #asm block. This
- probably means the #endasm is missing or misspelt.
- %eof inside conditional
- END-of-FILE was encountered while scanning for an "endif"
- to match a previous "if".
- %eof inside macro def'n
- End-of-file was encountered while processing a macro definition.
- This means there is a missing "endm" directive.
- %eof on string file
- P1 has encountered an unexpected end-of-file while re-reading its file
- used to store constant strings before sorting and merging. This is most
- probably due to running out of disk space. Check free disk space, OR
- RAM disk size. The RAM disk may be too small, if it is used for
- temporary files.
- %error closing output file
- The compiler detected an error when closing a file. This most
- probably means there is insufficient disk space, but note that the
- file could be on a RAM disk, so even if you have ample space on your
- hard disk, this error can still occur. If this is the case, increase
- the size of your ram disk or move your temporary file area onto
- the hard disk.
- %error in format string
- There is an error in the format string here. The string has been
- interpreted as a printf() style format string, and it is not
- syntactically correct. If not corrected, this will cause unexpected
- behaviour at run time.
- %esp not permitted as index register
- ESP is not permitted as an index register.
- %expand - bad how
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %expand - bad which
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %expected '-' in -a spec
- There should be a minus sign (-) between the high and
- low addresses in a -A spec, e.g.
-
- -AROM=1000h-1FFFh
- %exponent expected
- A floating point constant must have at least one digit after the "e"
- or "E".
- %expression error
- There is a syntax error in this expression, OR
- there is an error in the intermediate code file. This could be
- caused by running of disk (or RAMdisk) space.
- %expression generates no code
- This expression generates no code. Check for things like leaving
- off the parentheses in a function call.
- %expression stack overflow at op *
- Expressions in #if lines are evaluated using a stack with a size
- of 128. It is possible for very complex expressions to overflow
- this. Simplify the expression.
- %expression syntax
- This expression is badly formed and cannot be parsed by the
- compiler.
- %expression too complex
- This expression has caused overflow of the compiler's internal stack
- and should be re-arranged or split into two expressions.
- %external declaration inside function
- A function contains an "extern" declaration. This is legal but is
- invariably A Bad Thing as it restricts the scope of the function
- declaration to the function body. This means that if the compiler
- encounters another declaration, use or definition of the extern
- object later in the same file, it will no longer have the earlier
- declaration and thus will be unable to check that the declarations
- are consistent. This can lead to strange behaviour of your program
- or signature errors at link time. It will also hide any previous
- declarations of the same thing, again subverting the compiler's type
- checking. As a general rule, always declare "extern" variables and
- functions outside any other functions.
- %fail directive: *
- A programmer generated FAIL directive has been assembled. This
- normally is used as a configuration safeguard.
- %filename work buffer overflow
- A filename constructed while looking for an include
- file has exceeded the length of an internal buffer. Since
- this buffer is 4096 bytes long, this is unlikely to happen.
- %fixup overflow referencing *
- The linker was asked to relocate (fixup) an item that would
- not fit back into the space after relocation. For example this
- will occur if a byte size object is initialized with an address
- that is bigger than 255.
- %flag * unknown
- This option used on a "PSECT" directive is unknown to the assembler.
- %float param coerced to double
- Where a non-prototyped function has a parameter declared as "float",
- the compiler convert this into a "double float". This is because the
- default C type conversion conventions provide that when a floating
- point number is passed to a non-prototyped function, it will be
- converted to double. It is important that the function declaration
- be consistent with this convention.
- %floating exponent too large
- The exponent of the floating point number is too large. For the Z80 the
- largest floating point exponent is decimal 19.
- %floating number expected
- The arguments to the "DEFF" pseudo-op must be valid floating point
- numbers.
- %form length must be >= 15
- The length of the listing page must be at least
- 15 lines. You can't get a decent listing otherwise!
- %formal parameter expected after #
- The stringization operator # (not to be confused with the leading #
- used for preprocessor control lines) must be followed by a formal
- macro parameter. If you need to stringize a token, you will need to
- define a special macro to do it, e.g.
-
- #define __mkstr__(x) #x
-
- then use __mkstr__(token) wherever you need to convert a token
- into a string.
- %function body expected
- Where a function declaration is encountered with K&R style arguments
- (i.e. argument names but no types inside the parentheses) a function
- body is expected to follow.
- %function declared implicit int
- Where the compiler encounters a function call of a function whose
- name is presently undefined, the compiler will automatically declare
- the function to be of type "int", with unspecified (K&R style)
- parameters. If a definition of the function is subsequently
- encountered, it is possible that its type and arguments will be
- different from the earlier implicit declaration, causing a compiler
- error. The solution is to ensure that all functions are defined or
- at least declared before use, preferably with prototyped parameters.
- If it is necessary to make a forward declaration of a function, it
- should be preceded with the keywords "extern" or "static" as
- appropriate.
- %function does not take arguments
- This function has no parameters, but it is called here with
- one or more arguments.
- %function is already 'extern'; can't be 'static'
- This function was already declared extern, possibly through an implicit
- declaration. It has now been redeclared static, but this redeclaration is
- invalid. If the problem has arisen because of use before definition, either
- move the definition earlier in the file, or place a static forward definition
- earlier in the file, e.g.
-
- static int fred(void);
- %function or function pointer required
- Only a function or function pointer can be the subject of a function
- call. This error can be produced when an expression has a syntax
- error resulting in a variable or expression being followed by an
- opening parenthesis ("(") which denotes a function call.
- %function's local data too large
- The size of the stack frame for this function is greater than that
- allowable. The size is limited by the size of the internal RAM on the
- 8051.
- %functions can't return arrays
- A function can return only a scalar (simple) type or a structure. It cannot
- return an array.
- %functions can't return functions
- A function cannot return a function. It can return a function
- pointer. A function returning a pointer to a function could be
- declared like this: int (* (name()))(). Note the many parentheses
- that are necessary to make the parts of the declaration bind
- correctly.
- %functions nested too deep
- This error is unlikely to happen with C code, since C cannot
- have nested functions!
- %garbage after operands
- There is something on this line after the operands other
- than a comment. This could indicate an operand error.
- %garbage on end of line
- There were non-blank and non-comment characters after the end of the operands
- for this instruction. Note that a comment must be started with a semicolon.
- %hc11 and h301 are incompatible
- The options HC11 and H301 cannot be used together, since these
- two processors have incompatible instruction sets.
- %hex digit expected
- After "0x" should follow at least one of the hex digits 0-9 and A-F
- or a-f.
- %ident records do not match
- The object files passed to the linker do not have matching ident
- records. This means they are for different processor types.
- %identifier expected
- Inside the braces of an "enum" declaration should be a
- comma-separated list of identifiers.
- %identifier redefined: *
- This identifier has already been defined. It cannot be defined
- again.
- %illegal # command *
- The preprocessor has encountered a line starting with #, but which is not
- followed by a recognized control keyword. This probably means the keyword
- has been misspelt. Legal control keywords are:
-
- assert asm define elif else endasm
- endif error if ifdef ifndef include
- line pragma undef
- %illegal #if line
- There is a syntax error in the expression following #if.
- Check the expression to ensure it is properly constructed.
- %illegal #undef argument
- The argument to #undef must be a valid name. It must start
- with a letter.
- %illegal '#' directive
- The compiler does not understand the "#" directive. It is probably a
- misspelling of a pre-processor "#" directive.
- %illegal -o flag
- This -o flag is illegal. A -o option to the linker
- must have a filename. There should be no space between the filenam
- and the -o, e.g.
-
- -ofile.obj
- %illegal -p flag
- The -p flag needs stuff after it. This is used for defining
- psect mapping to the linker.
- %illegal addressing mode
- This addressing mode is not permitted.
- %illegal character (*)
- An illegal character has been encountered in the input. The value in
- parentheses is the octal value of the character. Locate the line
- and remove the character.
- %illegal character (0*)
- There is an illegal character in the input. This is the octal
- code for the character.
- %illegal character * in #if
- There is a character in a #if expression that has no business
- being there. Valid characters are the letters, digits and those
- comprising the acceptable operators.
- %illegal conversion
- This expression implies a conversion between imcompatible types,
- e.g. a conversion of a structure type into an integer.
- %illegal conversion between pointer types
- A pointer of one type (i.e. pointing to a particular kind of object)
- has been converted into a pointer of a different type. This will
- usually mean you have used the wrong variable, but if this is
- genuinely what you want to do, use a typecast to inform the compiler
- that you want the conversion and the warning will be suppressed.
- %illegal conversion of integer to pointer
- An integer has been assigned to or otherwise converted to a pointer
- type. This will usually mean you have used the wrong variable,
- but if this is
- genuinely what you want to do, use a typecast to inform the compiler
- that you want the conversion and the warning will be suppressed.
- %illegal conversion of pointer to integer
- A pointer has been assigned to or otherwise converted to a integral
- type. This will usually mean you have used the wrong variable,
- but if this is
- genuinely what you want to do, use a typecast to inform the compiler
- that you want the conversion and the warning will be suppressed.
- %illegal flag *
- This flag is unrecognized.
- %illegal function qualifier(s)
- A qualifier such as "const" or "volatile" has been applied to a
- function. These qualifiers only make sense when used with an lvalue
- (i.e. an expression denoting memory storage). Perhaps you left out a
- star ("*") indicating that the function should return a pointer to a
- qualified object.
- %illegal initialisation
- You can't initialise a "typedef" declaration, because it does not
- reserve any storage that could be initialised.
- %illegal or too many -p flags
- There are too many -p options to the linker. Combine
- some of them.
- %illegal record type
- There is an error in an object file. This is either an invalid object
- file, or an internal error in the linker. Try recreating the object file.
- %illegal register for indirection
- An operand has indirection on a register that is not permitted
- to be used for indirection.
- %illegal relocation size: *
- There is an error in the object code format read by the linker. This
- either means you are using a linker that is out of date, or that
- there is an internale error in the assembler or linker.
- %illegal relocation type: *
- An object file contained a relocation record with an illegal relocation type.
- This probably means the file is corrupted or not an object file.
- %illegal stack index
- The index used in a cop-processor instruction must be
- an absolute value 0-7.
- %illegal switch *
- This command line option was not understood.
- %illegal type for array dimension
- An array dimension must be either an integral type or an enumerated
- value.
- %illegal type for index expression
- An index expression must be either integral or an enumerated value.
- %illegal type for switch expression
- A "switch" operation must have an expression that is either an
- integral type or an enumerated value.
- %illegal use of void expression
- A void expression has no value and therefore you can't use it
- anywhere an expression with a value is required, e.g. as an operand
- to an arithmetic operator.
- %image too big
- The program image being constructed by objtohex is too big
- for its virtual memory system.
- %implicit conversion of float to integer
- A floating point value has been assigned or otherwise converted to
- an integral type. This could result in truncation of the floating
- point value. A typecast will make this warning go away.
- %implicit return at end of non-void function
- A function which has been declared to return a value has an
- execution path that will allow it to reach the end of the function
- body, thus returning without a value. Either insert a return
- statement with a value, or if the function is not to return a value,
- declare it "void".
- %implict signed to unsigned conversion
- A signed number is being assigned or otherwise converted to a larger
- unsigned type. Under the ANSI "value preserving" rules, this will
- result in the signed value being first sign-extended to a signed
- number the size of the target type, then converted to unsigned
- (which involves no change in bit pattern). Thus an unexpected sign
- extension can occur. To ensure this does not happen, first convert
- the signed value to an unsigned equivalent, e.g. if you want to
- assign a signed char to an unsigned int, first typecast the char
- value to "unsigned char".
- %inappropriate 'else'
- An "else" keyword has been encountered that cannot be associated
- with an "if" statement. This may mean there is a missing brace or
- other syntactic error.
- %inappropriate break/continue
- A "break" or "continue" statement has been found that is not
- enclosed in an appropriate control structure. "continue" can only be
- used inside a "while", "for" or "do while" loop, while "break" can
- only be used inside those loops or a "switch" statement.
- %include files nested too deep
- Macro expansions and include file handling have filled up the assembler's
- internal stack. The maximum number of open macros and include files is 30.
- %incompatible intermediate code version; should be *.*
- This error may indicate that the code generator is imcompatible with the first
- pass (P1). This could occur if you installed an old compiler in the same
- directory as a newer compiler for a different processor. Use separate installation
- directories.
- %incomplete * record body: length = *
- An object file contained a record with an illegal size.
- This probably means the file is truncated or not an object file.
- %incomplete record
- The object file passed to objtohex is corrupted.
- %incomplete record: type = * length = *
- This indicates that the object file is not a valid
- HI-TECH object file, or that it has been truncated,
- possibly due to running out of disk or RAMdisk space.
-
- %inconsistent storage class
- A declaration has conflicting storage classes. Only one storage
- class should appear in a declaration.
- %inconsistent type
- Only one basic type may appear in a declaration, thus combinations
- like "int float" are illegal.
- %index offset too large
- An offset on a Z80 indexed addressing form must lie in the range -128 to 127.
- %indirection on illegal register
- Indirection on this register is not possible.
- %initialisation syntax
- The initialisation of this object is syntactically incorrect. Check
- for the correct placement and number of braces and commas.
- %initializer in 'extern' declaration
- A declaration containing the keyword "extern" has an initialiser.
- This overrides the "extern" storage class, since to initialise an
- object it is necessary to define (i.e. allocate storage for ) it.
- %insufficient memory for macro def'n
- There is not sufficient memory to store a macro definition.
- %integer constant expected
- A colon appearing after a member name in a structure declaration
- indicates that the member is a bitfield. An integral constant must
- appear after the colon to define the number of bits in the
- bitfield.
- %integer expression required
- In an "enum" declaration, values may be assigned to the members, but
- the expression must evaluate to a constant of type "int".
- %integral argument required
- An integral argument is required for this format specifier. Check
- the number and order of format specifiers and corresponding arguments.
- %integral type required
- This operator requires operands that are of integral type only.
- %invalid disable: *
- This is an internal preprocessor error that should not occur.
-
- %invalid number syntax
- The syntax of a number is invalid. This can be, e.g. use of 8 or 9
- in an octal number, or other malformed numbers.
- %invalid operand size
- The operand size specified for this instruction is
- invalid. Check the programmers reference manual for this chip.
- %invalid short addressing
- Short addressing (e.g. 8 bit PC relative) has been used where this
- is not possible.
- %invalid short addressing override
- A short addressing override has been used in conjunction with an addressing
- mode that makes this invalid.
- %jump out of range
- A short jump ("JR") instruction has been given an address that is more than
- 128 bytes away from the present location. Use the "JP" opcode instead.
- %jump target out of range
- The address that this jump refers to is too far away to be
- reached by this jump. Use a longer jump form, or a short
- branch around a direct jump.
- %label identifier expected
- An identifier denoting a label must appear after "goto".
- %large stack offset for *
- The named variable has been allocated on the stack at an offset greater than
- 128. This will still work correctly, but will result in larger, slower
- code. It is recommended that any auto (local to a function) variables be
- declared before any arrays. Having an array at a large offset does not
- cause any problems.
- %lexical error
- An unrecognized character or token has been seen in the input.
- %line does not have a newline on the end
- The last line in the file is missing the newline (linefeed, hex 0A)
- from the end. Some editors will create such files, which can cause
- problems for include files. The ANSI C standard requires all source
- files to consist of complete lines only.
- %line too long
- This line is too long. It will not fit into the compiler's internal
- buffers. It would require a line over 1000 characters long to do
- this, so it would normally only occur as a result of macro
- expansion.
- %local illegal outside macros
- The "LOCAL" directive is only legal inside macros. It defines local labels
- that will be unique for each invocation of the macro.
- %local psect '*' conflicts with global psect of same name
- A local psect may not have the same name as a global psect.
- %logical type required
- The expression used as an operand to "if", "while" statements or to
- boolean operators like ! and && must be a scalar integral type.
- %long argument required
- A long argument is required for this format specifier. Check the number
- and order of format specifiers and corresponding arguments.
- %macro * wasn't defined
- A macro name specified in a -U option to the preprocessor was not
- initially defined, and thus cannot be undefined.
- %macro argument after % must be absolute
- If the charactyer "%" is used to force evaluation of macro argument, the
- argument must be an expression that evaluates to an absolute constant.
- %macro argument may not appear after local
- The list of labels after the directive "LOCAL" may not include any of the
- formal parameters to the macro.
- %macro expansions nested too deep
- Macro expansions in the assembler are nested too deep. The limit is
- 30 macros and include files nested at one time.
- %macro name used as symbol
- A macro name has been used as a symbol. This is not permitted as the macro
- name does not have a simple value.
- %macro work area overflow
- The total length of a macro expansion has exceeded the size of
- an internal table. This table is normally 8192 bytes long. Thus
- any macro expansion must not expand into a total of more than 8K bytes.
- %member * redefined
- This name of this member of the struct or union has already been
- used in this struct or union.
- %members cannot be functions
- A member of a structure or a union may not be a function. It may be
- a pointer to a function. The correct syntax for a function pointer
- requires the use of parentheses to bind the star ("*") to the
- pointer name, e.g. "int (*name)();".
- %mismatched comparision
- A comparison is being made between a variable or expression and a constant value
- which is not in the range of possible values for that expression, e.g. if
- you compare an unsigned character to the constant value 300, the result will
- always be false (not equal) since an unsigned character can NEVER equal 300.
- As an 8 bit value it can represent only 0-255.
- %misplaced '?' or ':', previous operator is *
- A colon operator has been encountered in a #if expression
- that does not match up with a corresponding ? operator. Check
- parentheses etc.
- %misplaced constant in #if
- A constant in a #if expression should only occur in syntactically
- correct places. This error is most probably caused by omission of
- an operator.
- %missing ')'
- A closing parenthesis was missing from this expression.
- %missing '=' in class spec
- A class spec needs an = sign, e.g.
-
- -Ctext=ROM
- %missing ']'
- A closing square bracket was missing from this expression.
- %missing arg to -u
- The -U (undefine) option needs an argument, e.g.
-
- -U_symbol
- %missing arg to -w
- The -W option (listing width) needs
- a numeric argument.
- %missing argument to 'pragma psect'
- The pragma 'psect' requires an argument of the form oldname=newname
- where oldname is an existing psect name known to the compiler, and
- newname is the desired new name. Example:
-
- #pragma psect bss=battery
- %missing basic type: int assumed
- This declaration does not include a basic type, so int has
- been assumed. This declaration is not illegal, but it is
- preferable to include a basic type to make it clear what
- is intended.
- %missing name after pragma 'printf_check'
- The pragma 'printf_check', which enable printf style format string
- checking for a function, requires a function name, e.g.
-
- #pragma printf_check sprintf
- %missing number after % in -p option
- The % operator in a -p option (for rounding boundaries)
- must have a number after it.
- %missing number after pragma 'pack'
- The pragma 'pack' requires a decimal number as argument. For example
-
- #pragma pack(1)
-
- will prevent the compiler aligning structure members onto anything
- other than one byte boundaries. Use this with caution as some
- processors enforce alignment and will not operate correctly if
- word fetches are made on odd boundaries (e.g. 68000, 8096).
- %missing operand size
- The operand size for this instruction is missing. It must be
- supplied.
- %missing size for align
- The size of alignment required has not been specified. Use
- ALIGN.W for word alignment.
- %missing size for dc
- A DC directive requires a size specifier, e.g. DC.B for byte.
- %mixed 16 and 32 bit index registers
- An indexed addressing mode must use only 16 bit or only
- 32 bit registers. They may not be used together.
- %mod by zero in #if, zero result assumed
- A modulus operation in a #if expression has a zero divisor. The
- result has been assumed to be zero.
- %module has code below file base of *
- This module has code below the address given, but
- the -C option has been used to specify that a binary
- output file is to be created that is mapped to this
- address. This would mean code from this module would have
- to be placed before the beginning of the file! Check for
- missing psect directives in assembler files.
- %multi-byte constant * isn't portable
- Multi-byte constants are not portable, and in fact will be
- rejected by later passes of the compiler (this error comes
- from the preprocessor).
- %multiply defined symbol *
- This symbol has been defined in more than one place in this module.
- %multiply defined symbol: *
- This symbol has been defined in more than one module.
- %negative index offset
- The index offset used here is negative. Index offsets must be
- positive.
- %nested comments
- This warning is issued when nested comments are found.
- A nested comment may indicate that a previous closing comment
- marker is missing or malformed.
- %no #asm before #endasm
- A #endasm operator has been encountered, but there
- was no previous matching #asm.
- %no arg to -o
- The assembler requires that an output file name argument be supplied after
- the "-O" option. No space should be left between the -O and the filename.
- %no case labels
- There are no case labels in this switch!
- %no case labels
- There are no case labels in this switch statement.
- %no end record
- This object file has no end record. This probably means
- it is not an object file.
- %no end record found
- An object file did not contain an end record.
- This probably means the file is corrupted or not an object file.
- %no file argument
- There was no file argument to the assembler.
- %no file arguments
- The assembler has been invoked without any file arguments. It cannot assemble
- anything.
- %no identifier in declaration
- The identifier is missing in this declaration. This error can also
- occur where the compiler has been confused by such things as missing
- closing braces.
- %no memory for string buffer
- P1 was unable to allocate memory for the longest string encountered,
- as it attempts to sort and merge strings. Try reducing the number or length
- of strings in this module.
- %no space for macro def'n
- The assembler has run out of memory.
- %no start record: entry point defaults to zero
- None of the object files passed to the linker contained a start record.
- The start address of the program has been set to zero. This may be
- harmless, but it is recommended that you define a start address in your
- startup module by using the "END" directive.
- %no. of arguments redeclared
- The number of arguments in this function declaration does not agree
- with a previous declaration of the same function.
- %nodecount = *
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %non-constant case label
- A case label in this switch statement has a value which is not
- a constant.
- %non-prototyped function declaration: *
- A function has been declared using old-style (K&R) arguments. It is
- preferable to use prototype declarations for all functions. If the
- function has no arguments, declare it as e.g. "int func(void)".
- %non-scalar types can't be converted
- You can't convert a structure, union or array to anything else. You
- can convert a pointer to one of those things, so perhaps you left out
- an ampersand ("&").
- %non-void function returns no value
- A function that is declared as returning a value has a "return"
- statement that does not specify a return value.
- %not a member of the struct/union *
- This identifier is not a member of the structure or union type with
- which it used here.
- %not a variable identifier: *
- This identifier is not a variable; it may be some other kind of
- object, e.g. a label.
- %not an argument: *
- This identifier that has appeared in a K&R stype argument declarator
- is not listed inside the parentheses after the function name. Check
- spelling.
- %object file is not absolute
- The object file passed to objtohex has relocation items in it.
- This may indicate it is the wrong object file, or that the
- linker or objtohex have been given invalid options.
- %one segment override only permitted
- Only one segment override is permitted in an instruction.
- %only functions may be qualified interrupt
- The qualifier "interrupt" may not be applied to anything except a
- function.
- %only functions may be void
- A variable may not be "void". Only a function can be "void".
- %only lvalues may be assigned to or modified
- Only an lvalue (i.e. an identifier or expression directly denoting
- addressable storage) can be assigned to or otherwise modified. A
- typecast does not yield an lvalue. To store a value of different
- type into a variable, take the address of the variable, convert it
- to a pointer to the desired type, then dereference that pointer,
- e.g. "*(int *)&x = 1" is legal whereas "(int)x = 1" is not.
- %only register storage class allowed
- The only storage class allowed for a function parameter is
- "register".
- %oops! -ve number of nops required!
- An internal error has occured. Contact HI-TECH.
- %operand error
- The operand to this opcode is invalid. Check you assembler reference manual
- for the proper form of operands for this instruction.
- %operand size undefined
- The size of an operand is neither explicitly defined, nor can the
- assembler determine it from register usage. Add an explicit ,word or ,byte
- or whatever.
- %operands of * not same pointer type
- The operands of this operator are of different pointer types. This
- probably means you have used the wrong pointer, but if the code is
- actually what you intended, use a typecast to suppress the error
- message.
- %operands of * not same type
- The operands of this operator are of different pointer. This
- probably means you have used the wrong variable, but if the code is
- actually what you intended, use a typecast to suppress the error
- message.
- %operator * in incorrect context
- An operator has been encountered in a #if expression
- that is incorrectly placed, e.g. two binary operators are
- not separated by a value.
- %option not supported
- This is option is currently not supported.
- %out of far memory
- The compiler has run out of far memory. Try removing TSR's etc. If your
- system supports EMS memory, the compiler will be able to use up to 64K
- of this, so if it is not enable, try enabling EMS.
- %out of far memory (wanted * bytes)
- The code generator could not allocate any more far memory. Try reducing
- the memory used by TSR's etc.
- %out of memory
- The compiler has run out of memory. If you have unnecessary TSRs
- loaded, remove them. If you are running the compiler from inside
- another program, try running it directly from the command prompt.
- Similarly, if you are using HPD, try using the command line compiler
- driver instead.
- %out of near memory
- The compiler has run out of near memory. This is probably due to
- too many symbol names. Try splitting the program up, or reducing
- the number of unused symbols in header files etc.
- %out of space in macro * arg expansion
- A macro argument has exceeded the length of an internal
- buffer. This buffer is normally 4096 bytes long.
- %output file cannot be also an input file
- The linker has detected an attempt to write its output file
- over one of its input files. This cannot be done, because it needs to
- simultaneously read and write input and output files.
- %page width must be >= 41
- The listing page widthe must be at least 41 characters. Any less will not
- allow a properly formatted listing to be produced.
- %phase error
- The assembler has calculated a different value for a symbol
- on two different passes. This is probably due to bizarre use
- of macros or conditional assembly.
- %phase error in macro args
- The assembler has detected a difference in the definition of a symbol on
- the first and a subsequent pass.
- %phase error on temporary label
- The assembler has detected a difference in the definition of a symbol on
- the first and a subsequent pass.
- %pointer required
- A pointer is required here. This often means you have used "->" with
- a structure rather than a structure pointer.
- %pointer to * argument required
- A pointer argument is required for this format specifier. Check the number
- and order of format specifiers and corresponding arguments.
- %pop immediate illegal
- It is not possible to pop into an immediate value.
- %pop of allreg!!
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %pop of register *
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %popreg - bad reg *(*)
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %popreg - bad reg
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %popreg - trying to pop * with 0* regbits - can't do it!
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %portion of expression has no effect
- Part of this expression has no side effects, and no effect on
- the value of the expression.
- %possible pointer truncation
- A pointer qualifed "far" has been assigned to a default pointer or a
- pointer qualified "near", or a default pointer has been assigned to
- a pointer qualified "near". This may result in truncation of the
- pointer and loss of information, depending on the memory model in
- use.
- %preprocessor assertion failure
- The argument to a preprocessor #assert directive has evaluated
- to zero. This is a programmer induced error.
- %probable missing '}' in previous block
- The compiler has encountered what looks like a function or other
- declaration, but the preceding function has not been ended with a
- closing brace. This probably means that a closing brace has been
- omitted from somewhere in the previous function, although it may
- well not be the last one.
- %psect * cannot be in classes *
- A psect cannot be in more than one class.
- %psect * in more than one group
- This psect has been defined to be in more than one group.
- %psect * not loaded on * boundary
- This psect has a relocatability requirement that is not
- met by the load address given in a -P option. For
- example if a psect must be on a 4K byte boundary, you
- could not start it at 100H.
- %psect * not relocated on * boundary
- This psect is not relocated on the required
- boundary. Check the relocatability of the psect and correct
- the -p option. if necessary.
- %psect * not specified in -p option
- This psect was not specified in a "-P" option to the linker. It has
- been linked at the end of the program, which is probably not where
- you wanted it.
- %psect * re-orged
- This psect has had its start address specified
- more than once.
- %psect * selector value redefined
- The selector value for this psect has been defined more than once.
- %psect * type redefined: *
- This psect has had its type defined differently by different modules.
- This probably means you are trying to link imcompatible object modules,
- e.g. linking 386 flat model code with 8086 real mode code.
- %psect exceeds max size: *
- The psect has more bytes in it than the maximum allowed.
- %psect is absolute: *
- This psect is absolute and should not have an address specified in
- a -P option.
- %psect may not be local and global
- A psect may not be declared to be local if it has already been declared to
- be (default) global.
- %psect origin multiply defined: *
- The origin of this psect is defined more than once.
- %psect property redefined
- A property of a psect has been defined in more than place to be
- different.
- %psect reloc redefined
- The relocatability of this psect has been defined differently
- in two or more places.
- %psect selector redefined
- The selector associated with this psect has been defined differently
- in two or more places.
- %psect size redefined
- The maximum size of this psect has been defined differently
- in two or more places.
- %push of allreg!!
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %push of register *
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %pushreg - bad reg
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %pushreg - bad reg *(*)
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %pushreg - trying to push * with 0* regbits - can't do it!
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %radix value out of range
- The value given for the current radix is out of range. It must
- be between 2 and 16.
- %read error on *
- The linker encountered an error trying to read this file.
- %record too long
- This indicates that the object file is not a valid
- HI-TECH object file.
- %record too long: *
- An object file contained a record with an illegal size.
- This probably means the file is corrupted or not an object file.
- %recursive macro definition of *
- The named macro has been defined in such a manner that
- expanding it causes a recursive expansion of itself!
- %redefining macro *
- The macro specified is being redefined, to something different
- to the original definition. If you want to deliberately redefine
- a macro, use #undef first to remove the original definition.
- %redundant & applied to array
- The address operator "&" has been applied to an array. Since using
- the name of an array gives its address anyway, this is unnecessary
- and has been ignored.
- %reginit!!!???
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %regused - bad arg to g
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %relocation error
- It is not possible to add together two relocatable quantities. A constant
- may be added to a relocatable value, and two relocatable addresses in the
- same psect may be subtracted. An absolute value must be used in various
- places where the assembler must know a value at assembly time.
- %relocation offset * out of range 0..*
- An object file contained a relocation record with a relocation offset
- outside the range of the preceding text record. This means the object
- file is probably corrupted.
- %relocation too complex
- The complex relocation in this expression is too big to be inserted
- into the object file.
- %remsym error
- Internal error. Contact HI-TECH technical support.
- %rept argument must be >= 0
- The argument to a "REPT" directive must be greater than zero.
- %restore without matching save
- A restore (to restore options) has been done before a corresponding save.
- %revlog - bad op
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %save/restore too deep
- The save directive has been used too many times without matching
- restores.
- %scale value invalid
- The scale value in the operand is invalid. It may only be 1, 2, 4
- or 8.
- %scale value must be a constant
- The scale value in an operand must be an absolute constant.
- %seek error: *
- The linker could not seek when writing an output file.
- %segment * overlaps segment *
- The named segments have overlapping code or data. Check the addresses being
- assigned by the "-P" option.
- %signatures do not match: *
- The specified function has different signatures in different modules.
- This means it has been declared differently, e.g. it may have been
- prototyped in one module and not another. Check what declarations for
- the function are visible in the two modules specified and make sure they
- are compatible.
- %signed bitfields not supported
- Only unsigned bitfields are supported. If a bitfield is declared to
- be type "int", the compiler still treats it as unsigned.
- %simple integer expression required
- A simple integral expression is required after the operator "@",
- used to associate an absolute address with a variable.
- %simple type required for *
- A simple type (i.e. not an array or structure)is required as an operand to this operator.
- %size error
- You have attempted to store a value in a space that is too small, e.g. trying
- to initialize a byte location with an address that is 16 bits.
- %sizeof yields 0
- The code generator has taken the size of an object and found
- it to be zero. This almost certainly indicates an error
- in your declaration of a pointer, e.g. you may have declared
- a pointer to a zero length array. In general, pointers to arrays
- are of little use. If you require a pointer to an array of objects
- of unknown length, you only need a pointer to a single object
- that can then be indexed or incremented.
- %storage class illegal
- A structure or union member may not be given a storage class. Its
- storage class is determined by the storage class of the structure.
- %storage class redeclared
- A variable or function has been re-declared with a different storage
- class. This can occur where there are two conflicting declarations,
- or where an implicit declaration is followed by an actual
- declaration.
- %strange character * after ##
- A character has been seen after the token catenation operator
- ## that is neither a letter nor a digit. Since the result of this
- operator must be a legal token, the operands must be tokens containing
- only letters and digits.
- %strange character after # *
- There is an unexpected character after #.
- %string expected
- The operand to an "asm" statement must be a string enclosed in
- parentheses.
- %string too long
- This string is too long. Shorten it.
- %struct/union member expected
- A structure or union member name must follow a dot (".") or arrow
- ("->").
- %struct/union redefined: *
- A structure or union has been defined more than once.
- %struct/union required
- A structure or union identifier is required before a dot (".").
- %struct/union tag or '{' expected
- An identifier denoting a structure or union or an opening brace must
- follow a "struct" or "union" keyword.
- %structure too big for function return
- The size of the structure type of this function is too big to allow
- the code generator to generate code to return it.
- %symbol * cannot be global
- There is an error in an object file, where a local symbol has been
- declared global. This is either an invalid object file, or an internal
- error in the linker. Try recreating the object file.
- %symbol * has erroneous psect: *
- There is an error in an object file, where a symbol has an invalid psect.
- This is either an invalid object file, or an internal
- error in the linker. Try recreating the object file.
- %symbol * is not external
- This symbols is not external, and should not be in an EXTERN directive.
- It is probably defined locally, and thus should be PUBLIC or GLOBAL.
- %symbol * not defined in #undef
- The symbol supplied as argument to #undef was not already defined.
- This is a warning only, but could be avoided by including the
- #undef in a #ifdef ... #endif block.
- %syntax error
- A syntax error has been detexted. This could be caused a number of things.
- %syntax error in -a spec
- The -A spec is invalid. A valid -A spec should be
- something like:
-
- -AROM=1000h-1FFFh
- %syntax error in checksum list
- There is a syntax error in a checksum list read by the linker. The
- checksum list is read from standard input by the linker, in response
- to an option. Re-read the manual on checksum listt.
- %text does not start at 0
- Code in some things must start at zero. Here it doesn't.
- %text offset too low
- You aren't likely to see this error. Rhubarb!
- %text record has bad length: *
- There is an error in an object file.
- This is either an invalid object file, or an internal
- error in the linker. Try recreating the object file.
- %text record has length too small: *
- This indicates that the object file is not a valid
- HI-TECH object file.
- %this function too large - try reducing level of optimization
- A large function has been encountered when using a -Og (global
- optimization) switch. Try re-compiling without the
- global optimization, or reduce the size of the function.
- %this is a struct
- This identifier following a "union" or "enum" keyword is already the tag
- for a structure, and thus should only follow the keyword "struct".
- %this is a union
- This identifier following a "struct" or "enum" keyword is already the tag
- for a union, and thus should only follow the keyword "union".
- %this is an enum
- This identifier following a "struct" or "union" keyword is already the tag
- for an enumerated type, and thus should only follow the keyword "enum".
- %too few arguments
- This function requires more arguments than are provided in this
- call.
- %too few arguments for format string
- There are too few arguments for this format string. This would result
- in a garbage value being printed or converted at run time.
- %too many (*) enumeration constants
- There are too many enumeration constants in an enumerated type.
- The maximum number of enumerated constants allowed in an enumerated
- type is 512.
- %too many (*) structure members
- There are too many members in a structure or union. The maximum number
- of members allowed in one structure or union is 512.
- %too many arguments
- This function does not accept as many arguments as there are here.
- %too many arguments for format string
- There are too many arguments for this format string. This is harmless,
- but may represent an incorrect format string.
- %too many arguments for macro
- A macro may only have up to 31 parameters, as per the C Standard.
- %too many arguments in macro expansion
- There were too many arguments supplied in a macro invocation.
- The maximum number allowed is 31.
- %too many cases in switch
- There are too many case labels in this switch statement. The maximum
- allowable number of case labels in any one switch statement is 511.
- %too many comment lines - discarding
- The compiler is generating assembler code with embedded comments,
- but this function is so large that an excessive number of source
- line comments are being generated. This has been suppressed so
- that the optimizer will not run out of memory loading comment lines.
- %too many errors
- There were so many errors that the compiler has given up. Correct
- the first few errors and many of the later ones will probably go away.
- %too many include directories
- A maximum of 7 directories may be specified for the preprocessor
- to search for include files.
- %too many initializers
- There are too many initializers for this object. Check the number of
- initializers against the object definition (array or structure).
- %too many macro parameters
- There are too many macro parameters on this macro definition.
- %too many nested #* statements
- #if, #ifdef etc. blocks may only be nested to a maximum
- of 32.
- %too many psect class specifications
- There are too many psect class specifications (-C options)
- %too many psect pragmas
- Too many "pragma psect" directives have been used.
- %too many psects
- There are too many psects! Boy, what a program!
- %too many qualifier names
- There are too many qualifier names specified.
- %too many relocation items
- Objtohex filled up a table. This program is just way
- too complex!
- %too many segment fixups
- There are too many segment fixups in the object file given to objtohex.
- %too many segments
- There are too many segments in the object file given to objtohex.
- %too many symbols
- There are too many symbols for the assemblers symbol table. Reduce the number
- of symbols in your program. If it is the linker producing this error,
- suggest changing some global to local symbols.
- %too many temporary labels
- There are too many temporary labels in this assembler file. The assembler
- allows a maximum of 2000 temporary labels.
- %too may symbols
- There are too many symbols for the assemblers symbol table. Reduce the number
- of symbols in your program.
- %too much indirection
- A pointer declaration may only have 16 levels of indirection.
- %too much pushback
- This error should not occur, and represents an internal
- error in the preprocessor.
- %type conflict
- The operands of this operator are of incompatible types.
- %type redeclared
- The type of this function or object has been redeclared. This can
- occur because of two incompatible declarations, or because an
- implicit declaration is followed by an incompatible declaration.
- %type specifier reqd. for proto arg
- A type specifier is required for a prototyped argument. It is not
- acceptable to just have an identifier.
- %unbalanced paren's, op is *
- The evaluation fo a #if expression found mismatched parentheses.
- Check the expression for correct parenthesisation.
- %undefined enum tag: *
- This enum tag has not been defined.
- %undefined label: *
- This label has not been defined anywhere in the current function. Check
- for spelling errors.
- %undefined operand size
- The size of the operand to this instruction was not defined.
- Use ",byte" or ",word", or ",dword" as appropriate.
- %undefined public symbol *
- A symbol declared PUBLIC is not defined in this module. Use GLOBAL or EXTRN
- or define the symbol.
- %undefined shift (* bits)
- An attempt has been made to shift a value by a number of bits equal to or
- greater than the number of bits in the data type, e.g. shifting a long by
- 32 bits. This will produce an undefined result on many processors. This is
- non-portable code and is flagged as having undefined results by the C Standard.
- %undefined struct/union
- This structure or union tag is undefined. Check spelling etc.
- %undefined struct/union: *
- The specified structure or union tag is undefined. Check spelling
- etc.
- %undefined symbol *
- The named symbol is not defined, and has not been specified "GLOBAL".
- %undefined symbol * in #if, 0 used
- A symbol on a #if expression was not a defined preprocessor
- macro. For the purposes of this expression, its value has been
- taken as zero.
- %undefined symbol:
- The symbol following is undefined at link time. This could be due
- to spelling error, or failure to link an appropriate module.
- %undefined symbols:
- A list of symbols follows that were undefined at link time.
- %undefined temporary label
- A temporary label has been referenced that is not defined. Note that a temporary
- label must have a number >= 0.
- %undefined variable: *
- This variable has been used but not defined at this point
- %unexpected end of file
- This probably means an object file has been truncated because of
- a lack of disk (or RAMdisk) space.
- %unexpected eof
- An end-of-file was encountered unexpectedly. Check syntax.
- %unexpected text in #control line ignored
- This warning occurs when extra characters appear on the end of
- a control line, e.g.
-
- #endif something
-
- The "something" will be ignored, but a warning is issued. It is
- preferable (and in accordance with Standard C) to enclose the
- "something" as a comment, e.g.
-
- #endif /* something */
- %unknown predicate *
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %unknown addressing mode
- This addressing mode is not recognized by the assembler
- %unknown arg to opt
- This argument to OPT is not recognized.
- %unknown arg type to lpsize
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %unknown complex operator *
- There is an error in an object file. This is either an invalid object
- file, or an internal error in the linker. Try recreating the object file.
- %unknown directive
- This directive is not known to the assembler.
- %unknown fnrec type *
- This indicates that the object file is not a valid
- HI-TECH object file.
- %unknown option *
- This option to the preprocessor is not recognized.
- %unknown pragma *
- An unknow pragma directive was encountered.
- %unknown psect: *
- This psect has been listed in a -P option, but is not defined
- in any module within the program.
- %unknown record type: *
- An invalid object module has been read by the linker. It is either
- corrupted or not an object file.
- %unreachable code
- This section of code will never be executed, because there is no
- execution path by which it could be reached. Look for missing "break"
- statements inside a control structure like "while" or "for".
- %unreasonable matching depth
- This is an internal code generator error. Contact HI-TECH technical
- support with full details of the code that caused this error.
- %unrecognized argument to opt
- This argument to OPT is not recognized.
- %unrecognized option to -o: *
- The code generator has been given a -O option with an unknown
- modifier.
- %unrecognized option to -z: *
- The code generator has been passed a -Z option it does not understand.
- This should not happen if it is invoked with the standard driver.
- %unrecognized qualifer name after 'strings'
- The pragma 'strings' requires a list of valid qualifer names. For
- example
-
- #pragma strings const code
-
- would add const and code to the current string qualifiers. If no
- qualifiers are specified, all qualification will be removed from
- subsequent strings. The qualifer names must be recognized by the
- compiler.
- %unterminated #if[n][def] block from line *
- A #if or similar block was not terminated with a matching
- #endif. The line number is the line on which the #if block
- began.
- %unterminated macro arg
- An argument to a macro is not terminated. Note that angle brackets ("<>") are
- used to quote macro arguments.
- %unterminated string
- A string constant appears not to have a closing quote missing.
- %unterminated string in macro body
- A macro definition contains a string that lacks a closing
- quote.
- %unused constant: *
- This enumerated constant is never used. Maybe it isn't needed at all.
- %unused enum: *
- This enumerated type is never used. Maybe it isn't needed at all.
- %unused label: *
- This label is never used. Maybe it isn't needed at all.
- %unused member: *
- This structure member is never used. Maybe it isn't needed at all.
- %unused structure: *
- This structure tag is never used. Maybe it isn't needed at all.
- %unused typedef: *
- This typedef is never used. Maybe it isn't needed at all.
- %unused union: *
- This union type is never used. Maybe it isn't needed at all.
- %unused variable declaration: *
- This variable is never used. Maybe it isn't needed at all.
- %unused variable definition: *
- This variable is never used. Maybe it isn't needed at all.
- %variable may be used before set: *
- This variable may be used before it has been assigned a value. Since it is
- an auto variable, this will result in it having a random value.
- %void function cannot return value
- A void function cannot return a value. Any "return" statement should
- not be followed by an expression.
- %while expected
- The keyword "while" is expected at the end of a "do" statement.
- %work buffer overflow *
- An internal preprocessor buffer has been filled. This buffer has a
- size of 4096 bytes.
- %write error (out of disk space?) *
- Probably means that the hard disk or RAM disk is
- full.
- %write error on *
- A write error occured on the named file. This probably means you have
- run out of disk space.
- %write error on object file
- An error was reported when the assembler was attempting to write an object file.
- This probably means there is not enough disk space.
- %wrong number of macro arguments for * - * instead of *
- A macro has been invoked with the wrong number of arguments.
- %{ expected
- An opening brace was expected here.
- %} expected
- A closing brace was expected here.
-