-- errors.xref
-- Satterthwaite January 7, 1986 9:43:17 am PST

** general purpose errors (no parameters)

--compilerError,
"FATAL COMPILER ERROR",
compilerError E 10459 CompilerSequencer  DoTransaction
any uncaught signal

--unimplemented,
"unimplemented construct",
unimplemented E 8326 Pass2  DeclItem
unexpected op in decl context
unimplemented E 20337 Pass2  Stmt
unexpected op in stmt context
unimplemented E 24233 Pass2  Exp
unexpected op in exp context
unimplemented E 17639 Pass3D  TypeAttr
PAINTED attribute
unimplemented E 4337 Pass3I  CompleteRCType
[union or sequence type as argument]
unimplemented E 5581 Pass3I  EnterComposite
[sequence type as argument]
unimplemented E 5648 Pass3I  EnterComposite
[union as argument disallowed, unless value is empty]
unimplemented E 6480 Pass3M  MiscStmt
unexpected op in stmt context
unimplemented E 11650 Pass3M  MiscXfer
unexpected op in exp context
unimplemented E 14729 Pass3M  Create
unable to find program type for FRAME argument of NEW (old form)
unimplemented E 23042 Pass3Xb  Exp
free variable from a non-imported interface (eg, default) [appears unreachable]
unimplemented E 29463 Pass3Xb  Exp
unexpected op in exp context
unimplemented E 5847 Pass3Xc  Addr
passing an RC value by VAR
unimplemented E 6040 Pass3Xc  Addr
@ yielding VAR
unimplemented E 11596 Pass4D  TypeExp
VAR type constructors
unimplemented E 11553 Pass4S  Stmt
unexpected op in stmt context
unimplemented E 7805 Pass4Xa  ExtractValue
selection of unaligned field across word boundary, from a constant
unimplemented E 3909 Pass4Xc  TypeOp
unexpected op in type attr context
unimplemented E 7806 Pass4Xc  MiscXfer
unexpected op in exp context
unimplemented E 9385 Pass4Xc  AddrOp
unexpected op in exp context
unimplemented E 5387 Statement  StatementTree
unexpected op in stmt context

--other,
"unspecified error",

--aborted,
"compilation aborted",
aborted E 10339 CompilerSequencer  DoTransaction
user abort (between phases)


** errors with no parameters

--arraySize,
"variable or field too large",
arraySize E 11894 Pass4D  TypeExp
array type with size > (2^32-1)/16
arraySize E 2861 Pass4L  BitsForType
array type with size > (2^16-1)/16

--attrClash
"invalid attribute combination",
attrClash E 11725 Pass2  TypeExp
MONITORED + MACHINE DEPENDENT
attrClash E 17175 Pass2  TagField
SEQUENCE with implicit tag type
attrClash E 18612 Pass2  Sequence
SEQUENCE with OVERLAID tag
attrClash E 23154 Pass3D  ProcessField
COMPUTED SEQUENCE with RC components

--bodyType,
"illegal initialization to body",
bodyType E 6505 Pass3D  InitialExp
body for non-PROC, non-PROGRAM type
bodyType E 8109 Pass3D  CheckBodyType
body for PROC with ANY as arg or result type

--catchLabel,
"misplaced RETRY or CONTINUE",
catchLabel E 4426 Pass3S  Body
OPEN or decl list in a body
catchLabel E 5588 Pass3S  Body
[backstop ?]
catchLabel E 6704 Pass3S  Scope
decl list in block
catchLabel E 22425 Pass3S  OpenItem
OPEN item

--descriptor,
"misused DESCRIPTOR",
descriptor E 18842 Pass3D  TypeAttr
DESCRIPTOR FOR non-array type

--discrimForm,
"incorrect discrimination",
discrimForm E 13799 Pass3S  CaseItem
decl as a switching (non-binding) case label
discrimForm E 8775 Pass3V  BindItem
ditto, for old form of variant discrimination
discrimForm E 9221 Pass3V  BindItem
non-decl as a binding label, for new form of variant discrimination
discrimForm E 10492 Pass3V  Discrimination
binding of selector to id in new form of variant discrimination

--exit,
"misplaced EXIT or LOOP",
exit E 11848 Pass3S  Stmt
not within a loop

--illDefinedReturn,
"default return of anonymous value",
illDefinedReturn E 26047 Pass3M  Resume
RESUME with implicit value that is anonymous
illDefinedReturn E 21529 Pass3S  Return
RETURN with implicit value that is anonymous and not defaulted

--implicitCall,
"implicit system call",
implicitCall E 7174 PeepholeZ  PeepZ
KFCB with /y switch

--indexType,
"illegal index type",
indexType E 18622 Pass3D  TypeAttr
index type of ARRAY cannot be LONG
indexType E 19634 Pass3D  TypeAttr
SEQUENCE with LONG tag field

--inlineChecked,
"MACHINE CODE cannot be CHECKED",
inlineChecked E 6920 Pass3D  InitialExp
ok

--inlineType,
"illegal initialization to MACHINE CODE",
inlineType E 6871 Pass3D  InitialExp
INLINE body for non-PROC type

--instLength,
"instruction has incorrect length",
instLength E 10450 Calls  PickUpByte
operand count for MACHINE CODE op exceeds 8
instLength W 10627 Calls  CodeInline
incorrect operand count for MACHINE CODE op

--interfaceString,
"string literals not permitted in DEFINITIONS",
interfaceString E 23614 Pass3Xb  Exp
STRING literal in an interface

