# Vault 7: Projects

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

### Protego

# MPLAB XC16 C-Compiler

- 1
- 2
…
- 103
- 104
- 105
- 106
- 107
…
- 365
- 366

Compiler Command-Line Driver
 2012-2013 Microchip Technology Inc. DS50002071C-page 105
5.7.10 Options for Directory Search
The following options specify to the compiler where to find directories and files to
search.
5.7.11 Options for Code Generation Conventions
Options of the form -fflag specify machine-independent flags. Most flags have both
positive and negative forms; the negative form of -ffoo would be -fno-foo. In the
table below, only one of the forms is listed (the one that is not the default.)
TABLE 5-17: DIRECTORY SEARCH OPTIONS
Option Definition
-specs=file Process file after the compiler reads in the standard specs file, in
order to override the defaults that the xc16-gcc driver program
uses when determining what switches to pass to xc16-cc1,
xc16-as, xc16-ld, etc. More than one -specs=file can be
specified on the command line, and they are processed in order,
from left to right.
TABLE 5-18: CODE GENERATION CONVENTION OPTIONS
Option Definition
-fargument-alias
-fargument-noalias
-fargument-
noalias-global
Specify the possible relationships among parameters and between
parameters and global data.
-fargument-alias specifies that arguments (parameters) may
alias each other and may alias global storage.
-fargument-noalias specifies that arguments do not alias
each other, but may alias global storage.
-fargument-noalias-global specifies that arguments do not
alias each other and do not alias global storage.
Each language will automatically use whatever option is required
by the language standard. You should not need to use these
options yourself.
-fcall-saved-reg Treat the register named reg as an allocatable register saved by
functions. It may be allocated even for temporaries or variables
that live across a call. Functions compiled this way will save and
restore the register reg if they use it.
It is an error to used this flag with the Frame Pointer or Stack
Pointer. Use of this flag for other registers that have fixed perva-
sive roles in the machines execution model will produce disas-
trous results.
A different sort of disaster will result from the use of this flag for a
register in which function values may be returned.
This flag should be used consistently through all modules.
-fcall-used-reg Treat the register named reg as an allocatable register that is
clobbered by function calls. It may be allocated for temporaries or
variables that do not live across a call. Functions compiled this way
will not save and restore the register reg.
It is an error to use this flag with the Frame Pointer or Stack
Pointer. Use of this flag for other registers that have fixed perva-
sive roles in the machines execution model will produce disas-
trous results.
This flag should be used consistently through all modules.
-ffixed-reg Treat the register named reg as a fixed register; generated code
should never refer to it (except perhaps as a Stack Pointer, Frame
Pointer or in some other fixed role).
reg must be the name of a register, e.g., -ffixed-w3.
-fno-ident Ignore the #ident directive.

- 1
- 2
…
- 103
- 104
- 105
- 106
- 107
…
- 365
- 366