# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# MPLAB XC16 C-Compiler

- 1
- 2
…
- 51
- 52
- 53
- 54
- 55
…
- 365
- 366

XC16 Toolchain and MPLAB X IDE
 2012-2013 Microchip Technology Inc. DS50002071C-page 53
3.5.3 xc16-gcc (16-Bit C Compiler)
Although the MPLAB XC16 C Compiler works with MPLAB X IDE, it must be acquired
separately. The full version may be purchased, or a student (limited-feature) version
may be downloaded for free. See the Microchip website (www.microchip.com) for
details.
A subset of command-line options may be specified in MPLAB X IDE. Select a cate-
gory, and then set up compiler options. For additional options, see the MPLAB XC16 C
Compiler Users Guide (DS51284), also available on the Microchip website.
See also Options Page Features.
TABLE 3-4: PREPROCESSING AND MESSAGES CATEGORY
Option Description Command Line
Include C dirs Add the directory dir to the head of the list of directories to be
searched for header files.
For more information, see Section 3.5.6 Additional Search
Paths and Directories.
-I"dir"
Define C macros Define macro macro with the string 1 as its definition. -Dmacro
ANSI-std C support Check to support all (and only) ASCI C programs.
Uncheck to support ASCI and non-ASCI programs.
-ansi
Errata This option enables specific errata work-arounds identified by
ID.
Valid values for ID change from time to time and may not be
required for a particular variant. The ID all will enable all cur-
rently supported errata work arounds. The ID list will display
the currently supported errata identifiers along with a brief
description of the errata.
-merrata=id
Smart IO forwarding level This option attempts to statically analyze format strings
passed to printf, scanf and the f and v variations of these
functions. Uses of nonfloating point format arguments will be
converted to use an integer-only variation of the library func-
tions.
Equivalent to -msmart-io=n option where n equals:
 0 - disables this option.
 1 - only convert the literal values it can prove.
 2 - causes the compiler to be optimistic and convert func-
tion calls with variable or unknown format arguments.
-msmart-io=n
Smart IOformat strings Specifies what the format arguments are when the compiler is
unable to determine them.
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
Strict ANSI warnings Check to issue all warnings demanded by strict ANSI C.
Uncheck to issue all warnings.
-pedantic
Disable ISR warn Disable warning for inappropriate use of ISR function names.
By default the compiler will produce a warning if the __in-
terrupt__ is not attached to a recognized interrupt vector
name. This option will disable that feature.
-mno-isr-warn
Enable SFR warnings Enable warnings related to SRFs. -msfr-warn=on|off

- 1
- 2
…
- 51
- 52
- 53
- 54
- 55
…
- 365
- 366