--keys,
"keywords not permitted",
keys E 9938 Pass3M  ListCons
LIST
keys E 24288 Pass3Xa  UniOperand
BASE pointer, ARRAY, SEQUENCE indexing; enumeration literals
keys E 28249 Pass3Xa  RowCons
row constructor for array with empty or ill-formed enumeration index type
keys E 28278 Pass3Xa  RowCons
row constructor for array with numeric index type

--long,
"misused LONG",
long E 21097 Pass3D  TypeAttr
LONG applied to other than INTEGER, UNSPECIFIED, CARDINAL, pointer or descriptor type
long E 21191 Pass3D  TypeAttr
ditto
long E 21219 Pass3D  TypeAttr
ditto

--longPath,
"must be in MDS",
longPath E 18711 Pass3Xa  Apply
call using port not in MDS

--machDep,
"type must be MACHINE DEPENDENT",
machDep E 17945 Pass3D  TypeAttr
enumeration representation specified without MACHINE DEPENDENT attribute

--misplacedCatch,
"misplaced catch phrase",
misplacedCatch E 3565 Pass3M  MiscStmt
catch phrase on RETURN WITH ERROR
misplacedCatch E 23491 Pass3Xa  Apply
catch phrase on non-xfer apply (wait, reloc, seqindex, dindex, index, *cons)
misplacedCatch E 24621 Pass3Xa  ForceXfer
ditto

--misplacedEntry,
"unmonitored ENTRY or INTERNAL",
misplacedEntry E 4875 Pass2  SetEntryAttr
ok

--misplacedMonitorRef,
"unmonitored WAIT or NOTIFY",
misplacedMonitorRef E 4206 Pass3M  MiscStmt
ok, NOTIFY or BROADCAST
misplacedMonitorRef E 18203 Pass3M  Wait
ok, WAIT

--misplacedResume,
"illegal REJECT or RESUME",
misplacedResume E 3691 Pass3M  MiscStmt
RESUME not in catch phrase
misplacedResume E 25794 Pass3M  Resume
RESUME of error case or ANY

--misplacedReturn,
"illegal RETURN",
misplacedReturn E 3152 Pass3M  MiscStmt
RETURN WITH ERROR in catch phrase
misplacedReturn E 21285 Pass3S  Return
RETURN in a catch phrase or PROGRAM body

--misplacedStop,
"illegal STOP",
misplacedStop E 4048 Pass3M  MiscStmt
STOP not in PROGRAM body, or PROGRAM returns a result

--misplacedType,
"misplaced opaque type declaration",
misplacedType E 16724 Pass3D  TypeLink
opaque type not in DEFINITIONS module or not at top level or not as type part of a decl

--mixedPositions,
"mixed explicit and implicit field positions",
mixedPositions E 22125 Pass3D  AssignedPositions
ok (in MACHINE DEPENDENT records)

--noAccess,
"attempt to access private fields",
noAccess E 19461 Pass3M  LockVar
private LOCK field needed from a variant record (no hti)
noAccess E 11571 Pass3V  Discrimination
private variant part in a record discrimination (no hti)
noAccess E 6179 Pass3Xa  MatchFields
ditto (whole record, no sei)
noAccess E 11365 Pass3Xa  Extract
ditto (whole record, no sei)

--nonOrderedType,
"index or interval type must be ordered",
nonOrderedType E 18562 Pass3D  TypeAttr
index type of ARRAY
nonOrderedType E 20755 Pass3D  TypeAttr
base type for subrange
nonOrderedType E 1871 Pass3Xc  Range
base type for range

--nonTypeCons,
"unrecognizable type constructor",
nonTypeCons E 14803 Pass2  TypeExp
unexpected op in type exp
nonTypeCons E 12012 Pass3M  MakeFrameRecord
FRAME[ ] applied to non-PROGRAM and non-PROC object

--nonVoidStmt,
"procedure used as a statement returns a value",
nonVoidStmt E 2913 Pass3M  MiscStmt
SIGNAL, ERROR, START, JOIN returns value
nonVoidStmt E 10673 Pass3S  Stmt
application returns value

--opaqueTest,
"discrimination on opaque types is unimplemented",
opaqueTest W 8920 Pass3V  BindItem
unimplemented NARROW operation (to type in binding decl)
opaqueTest W 15532 Pass3Xb  TypeTest
unimplemented NARROW operation (NARROW, ISTYPE)

--relative,
"misused RELATIVE",
relative E 19814 Pass3D  TypeAttr
BASE type is not a pointer type
relative E 19985 Pass3D  TypeAttr
qualified type is not a pointer or descriptor type

--stateVector,
"state vector has improper offset",
stateVector E 6625 Statement  DLState
uplevel addressing
stateVector E 6698 Statement  DLState
frame offset out of bounds
stateVector E 6759 Statement  DLState
not in local frame

--staticNesting,
"body or catch phrase nested too deeply",
staticNesting E 2147 Pass2  P2Unit
ok, max = 15
staticNesting E 19435 Pass3P  EnterBody
from expanding inline

--subrangeNesting,
"interval bounds are out of range",
subrangeNesting E 20675 Pass3D  TypeAttr
base type of subrange cannot be REAL
subrangeNesting E 13834 Pass4D  TypeExp
subrange of unsigned type with bound < 0
subrangeNesting E 14029 Pass4D  TypeExp
improperly nested subrange of subrange

--unsafeBlock,
"improper use of an unsafe block",
unsafeBlock E 8173 Pass3D  CheckBodyType
UNCHECKED body for a SAFE proc
unsafeBlock E 24383 Pass3M  CatchBody
UNCHECKED catch arm for a SAFE signal
unsafeBlock E 10864 Pass3S  Stmt
UNCHECKED block used in a CHECKED enclosing block or body
unsafeBlock E 12214 Pass3S  Stmt
UNCHECKED block used as argument of CHECKED

