4.4.4 xc32-g++ (32-bit C++ Compiler)
A subset of command-line options may be specified in MPLAB X IDE. Select a category and set up C++ options.
See also 4.4.7 Options Page Features.
Option | Description | Command Line |
---|---|---|
Generate run time type descriptor information | Enable generation of information about every class with virtual functions for use by the C++ runtime type identification features (dynamic_cast and typeid ). If you don't use those parts of the language, you can save some space by disabling this option. Note that exception handling uses the same information, but it will generate it as needed. The dynamic_cast operator can still be used for casts that do not require runtime type information, that is, casts to void * or to unambiguous base classes. | -frtti |
Enable C++ exception handling | Enable exception handling. Generates extra code needed to propagate exceptions. | -fexceptions |
Check that the pointer returned by operator 'new' is non-null | Check that the pointer returned by operator new is non-null before attempting to modify the storage allocated. | -fcheck-new |
Generate code to check for violation of exception specification | Generate code to check for violation of exception specifications at runtime. Using this option may increase code size in production builds. | -fenforce-eh-specs |
Option | Description | Command Line |
---|---|---|
Have symbols in production build | Build for debugging in a production build image. | -g |
Enable App IO | Support the APPIN/APPOUT debugging feature with REAL ICE. | -mappio-debug |
Isolate each function in a section | Place each function into its own section in the output file if the target supports arbitrary sections. The name of the function or the name of the data item determines the section's name in the output file. This option is useful when combined with the linker’s --gc-sections option to remove unreferenced functions. | -ffunction-sections |
Place data into its own section | Place each data item into its own section in the output file if the target supports arbitrary sections. The name of the function or the name of the data item determines the section's name in the output file. This option is useful when combined with the linker’s --gc-sections option to remove unreferenced variables. | -fdata-sections |
Enable toplevel reordering | Allows the compiler to reorder top-level functions, variables, and asm
statements, in which case, they might not be output in the same order
that they appear in the input file. | -ftoplevel-reorder |
Use indirect calls | Enable full-range calls. | -mlong-calls |
Generate MIPS16 16-bit code | By default, generate code for the MIPS16 instruction set, reducing code size. | -mips16 |
Generate microMIPS compressed code | Generate code using the microMIPS™ instructions. This feature is available only in the PRO edition. | -m[no-]micromips |
Exclude floating-point library | Exclude support for floating-point operations reducing code size for applications that do not require floating-point support. | -mno-float |
Option | Description | Command Line |
---|---|---|
Optimization Level | Select an optimization level. Your compiler edition may support only some optimizations.
Equivalent to -On option, where
n is an option below:0 - Do not optimize. The compiler’s goal is to reduce the cost of compilation and to make debugging produce the expected results. 1 - Optimize. Optimizing compilation takes somewhat longer and a lot more host memory for a large function. The compiler tries to reduce code size and execution time. 2 - Optimize even more. The compiler performs nearly all supported optimizations that do not involve a space-speed trade-off. 3 - Optimize yet more favoring speed (superset of O2). s - Optimize yet more favoring size (superset of O2). | -O0 -O1 -O2 -O3 -Os |
Unroll loops | Check to perform the optimization of loop unrolling. This is only done for loops whose number of iterations can be determined at compile time or run time. Uncheck to not unroll loops. | -funroll-loops |
Omit frame pointer | Check to not keep the Frame Pointer in a register for functions that don’t need one. Uncheck to keep the Frame Pointer. | -fomit-frame-pointer |
Pre-optimization instruction scheduling | Default for optimization level: - Disable - Enable | |
Post-optimization instruction scheduling | Default for optimization level: - Disable - Enable |
Option | Description | Command Line |
---|---|---|
Preprocessor macros | Project-specific preprocessor macro defines passed via the compiler’s –D option. | |
Include directories | Search these directories for project-specific include files. | |
Make warnings into errors | Check to halt compilation based on warnings as well as errors. Uncheck to halt compilation based on errors only. | -Werror |
Additional warnings | Check to enable all warnings. Uncheck to disable warnings. | -Wall |
Enable address-attribute warning | -Waddress-attribute-use | |
strict-ansi | Issue all the warnings demanded by strict ISO C and ISO C++; reject all programs that use forbidden extensions, and some other programs that do not follow ISO C and ISO C++. | -pedantic |
Use CCI syntax | Enable support for the CCI syntax (25 Common C Interface). | -mcci |
Use IAR syntax | Enable support for syntax used by other toolchain vendors. | -mext=IAR |