7.3 Warnings

The assembler generates warnings when an assumption is made so that the assembler could continue assembling a flawed program. Warnings should not be ignored. Each warning should be specifically looked at and corrected to ensure that the assembler understands what was intended. Warning messages can sometimes point out bugs in your program.

Symbol

.def pseudo-op used inside of .def/.endef: ignored.

The specified directive is not allowed within a .def/.endef pair. .def/.endef directives are used for specifying debugging information and normally are only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, note the following:

  1. You want to use the .line directive to specify the line number information for the symbol.
  2. You cannot nest .def/.endef directives.

.dim pseudo-op used outside of .def/.endef: ignored.

The specified directive is only allowed within a .def/.endef pair. These directives are used to specify debugging information and normally are only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, you must first specify a .def directive before specifying this directive.

.endef pseudo-op used outside of .def/.endef: ignored.

The specified directive is only allowed within a .def/.endef pair. These directives are used to specify debugging information and normally are only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, you must first specify a .def directive before specifying this directive.

.fill size clamped to 8.

The size argument (second argument) of the .fill directive specified was greater then eight. The maximum size allowed is eight.

.fillvalue expects a constant positive byte value. 0xXX assumed.

The .fillvalue directive was specified with an argument that is not a constant positive byte value. The last .fillvalue value that was specified will be used.

.fillvalue not specified in a code section. .fillvalue ignored.

The specified directive must be specified in a code section. The assembler has seen this directive in a data section. This warning probably indicates that you forgot to change sections to a code section.

.ln pseudo-op inside .def/.endef: ignored.

The specified directive is not allowed within a .def/.endef pair. .def/.endef directives are used for specifying debugging information and normally are only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, note the following:

  1. You want to use the .line directive to specify the line number information for the symbol.
  2. You cannot nest .def/.endef directives.

.loc outside of .text.

The .loc directive must be specified in a .text section. The assembler has seen this directive in a non-.text section. The directive has no effect.

.loc pseudo-op inside .def/.endef: ignored.

The specified directive is not allowed within a .def/.endef pair. .def/.endef directives are used for specifying debugging information and normally are only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, note the following:

  1. You want to use the .line directive to specify the line number information for the symbol.
  2. You cannot nest .def/.endef directives.

.palign not specified in a code section. .palign ignored.

The specified directive must be specified in a code section. The assembler has seen this directive in a data section. This warning probably indicates that you forgot to change sections to a code section.

.pbyte not specified in a code section. .pbyte ignored.

The specified directive must be specified in a code section. The assembler has seen this directive in a data section. This warning probably indicates that you forgot to change sections to a code section.

.pfill not specified in a code section. .pfill ignored.

The specified directive must be specified in a code section. The assembler has seen this directive in a data section. This warning probably indicates that you forgot to change sections to a code section.

.pfill size clamped to 8.

The size argument (second argument) of the .fill directive specified was greater then eight. The maximum size allowed is eight.

.pfillvalue expects a constant positive byte value. 0xXX assumed.

The .pfillvalue directive was specified with an argument that is not a constant positive byte value. The last .pfillvalue value that was specified will be used as if this directive did not exist.

.pfillvalue not specified in a code section. .pfillvalue ignored.

The specified directive must be specified in a code section. The assembler has seen this directive in a data section. This warning probably indicates that you forgot to change sections to a code section.

.pword not specified in a code section. .pword ignored.

The specified directive must be specified in a code section. The assembler has seen this directive in a data section. This warning probably indicates that you forgot to change sections to a code section.

.size pseudo-op used outside of .def/.endef ignored.

The specified directive is only allowed within a .def/.endef pair. These directives are used to specify debugging information and normally are only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, you must first specify a .def directive before specifying this directive.

.scl pseudo-op used outside of .def/.endef ignored.

The specified directive is only allowed within a .def/.endef pair. These directives are used to specify debugging information and normally are only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, you must first specify a .def directive before specifying this directive.

.tag pseudo-op used outside of .def/.endef ignored.

The specified directive is only allowed within a .def/.endef pair. These directives are used to specify debugging information and normally are only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, you must first specify a .def directive before specifying this directive.

.type pseudo-op used outside of .def/.endef ignored.