--var,
"misused VAR",
var E 18396 Pass3D  TypeAttr
VAR allowed only for type in decl item at top level of DEFINITIONS module


** errors mapping hash to sei parameters

--unknownId,
"is undeclared",
unknownId E 6000 Pass3B  IncludedId
in a USING list
unknownId E 6431 Pass3B  Sharing
module id in SHARES list
unknownId E 18684 Pass3I  FindSe
no binding for (unqualified) identifier in current context
unknownId E 25220 Pass3Xb  Exp
missing enumeration literal in coercion from ATOM literal

--unknownField,
"is not valid as a field selector",
unknownField E 14903 Pass3D  TypeLink
qualified type id
unknownField E 16377 Pass3Xa  DotExpr
qualified id in expr


** errors with hash parameters

--ambiguousId,
"is ambiguous without discrimination",
ambiguousId E 18574 Pass3I  FindSe
unqualified id used in multiple variants of an OVERLAID variant record
ambiguousId E 16467 Pass3Xa  DotExpr
qualified id used in multiple variants of an OVERLAID variant record

--duplicateId,
"is multiply defined",
duplicateId E 2085 Pass2  P2Unit
in a decl seq
duplicateId E 5771 Pass3B  IncludedId
in a USING list
duplicateId E 26721 Pass3I  CheckDisjoint
in decl sequences that must be disjoint (args, results, outermost locals)

--missingImport,
"is an unmatched implicit import",
missingImport E 10607 Pass3B  SetDefaultImport
implicit import not allowed
missingImport E 10755 Pass3B  SetDefaultImport
adding implicit import creates a name clash
missingImport E 11094 Pass3B  SetDefaultImport
multiple imported instances

--unknownTag,
"is not a legal variant tag",
unknownTag E 25778 Pass3D  TagValue
unknown label on a variant part

--duplicateTag,
"labels multiple variants",
duplicateTag E 18122 Pass2  Union
in a decl

--unknownVariant,
"does not name a variant",
unknownVariant E 13223 Pass3D  TypeDiscrim
unknown id as qualifier of variant type
unknownVariant E 13304 Pass3D  TypeDiscrim
non-id as qualifier of variant type (T[x])
unknownVariant E 12637 Pass3V  TestItem
unknown id as label in a variant record discrimination (old form)

--unknownKey,
"is not valid as a key",
unknownKey E 12780 Pass3I  ArrangeKeys
in a keyword constructor

--duplicateKey,
"is repeated as a key",
duplicateKey E 12148 Pass3I  DuplicateItem
in a keyword constructor

--omittedKey,
"cannot be defaulted",
omittedKey E 6643 Pass3Xa  OmittedValue
record constructor
omittedKey E 27851 Pass3Xa  OmittedValue
array constructor

--openId,
"must label a record",

--fileName,
"cannot be opened",
fileName E 1717 Pass3  P3Unit
included BCD (assorted problems, including bad version passwords)
fileName W 25545 Pass4B  MatchBCD
old BCD (for module replacement)

--fileWrong,
"found in wrong version",
fileWrong E 1785 Pass3  P3Unit
ok

--moduleId,
"is not a module name",
moduleId E 4458 Pass3B  DirectoryItem
DIRECTORY id does not match module id


** errors with sei parameters

--addressOverflow,
"exceeds addressing limits",
addressOverflow E 9850 OutCode  DoString
allocating STRING literals (global frame)
addressOverflow E 11239 OutCode  InsertStrings
allocating STRING literals (local frame)
addressOverflow E 12208 OutCode  ProcessLocalStrings
ditto
addressOverflow E 5591 Pass4L  WordsForField
frame variable with type having size > (2^16-1)/16
addressOverflow E 13093 Pass4L  CheckFrameOverflow
adding storage for variable makes frame too big (local or global)
addressOverflow E 13139 Pass4L  CheckFrameOverflow
adding storage for nested proc descriptor makes frame too big (local)
addressOverflow E 17084 Pass4L  BitsForField
record field with type having size > (2^16-1)/16
addressOverflow E 18283 Pass4L  AssignField
record type with size > 2^16/16
addressOverflow E 18569 Pass4L  AssignField
ditto
addressOverflow E 3966 VarTemp  GenStringBodyLex
allocating string storage (global frame, old style string constructors)
addressOverflow E 4223 VarTemp  BumpTemps
allocating temporary storage (local frame)

--circularType,
"leads to a circular type definition",
circularType E 10748 Pass3D  TypeSymbol
disallowed circular type definition (SIZE is indeterminite or infinite)

--circularValue,
"has ill-defined or circular value",

--elision,
"cannot be defaulted or voided",
elision E 5769 Pass3Xa  EvaluateField
record constructor
elision E 29364 Pass3Xa  VoidComponent
ALL, row constructor

--enumOrder,
"is out of order",
enumOrder E 15242 Pass4D  AssignElement
repr value out of lexical order in MACHINE DEPENDENT enumeration

--exportAttr,
"is exported with incorrect attributes",
exportAttr E 17515 Pass4B  ExportId
opaque type with length known and nonstandard basic ops (decl, init, ←, =)

--exportClash,
"is exported with incorrect type",
exportClash E 15959 Pass4B  ExportId
value has type not assignable to interface item
exportClash E 16765 Pass4B  ExportId
value has type not equivalent to interface VAR
exportClash E 17010 Pass4B  ExportId
value has READONLY attribute and interface VAR does not
exportClash E 17227 Pass4B  ExportId
value exported to an opaque type is not a type or is itself opaque

