Added description of the no_stack_protector attribute to
discussions on stack protection feature
Elaborated the text in the section on inline assembly code to indicate how the
present of assembly labels can lead to build failures
Provided code example that can save the FPU registers for interrupt handlers using
floating-point code on Cortex-A devices
Indicated in the descriptions of the -o and
-save-temps options that they additionally control the name and
location of aux and dump files
Added new section relating to the thread-local storage (TLS) memory management
feature relevant for programs using threads
Corrected floating-point options used for multilib generation
Added description of new
__thread object qualifier
Added description of new
__has_builtin operator
Added information relating to the picolibc library, with support for thread-local
storage
Added new section on the __thread qualifier
Added description of new
access and stack_protect attributes
Expanded information on interrupt context switching relating to FPU registers
Updated the example that shows how to set canary values with the stack smashing
protection feature
Indicated that section names associated with persistent objects can vary if other
attributes are used with the object
Indicated that section names associated with absolute objects and functions have
arbitrary names
Added description of new
__builtin_has_attributebuilt-in function
Added descriptions for new
__builtin_bswap16, __builtin_bswap32, and
__builtin_bswap64 built-in functions
Provided more examples of function attributes
Added section listing new ACLE built-in functions
Included xc32-objdump command to generate an assembly listing in
the How Do I Know What Code the Compiler Is Producing? How To
Clarified the difference between Free and PRO compilers in the What's the
Difference Between a Free and PRO Compiler? How To.
Revision G (January 2026)
Added information relating to the new
Picolibc library, an alternative to MUSL, selectable using the
--mchp-stdlibc option
Indicated that both Picolibc and MUSL
libraries now provide support functions for thread local storage of objects
Added descriptions of the
-Wextra option and expanded the description of the
-Werror option
Added sections for the
-fzero-call-used-regs and
-ftrivial-auto-var-init options, which are new to the
compiler
Added section on the new --fill option, which fills unused memory
locations
Added descriptions of the
-Wtrivial-auto-var-init, -Wuninitialized, and
-Wno-analyzer-use-of-uninitialized-value warning options
Corrected information in the
-D and -U preprocessor macro option sections
relating to when this option is processed
Added section for the
copy variable and function attributes, which has been recently
added to the compiler
Added description of the
uninitialized and variable attribute
Added sections for the
alias function and variable attributes
Added descriptions of graphical
controls for the compiler options available when using the MPLAB Extensions for VS
Code
Removed reference to "return address," which was incorrectly stated as being part of
the call frame
Removed ye olde ASCII table
Revision H (April 2026)
Removed PRO licensing information
relating to activation and use of some optimizations
Added information relating to the new word-oriented data initialization feature and
associated --mchp-dinit option
DS-50002895H
The online versions of the documents are provided as a courtesy. Verify all content and data in the device’s PDF documentation found on the device product page.