Label 'xxxxx' is defined pubweak in a section implicitly declared root
Technical Note 30605
After upgrading to version 7.10.1 (or later) of IAR Embedded Workbench for ARM or to version 2.10.1 (or later) of IAR Embedded Workbench for STM8 a message similar to
Warning : Label 'xxxxx' is defined pubweak in a section implicitly declared root
might be issued during assembly, even though there were no such warnings in earlier version(s).
The IAR Assembler is issuing the warning for a deprecated assembler construction where an implicit
:ROOT flag is inconsistent with how
PUBWEAK is used.
As an example, consider these lines:
PUBWEAK NMI_Handler SECTION .text:CODE:REORDER(1) NMI_Handler
In this, and most other cases, you should add a
:NOROOT flag to remove the inconsistency and avoid the warning.
The syntax for the assembler directive
SECTION section :type [:flag] [(align)]
More information can be found in the IAR Assembler Reference Guide, Section control directives.
In most cases, adding
:NOROOT to the
SECTION control directive is a good way to remove the deprecated construct and avoid the warning message:
PUBWEAK NMI_Handler SECTION .text:CODE:REORDER:NOROOT(1) NMI_Handler
All product names are trademarks or registered trademarks of their respective owners.