--fieldPosition,
"has invalid field width or alignment",
fieldPosition E 16419 Pass4D  AssignPosition
in MACHINE DEPENDENT record
fieldPosition E 24431 Pass4L  CheckVariants
tag field not specified at origin of variant part in MACHINE DEPENDENT record
fieldPosition E 24781 Pass4L  CheckVariants
size of union part unequal to size of biggest variant in MACHINE DEPENDENT record
fieldPosition E 25124 Pass4L  CheckSequence
tag field not specified at origin of sequence part in MACHINE DEPENDENT record
fieldPosition E 25245 Pass4L  CheckSequence
sequence components not word aligned in MACHINE DEPENDENT record
fieldPosition E 25399 Pass4L  CheckSequence
size of sequence part unequal to size of zero-element sequence in MACHINE DEPENDENT record

--forwardRef,
"is used before set",

--internalCall,
"is a misused INTERNAL",
internalCall E 16795 Pass3M  Fork
FORKing an INTERNAL procedure inside an ENTRY or INTERNAL body
internalCall E 18570 Pass3Xa  Apply
call of an INTERNAL procedure not within an ENTRY or INTERNAL body

--missingBase,
"requires a base value",
missingBase E 7732 Pass3I  Id
[how does this happen]

--missingInit,
"requires an initial value",
missingInit E 5321 Pass3D  DeclBInit
decl has a type part that demands an initial value
missingInit E 7856 Pass3M  New
NEW has a type argument that demands an initial value
missingInit E 7942 Pass3S  AssignDefault
field of a return record has a type that demands an initial value

--missingLock,
"required for lock",
missingLock E 21063 Pass3M  CopyLock
ENTRY procedure does not have an argument matching formal of LOCKS clause

--nonDefinition,
"improperly defined for a DEFINITIONS module",
nonDefinition E 8014 Pass3B  ImportItem
named IMPORT in a DEFINITIONS module
nonDefinition E 6758 Pass4D  CheckDefinition
improper initialization in a DEFINITIONS module (non-inline body, etc.)
nonDefinition E 3661 Pass4S  Body
nested proc body in a DEFINTIONS module

--nonTagType,
"has a type illegal for a tag",
nonTagType E 19349 Pass3D  TypeAttr
tag type of variant record is not an enumerated type
nonTagType E 19557 Pass3D  TypeAttr
tag type of sequence is not an index type

--nonTypeId,
"is not a type",
nonTypeId E 11117 Pass3D  TypeSymbol
id of a non-TYPE object used where a TYPE is required
nonTypeId E 13633 Pass3D  TypeLink
ditto

--notImported,
"must come from an imported interface",
notImported E 7272 Pass3I  Id
non-constant item from an interface that is not imported
notImported E 9444 Pass3I  InterfaceId
ditto, for qualified id used in object notation

--position,
"cannot have a specified position",
position E 24434 Pass3D  CheckPosition
field positions specified in a non-MACHINE DEPENDENT record

--privateId,
"is private",
privateId E 5872 Pass3B  IncludedId
PRIVATE item mentioned in USING list (override with SHARES) (sei = field)
privateId E 19329 Pass3I  SearchCtxList
PRIVATE item found while binding identifier (override with SHARES) (sei = ident)
privateId E 5152 Pass3Xa  EvaluateField
setting private field in a constructor (sei = field)
privateId E 10305 Pass3Xa  AssignItem
reading private field with an extractor (sei = field)

--recordGap,
"is followed by a gap",
recordGap E 23390 Pass4L  CheckFields
repr specifies non-abutting field in MACHINE DEPENDENT record
recordGap E 23593 Pass4L  CheckFields
ditto
recordGap E 24657 Pass4L  CheckVariants
ditto, for ragged variants

--recordOverlap,
"overlaps another field",
recordOverlap E 23281 Pass4L  CheckFields
sequence field not at end of MACHINE DEPENDENT record
recordOverlap E 23431 Pass4L  CheckFields
ok, for MACHINE DEPENDENT record

--recursiveInline,
"is INLINE and recursive",
recursiveInline E 4051 Pass3P  ExpandCalls
ok, encountered during expansion

--safetyClash,
"is exported with incorrect SAFE attribute",
safetyClash E 16108 Pass4B  ExportId
[top level of types of exported PROC values only]

--typeLength,
"has unknown or ill-defined size",
typeLength E 3613 Pass3D  DeclBDefault
type part of a decl specifies a type with no NEW operation, in field decls
typeLength E 4652 Pass3D  DeclBInit
ditto, in frame decls
typeLength E 18725 Pass3D  TypeAttr
component type of an array has no NEW operation
typeLength E 7004 Pass3M  New
argument type of NEW has no NEW operation
typeLength E 2296 Pass4L  BitsForType
type has indeterminate or infinite size

--varExport,
"has no exportable value",
varExport E 16321 Pass4B  ExportId
proc variable or inline exported as a PROC item
varExport E 16946 Pass4B  ExportId
(manifest) constant exported as a VAR item


** errors with tree parameters

--boundsFault,
"is out of range",
boundsFault E 17926 Pass4D  CheckTag
variant label out of range of tag type
boundsFault E 4522 Pass4Ops  LongToShort
static shorten
boundsFault E 22886 Pass4S  ForClause
lower subrange bound in FOR clause not within range of control variable
boundsFault E 22992 Pass4S  ForClause
upper subrange bound in FOR clause not within range of control variable
boundsFault E 30130 Pass4Xa  BoundsFault
static bounds fault

