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




