3.7.1.2 XC8 Compiler Category

General

Use subroutines for function prologues and epilogues
This selection allows you to change how functions save registers on entry and how those registers are restored on function exit. See Call-prologues Option.
Default char type is unsigned
Enabling this checkbox indicates that a plain char type will be treated as an unsigned char. See Signed-char Option and Unsigned-char Option.
Default bitfield type is unsigned
Enabling this checkbox indicates that a plain bit-field will be treated as an unsigned object. See Signed-bitfields Option and Unsigned-bitfields Option.

Preprocessing and Messaging

Define macros
This field allows you to define preprocessor macros. See D: Define a Macro.
Undefine macros
This field allows you to undefine preprocessor macros. See U: Undefine Macros.
Include directories
This field allows you to specify the directories searched for header files. See I: Specify Include File Search Path Option.
Verbose
Enabling this checkbox shows the command lines used to build the project. See V: Verbose Compilation.
Use CCI syntax
Enabling this checkbox requests that the CCI language extension be enforced. See Ext Option.
All warnings
Enabling this checkbox requests that no compiler warning messages will be suppressed when building. See Wall Option.

Optimizations

Optimization level
This selector controls the level to which programs are optimized. See Options for Controlling Optimization.
Debug
This checkbox inhibits aggressive optimization that can impact on the debugability of code. See Og: Better Debugging Option.
Prepare functions for garbage collection
Selecting this checkbox places each function in its own section to assist with garbage collection and potential code size reductions. See Function-sections Option.
Prepare data for garbage collection
Selecting this checkbox places each object in its own section to assist with garbage collection and potential code size reductions. See Data-sections Option.
Allocate only as many bytes as needed by enum types
Selecting this checkbox allocates the smallest possible integer type to an enum such that the range of possible values can be held. See Short-enums Option.
Use common tentative definitions
Selecting Enable from this drop-down menu allows the linker to resolve all tentative definitions of the same variable in different compilation units to the same object. Selecting Disable inhibits the merging of tentative definitions by the linker. Selecting Default enables tentative definition resolution. See Common Option.