--controlId,
"is an improper control variable",
controlId E 16185 Pass3S  DoStmt
control variable must be a simple, unbased variable

--defaultForm,
"has an invalid default",
defaultForm E 6038 Pass3D  DefaultExp
redeclaration specifies a void default when type is already non-voidable
defaultForm E 9347 Pass3D  ProcessDefault
use of (old form) string initializer as a default value in a decl
defaultForm E 9443 Pass3D  ProcessDefault
ditto, for LONG STRING
defaultForm E 7485 Pass3M  New
ditto, in NEW
defaultForm E 8834 Pass3S  AssignDefaults
[non-null default for a return field of an inline]

--duplicateLabel,
"is multiply defined",
duplicateLabel E 19362 Pass3S  StackLabel
in EXITS or REPEATS list

--missingBinding,
"lacks a tag needed for discrimination",
missingBinding E 8870 Pass3V  BindItem
binding variant discrimination with a COMPUTED tag
missingBinding E 11167 Pass3V  Discrimination
selector missing for COMPUTED variant discrimination
missingBinding E 15471 Pass3Xb  TypeTest
COMPUTED discrimination in NARROW or ISTYPE

--misusedInline,
"is an incorrectly used inline",
misusedInline E 4999 Pass3D  DeclBInit
PROC decl with ← init to INLINE
misusedInline E 7425 Pass3M  New
NEW of a proc type, with INLINE init
misusedInline E 16713 Pass3M  Fork
FORK of an inline
misusedInline E 29872 Pass3Xa  CheckInline
call through POINTER TO FRAME
misusedInline E 9788 Pass3Xb  RelOp
comparison of inline PROC
misusedInline E 9856 Pass3Xb  RelOp
ditto
misusedInline E 13078 Pass3Xb  IfExp
inline as arm of conditional
misusedInline E 13146 Pass3Xb  IfExp
ditto
misusedInline E 13731 Pass3Xb  Selection
ditto
misusedInline E 18884 Pass3Xb  Rhs
inline as an rhs
misusedInline E 27793 Pass3Xb  Exp
LOOPHOLE of an inline

--mixedRepresentation,
"has signed/unsigned ambiguity",
mixedRepresentation E 13751 Pass4D  TypeExp
subrange endpoints
mixedRepresentation E 22072 Pass4S  ForClause
control variable and range in FOR clause
mixedRepresentation W 5852 Pass4Xb  UMinus
U- (rep = none, warning)
mixedRepresentation W 6491 Pass4Xb  Abs
ABS (rep = none, error)
mixedRepresentation W 8386 Pass4Xb  AddOp
+, - (warning)
mixedRepresentation W 9730 Pass4Xb  Mult
* (warning)
mixedRepresentation E 11449 Pass4Xb  DivMod
/, MOD (error)
mixedRepresentation W 12668 Pass4Xb  RelOp
=, # (warning)
mixedRepresentation E 12722 Pass4Xb  RelOp
<. <=, >, >= (error)
mixedRepresentation E 14847 Pass4Xb  In
IN, ~IN (error)
mixedRepresentation W 16962 Pass4Xb  IfExp
IF operands (warning)
mixedRepresentation W 17849 Pass4Xb  CaseExp
SELECT operands (warning)
mixedRepresentation W 18716 Pass4Xb  BindTypeExp
ditto (warning)
mixedRepresentation E 19702 Pass4Xb  MinMax
MIN, MAX (error)
mixedRepresentation E 20319 Pass4Xb  Lengthen
LONG (error)