The specified directive is only allowed within a .def/.endef pair. These directives are used to specify debugging information and normally are only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, you must first specify a .def directive before specifying this directive.

.val pseudo-op used outside of .def/.endef ignored.

The specified directive is only allowed within a .def/.endef pair. These directives are used to specify debugging information and normally are only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, you must first specify a .def directive before specifying this directive.

A

Alignment too large: 2^15 assumed.

An alignment greater than 2^15 was requested. 2^15 is the largest alignment request that can be made.

B

badly formed .dim directive ignored

The arguments for the .dim directive were unable to be parsed. This directive is used to specify debugging information and normally is only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, the arguments for the .dim directive are constant integers separated by a comma.

D

Directive not specified in a code section. Directive ignored.

The directive on the indicated line must be specified in a code section. The assembler has seen this directive in a data section. This warning probably indicates that you forgot to change sections to a code section.

E

error setting flags for “section_name”: error_message.

If this warning is displayed, then the GNU code has changed as the if statement always evaluates false.

Expecting even address. Address will be rounded.

The absolute address specified for a CALL or GOTO instruction was odd. The address is rounded up. You will want to ensure that this is the intended result.

Expecting even offset. Offset will be rounded.

The PC-relative instruction at this line contained an odd offset. The offset is rounded up to ensure that the PC-relative instruction is working with even addresses.

I

Ignoring changed section attributes for section_name.

This section’s attributes have already been set, and the new attributes do not match those previously set.

Ignoring fill value in absolute section.

A fill argument cannot be specified for either the .org or .porg directive when the current section is absolute.

Implied attributes for section 'name' are deprecated.

Certain section names have implied attributes. In this case, a section was defined without listing its implied attributes. For clarity and future compatibility, section attributes should be listed explicitly. See Directives that Define Sections for more information.

L

Line numbers must be positive integers.

The line number argument of the .ln or .loc directive was less than or equal to zero after specifying debugging information for a function. These directives are used to specify debugging information and normally are only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, note that function symbols can only exist on positive line numbers.

M

Macro ‘name’ has a previous definition.

A macro has been redefined without removing the previous definition with the .purgem directive.

mismatched .eb

The assembler has seen a .eb directive without first seeing a matching .bb directive. The .bb and .eb directives are the begin block and end block directives and must always be specified in pairs.

O

Overflow/underflow for .long may lose significant bits.

A constant value specified in a .long directive is too large and will lose significant bits when encoded.

Q

Quoted section flags are deprecated, use attributes instead.

Previous versions of the assembler recommended the use of single character section flags. For clarity and future compatibility, attribute names should be used instead.

R

Repeat argument < 0. .fill ignored.

The repeat argument (first argument) of the .fill directive specified was less than zero. The repeat argument must be an integer that is greater than or equal to zero.

Repeat argument < 0. .pfill ignored.

The repeat argument (first argument) of the .pfill directive specified was less than zero. The repeat argument must be an integer that is greater than or equal to zero.

S

Size argument < 0. .fill ignored.

The size argument (second argument) of the .fill directive specified was less than zero. The size argument must be an integer that is between zero and eight, inclusive. If the size argument is greater than eight, it is deemed to have a value of eight.

Size argument < 0. .pfill ignored

The size argument (second argument) of the .pfill directive specified was less than zero. The size argument must be an integer that is between zero and eight, inclusive. If the size argument is greater than eight, it is deemed to have a value of eight.

‘symbol_name’ symbol without preceding function.

A .bf directive was seen without the preceding debugging information for the function symbol. This directive is used to specify debugging information and normally is only generated by the compiler. If you are attempting to specify debugging information for your assembly language program, you must first .def the function symbol and give it a .type of function (C_FCN = 101).

T

tag not found for .tag symbol_name.

This warning should not be seen unless the assembler was unable to create the given symbol name. Check your code for errors. If you still receive this warning, contact technical support.

U

unknown section attribute ‘flag’.

The .section directive does not recognize the specified section flag. Please see Directives that Define Sections, for the supported section flags.

V

Value get truncated to use.

The fill value specified for either the .skip, .pskip, .space, .pspace, .org or .porg directive was larger than a single byte. The value has been truncated to a byte.