0.9.3 ML Warnings

Number Message

A4000 cannot modify READONLY segment
  An attempt was made to modify an operand in a segment marked with the READONLY attribute.
A4002 non-unique STRUCT/UNION field used without qualification
  A STRUCT or UNION field can be referenced without qualification only if it has a unique identifier.
  This conflict can be resolved either by renaming one of the structure fields to make it unique or by fully specifying both field references.
  The NONUNIQUE keyword requires that all references to the elements of a STRUCT or UNION be fully specified.
A4003 start address on END directive ignored with .STARTUP
  Both .STARTUP and a program load address (optional with the END directive) were specified. The address specification with the END directive was ignored.
A4004 cannot ASSUME CS
  An attempt was made to assume a value for the CS register. CS is always set to the current segment or group.
A4006 too many arguments in macro call
  There were more arguments given in the macro call than there were parameters in the macro definition.
A4007 option untranslated, directive required : option
  There is no ML command-line equivalent for the given MASM option. The desired behavior can be obtained by using a directive in the source file.
Option Directive

/A .ALPHA
/P OPTION READONLY
/S .SEQ

A4008 invalid command-line option value, default is used : option
  The value specified with the given option was not valid. The option was ignored, and the default was assumed.
A4009 virtual memory not available : /VM ignored
  The assembler was unable to initialize virtual memory.
  You may be able to fix this error by freeing memory being used by RAM disks, caches, or TSR programs.
A4010 insufficent memory for /EP : /EP ignored
  There is not enough memory to generate a first-pass listing.
A4011 expected '>' on text literal
  A macro was called with a text literal argument that was missing a closing angle bracket.
A4012 multiple .MODEL directives found : .MODEL ignored
  More than one .MODEL directive was found in the current module. Only the first .MODEL statement is used.
A4910 cannot open file: filename
  The given filename could not be in the current path.
  Make sure that filename was copied from the distribution disks and is in the current path.
A5000 @: label defined but not referenced
  A jump target was defined with the @: label, but the target was not used by a jump instruction.
  One common cause of this error is insertion of an extra @: label between the jump and the @: label that the jump originally referred to.
A5001 expression expected, assume value 0
  There was an IF, ELSEIF, IFE, IFNE, ELSEIFE, or ELSEIFNE directive without an expression to evaluate. The assembler assumes a 0 for the comparison expression.
A5002 externdef previously assumed to be external
  The OPATTR or .TYPE operator was applied to a symbol after the symbol was used in an EXTERNDEF statement but before it was declared. These operators were used on a line where the assembler assumed that the symbol was external.
A5003 length of symbol previously assumed to be different
  The LENGTHOF, LENGTH, SIZEOF, or SIZE operator was applied to a symbol after the symbol was used in an EXTERNDEF statement but before it was declared. These operators were used on a line where the assembler assumed that the symbol had a different length and size.
A5004 symbol previously assumed to not be in a group
  A symbol was used in an EXTERNDEF statement outside of a segment and then was declared inside a segment.
A5005 types are different
  The type given by an INVOKE statement differed from that given in the procedure prototype. The assembler performed the appropriate type conversion.
A6001 no return from procedure
  A PROC statement generated a prologue, but there was no RET or IRET instruction found inside the procedure block.
A6003 conditional jump lengthened
  A conditional jump was encoded as a reverse conditional jump around a near unconditional jump.
  You may be able to rearrange code to avoid the longer form.