--noApplication,
"does not allow an argument list",
noApplication E 12084 Pass3D  TypeAppl
type expr has no [ ] operation
noApplication E 14130 Pass3D  TypeLink
ditto
noApplication E 14935 Pass3M  Create
no [ ] for (old form) NEW
noApplication E 16072 Pass3M  Restart
ditto, for RESTART
noApplication E 24371 Pass3Xa  ApplyError
lhs operand has no [ operation

--nonAddressable,
"does not allow indirect reference",
nonAddressable E 5894 Pass3Xc  Addr
@ applied to non-lhs
nonAddressable E 8064 Pass3Xc  Base
BASE applied to non-lhs
nonAddressable E 9885 Pass3Xc  Desc
DESCRIPTOR applied to non-lhs
nonAddressable E 10585 Pass4Xc  Addr
@ of unaligned field
nonAddressable E 11551 Pass4Xc  Desc
@ of packed array element
nonAddressable E 13353 Pass4Xc  DescList
DESC of subword array

--nonConstant,
"has nonconstant value",
nonConstant E 20285 Pass3D  TypeAttr
size specification in an opque type must be manifest constant
nonConstant E 21406 Pass3D  EndPoint
endpoint of a subrange interval must be a manifest constant
nonConstant E 11273 Pass3Xb  Interval
non-manifest endpoint
nonConstant E 11630 Pass3Xb  Interval
ditto
nonConstant E 29276 Pass3Xb  Exp
string initializer (old form)
nonConstant E 5350 Pass4D  InlineByte
MACHINE CODE operand
nonConstant E 7499 Pass4D  TestDefault
default expr has free, non-constant variable in DEFINITIONS module
nonConstant E 14730 Pass4D  EvalUnsigned
repr spec in MACHINE DEPENDENT record or enumeration type

--nonInterface,
"must have an interface type",
nonInterface E 6774 Pass3B  Sharing
SHARES item not a module
nonInterface E 8371 Pass3B  ImportItem
IMPORTS item not a module
nonInterface E 9857 Pass3B  ExportItem
EXPORTS item not a module

--nonLHS,
"is not a variable",
nonLHS E 4303 Pass3M  MiscStmt
operand of NOTIFY or BROADCAST
nonLHS E 6154 Pass3M  MiscStmt
operand of STATE←, RETURN WITH STATE, etc.
nonLHS E 18518 Pass3M  Wait
operand of WAIT
nonLHS E 19973 Pass3M  LockVar
lock operand
nonLHS E 15622 Pass3S  DoStmt
control variable
nonLHS E 9663 Pass3Xa  Assignment


-- nonVar,
"is not address (@) of a variable",
nonVar E 5398 Pass3M  MiscStmt
missing @ for FREE of (counted) REF

--nonVariantLabel,
"specifies an inadmissable test",
nonVariantLabel E 12818 Pass3V  TestItem
non-enumeration literal in variant record discrimination
nonVariantLabel E 12906 Pass3V  TestItem
non-= test on tag in variant record discrimination

--noTarget,
"requires explicit type",
noTarget E 17629 Pass3Xa  Apply
[ ]
noTarget E 29081 Pass3Xa  All
ALL
noTarget E 26742 Pass3Xb  Exp
NARROW
noTarget E 27003 Pass3Xb  Exp
ditto
noTarget E 27885 Pass3Xb  Exp
LOOPHOLE
noTarget E 29276 Pass3Xb  Exp
VAL
noTarget E 12928 Pass3Xc  Desc
DESCRIPTOR

--notPortable,
"is not importable/exportable",
notPortable E 8077 Pass3B  ImportItem
import of local object (self) or interface instance
notPortable E 8183 Pass3B  ImportItem
DEFINITIONS module importing a PROGRAM, or non-PROGRAM xfer import
notPortable E 9777 Pass3B  ExportItem
export of local object (self) or interface instance

--noVariants,
"has no variants",
noVariants E 11612 Pass3V  Discrimination
tag discrimination of a non-variant record
noVariants E 11806 Pass3V  Discrimination
ditto

--operandSize,
"has a size exceeding implementation limits",
operandSize E 18709 Pass4Xa  Index
indexing of array with component type having size > 2^16-1 words
operandSize E 20165 Pass4Xa  SeqIndex
indexing of sequence with component type having size > 2^16-1 words
operandSize E 24402 Pass4Xa  New
NEW of type with size > 2^16-1 words
operandSize E 25740 Pass4Xa  ListCons
ditto for list node
operandSize E 27894 Pass4Xa  Rhs
VALOF applied to object with size > 2^16-1 words

--overflow,
"overflows",
overflow E 3518 Pass4Ops  IntToReal
FLOAT (IEEE RealException)
overflow E 7930 Pass4Ops  UnarySS
U-, ABS
overflow E 8913 Pass4Ops  BinarySS
+, -, *, /, MOD
overflow E 9526 Pass4Ops  UnarySU
U-, ABS
overflow E 10191 Pass4Ops  BinarySU
+, -, *, /, MOD
overflow E 10980 Pass4Ops  UnaryLS
U-, ABS
overflow E 11993 Pass4Ops  BinaryLS
+, -, *, /, MOD
overflow E 12647 Pass4Ops  UnaryLU
U-, ABS
overflow E 13342 Pass4Ops  BinaryLU
+, -, *, /, MOD
overflow E 14007 Pass4Ops  UnaryOther
U-, ABS (REAL)

--scopeFault,
"is being assigned out of scope",
scopeFault E 3318 Pass3Xa  CheckScope
local PROC, SIGNAL, ERROR

--sizeClash,
"has incorrect or ambiguous length",
sizeClash E 16647 Pass4L  LayoutArgs
zero-length formal or result
sizeClash E 11313 Pass4S  Stmt
operand of STATE←, RETURN WITH STATE, etc.
sizeClash E 22186 Pass4S  ForClause
zero-sized control variable in FOR clause
sizeClash E 27833 Pass4Xa  Rhs
rhs does not have size of target type
sizeClash E 12528 Pass4Xb  RelOp
=, #, <, <=, >, >=
sizeClash E 16213 Pass4Xb  CheckAlt
IF, SELECT arms
sizeClash E 21925 Pass4Xb  Loophole
LOOPHOLE
sizeClash E 28726 Pass4Xb  Exp
VAL

--spuriousBinding,
"explicit selection not permitted",
spuriousBinding E 11418 Pass3V  Discrimination
explicit selector computation for non-COMPUTED discrimination

--typeClash,
"has incorrect type",
typeClash E 28038 Pass3I  OpenRecord
non-interface, non-record argument of OPEN
typeClash E 3276 Pass3M  MiscStmt
RETURN WITH ERROR (operand is an explicit APPLY)
typeClash E 4757 Pass3M  MiscStmt
READONLY operand of (uncounted) FREE
typeClash E 5101 Pass3M  MiscStmt
FREE (counted attr of REF and zone disagree)
typeClash E 5147 Pass3M  MiscStmt
FREE (non-pointer operand)
typeClash E 8864 Pass3M  EvalZone
not a ZONE value
typeClash E 11013 Pass3M  ListType
LIST or CONS with non-LIST target type
typeClash E 11131 Pass3M  ListType
ditto
typeClash E 21257 Pass3M  CopyLock
LOCK (type of proc actual does not match LOCKS formal)
typeClash E 21824 Pass3M  Signal
SIGNAL or ERROR
typeClash E 22971 Pass3M  CatchLabel
catch label (non-SIGNAL, non-ERROR)
typeClash E 23037 Pass3M  CatchLabel
ditto
typeClash E 10528 Pass3S  Stmt
implicit WAIT (from plain application)
typeClash E 13296 Pass3S  CaseTest
LONG case label when selector is short
typeClash E 16934 Pass3S  DoStmt
control variable (over a range)
typeClash E 8811 Pass3V  BindItem
discriminant has no NARROW operation to type in binding decl
typeClash E 9271 Pass3Xa  Assignment
union ←
typeClash E 11440 Pass3Xa  Extract
non-record rhs for extract
typeClash E 18656 Pass3Xa  Apply
[PROGRAM xfer]
typeClash E 20900 Pass3Xa  Apply
base value for RELATIVE pointer indexing
typeClash E 21022 Pass3Xa  Apply
non-RELATIVE POINTER for indexing BASE pointer
typeClash E 5642 Pass3Xb  EvalNumeric
non-numeric operand (+, -, *, /, MOD, U-)
typeClash E 6889 Pass3Xb  Plus
counted pointer operand (+)
typeClash E 6959 Pass3Xb  Plus
non-numeric, non-pointer, non-CHAR operand (+)
typeClash E 7960 Pass3Xb  Minus
non-numeric, non-pointer, operand (-)
typeClash E 9382 Pass3Xb  RelOp
=, #, <, >, <=, >=
typeClash E 9653 Pass3Xb  RelOp
coercion of selector to match label of a case arm
typeClash E 10315 Pass3Xb  In
IN, ~IN
typeClash E 11504 Pass3Xb  Interval
incompatible interval endpoints
typeClash E 12366 Pass3Xb  ResolveTypes
no common LUB
typeClash E 14850 Pass3Xb  SubMinMax
MIN, MAX
typeClash E 15413 Pass3Xb  TypeTest
no narrowing (ISTYPE, NARROW)
typeClash E 18690 Pass3Xb  Rhs
[no coercion found]
typeClash E 22469 Pass3Xb  Float
FLOAT
typeClash E 25770 Pass3Xb  Exp
NIL
typeClash E 29840 Pass3Xb  CheckNonVoid
apply, extract, SIGNAL, ERROR, JOIN yields void value in exp context
typeClash E 11801 Pass3Xc  Desc
DESCRIPTOR[,,] with non-pointer first operand
typeClash E 27544 Pass4Xa  Rhs
value not assignable/coercable to target type

--unknownLabel,
"is undeclared",
unknownLabel E 19776 Pass3S  ValidateLabel
GOTO

-- unsafeOperation,
"uses an unsafe operation",
unsafeOperation E 5038 Pass3M  MiscStmt
FREE of an uncounted REF
unsafeOperation E 6091 Pass3M  MiscStmt
STATE←, RETURN WITH STATE, etc.
unsafeOperation E 19293 Pass3Xa  Apply
call of UNSAFE PROC or SIGNAL; port call or join
unsafeOperation E 20486 Pass3Xa  Apply
[ deref of array descriptor
unsafeOperation E 21392 Pass3Xa  Apply
[ deref of base+relative pointer

-- unsafeSelection,
"is discriminated unsafely",
unsafeSelection E 10808 Pass3V  Discrimination
non-binding discrimination of RC value


** errors with tree and operator parameters

--missingAttr
"has no ",
missingAttr E 16233 Pass3Xb  EndPoint
FIRST, LAST
missingAttr E 25659 Pass3Xb  Exp
NIL
missingAttr E 28298 Pass3Xb  Exp
SIZE

--missingOp
"has a type with no ",
missingOp E 4436 Pass3M  MiscStmt
NOTIFY, BROADCAST
missingOp E 14012 Pass3M  CreateError
NEW (old form)
missingOp E 15371 Pass3M  Start
START
missingOp E 15941 Pass3M  Restart
RESTART
missingOp E 16009 Pass3M  Restart
RESTART [allows any record type]
missingOp E 17602 Pass3M  Fork
FORK
missingOp E 17962 Pass3M  Join
JOIN
missingOp E 18380 Pass3M  Wait
WAIT
missingOp E 19902 Pass3M  LockVar
LOCK
missingOp E 21706 Pass3M  Signal
SIGNAL of an error
missingOp E 14305 Pass3S  Case
= (for case selector)
missingOp E 8992 Pass3Xa  Assignment
← (considering safety in CHECKED region)
missingOp E 9317 Pass3Xa  Assignment
← (sequence types)
missingOp E 19008 Pass3Xa  Apply
APPLY (PROC ANY)
missingOp E 23739 Pass3Xa  Apply
APPLY (explicit)
missingOp E 5073 Pass3Xb  UpArrow
^
missingOp E 5601 Pass3Xb  EvalNumeric
+, -, *, /, MOD, U-
missingOp E 6480 Pass3Xb  Plus
+ for counted pointers
missingOp E 6632 Pass3Xb  Plus
+ for non-numeric, non-CHAR, non-pointer
missingOp E 7696 Pass3Xb  Minus
- for counted pointers
missingOp E 8065 Pass3Xb  Minus
- for non-numeric, non-CHAR, non-pointer
missingOp E 8951 Pass3Xb  EnumOp
PRED, SUCC
missingOp E 9517 Pass3Xb  RelOp
=. #, <, >, <=, >=
missingOp E 14696 Pass3Xb  SubMinMax
MIN, MAX
missingOp E 26584 Pass3Xb  Exp
LONG for non-numeric, non-pointer, non-descriptor
missingOp E 29095 Pass3Xb  Exp
ORD
missingOp E 8247 Pass3Xc  Base
BASE for non-array, non-descriptor
missingOp E 9128 Pass3Xc  Length
LENGTH for non-array, non-descriptor, non-StringBody
missingOp E 10798 Pass3Xc  Desc
DESCRIPTOR
missingOp E 11082 Pass3Xc  Desc
DESCRIPTOR
missingOp E 11301 Pass3Xc  Desc
DESCRIPTOR for non-array, non-sequence

-- unsafeOp,
"uses an unsafe",
unsafeOp E 27286 Pass3I  OpenPointer
attempt to dereference uncounted POINTER in OPEN
unsafeOp E 17300 Pass3M  CheckArg
FORK with a VAR argument
unsafeOp E 14691 Pass3Xa  DotExpr
. deref of uncounted pointer
unsafeOp E 22002 Pass3Xa  Apply
[ deref of uncounted pointer
unsafeOp E 4863 Pass3Xb  UpArrow
^ deref of uncounted pointer
unsafeOp E 7100 Pass3Xb  Plus
+ on pointer
unsafeOp E 8225 Pass3Xb  Minus
- on pointer
unsafeOp E 28127 Pass3Xb  Exp
LOOPHOLE to RC type
unsafeOp E 5390 Pass3Xc  Addr
@ to non-VAR
unsafeOp E 7728 Pass3Xc  Base
BASE
unsafeOp E 9688 Pass3Xc  Desc
DESCRIPTOR


** errors with numeric parameters

--bodyEntries,
"too many procedure or signal definitions",
bodyEntries E 4972 Pass4L  AssignEntries
too many bodies or catch phrases [limit = 128 per PROGRAM module]

--exportedVars,
"too many exported variables",
exportedVars E 18716 Pass4B  ProcessExports
ok [limit is 64 per implementation]

--interfaceEntries,
"too many interface items",
interfaceEntries E 12888 Pass4L  LayoutInterface
too many non-constant entries [limit = 2048 per DEFINITIONS module]

--listShort
"too few elements in list",
listShort E 2940 Pass3Xa  CheckLength
constructors, non-xfer apply
listShort E 30183 Pass3Xb  UniOperand
ORD, PRED, SUCC, U-, ~
listShort E 15332 Pass4Xa  RowConstruct
row constructor

--listLong
"too many elements in list",
listLong E 2896 Pass3Xa  CheckLength
constructors, non-xfer apply
listLong E 12003 Pass3Xa  Extract
extractors
listLong E 22856 Pass3Xa  Apply
WAIT
listLong E 29171 Pass3Xa  All
ALL
listLong E 30152 Pass3Xb  UniOperand
ORD, PRED, SUCC, U-, ~
listLong E 8296 Pass3Xc  Base
BASE
listLong E 9199 Pass3Xc  Length
LENGTH
listLong E 20189 Pass4B  InitBCD
more than one id for a PROGRAM module
listLong E 15298 Pass4Xa  RowConstruct
row constructor



** warnings with no parameters

--pointerInit
"multiple initialization with a pointer",
pointerInit W 3385 Pass4D  DeclItem
pointer shared by by all ids in multi-name decl

--unreachable,
"unreachable code",
unreachable W 10125 Pass3S  Stmt
no control path reaches statement
unreachable W 8588 Pass3V  BindItem
ditto (previous binding in a discrimination always succeeds)


** warnings with sei parameters

--paddedField,
"has been padded",
paddedField W 18770 Pass4L  FillWord
ok, in MACHINE DEPENDENT record (gap is filled by padding the field)
paddedField W 20290 Pass4L  PadVariant
ditto, for variant part
paddedField W 20473 Pass4L  PadVariant
ditto

--privateExport
"is private but matches an export",
privateExport W 16220 Pass4B  ExportId
proc value
privateExport W 16855 Pass4B  ExportId
var
privateExport W 17363 Pass4B  ExportId
type

--uninitialized
"appears uninitialized",
uninitialized W 3292 Pass3I  ClearRefStack
forward reference on VALOF operation (fuzzy)

--unusedExport
"receives no exported values",
unusedExport W 17979 Pass4B  ExportId
ok

--unusedId
"is never referenced",
unusedId W 26090 Pass3I  CheckId
id from DIRECTORY supplied no items
unusedId W 20304 Pass3S  UnstackLabel
EXITS or REPEAT label
unusedId W 8218 Pass4L  InsertVar
local frame variable with ref count = 0
unusedId W 9701 Pass4L  InsertVar
imported object with ref count = 0
unusedId W 10214 Pass4L  InsertVar
global frame variable with ref count = 0
unusedId W 11424 Pass4L  CheckVar
local frame variable in block with ref count = 0

--unusedImport
"supplies no imported values",
unusedImport W 8039 Pass4B  ImportItem
ok

--voidExport
"matches a constant in an exported interface",
voidExport W 17761 Pass4B  ExportId
constant in interface, redefinition in exporting module


** warnings with substring parameters

--replString
"has global strings preventing replacement",
replString W 25825 Pass4B  MatchBCD
ok (ss = proc id)

--replId
"has incompatible attributes for replacement",
replId W 25868 Pass4B  MatchBCD
ok (selection, cutoff may be arbitrary)


** warnings with tree parameters

--emptyArray,
"has zero length",
emptyArray W 11440 Pass4Xc  Desc
DESC of ARRAY with empty index type

--fileVersion,
"referenced in different versions",
fileVersion W 1858 Pass3  P3Unit
ok [not always a mistake]

--unsignedCompare
"will use unsigned comparison"
unsignedCompare W 6372 Pass4Xb  Abs
ABS of unsigned
unsignedCompare W 13405 Pass4Xb  RelOp
< 0, etc. for unsigned operands
unsignedCompare W 19552 Pass4Xb  MinMax
0 as unsigned operand of ABS