# Vault 7: Projects

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

### Protego

# MPLAB XC16 C-Compiler

- 1
- 2
…
- 231
- 232
- 233
- 234
- 235
…
- 365
- 366

Implementation-Defined Behavior
 2012-2013 Microchip Technology Inc. DS50002071C-page 233
A.13 STATEMENTS
Implementation-Defined Behavior for Statements is covered in section G.3.12 of the
ANSI C Standard.
What is the maximum number of case values in a switch statement? (ISO 6.6.4.2)
No limit.
A.14 PREPROCESSING DIRECTIVES
Implementation-Defined Behavior for Preprocessing Directives is covered in section
G.3.13 of the ANSI C Standard.
Does the value of a single-character character constant in a constant expression, that
controls conditional inclusion, match the value of the same character constant in the
execution character set? (ISO 6.8.1)
Yes.
Can such a character constant have a negative value? (ISO 6.8.1)
Yes.
What method is used for locating includable source files? (ISO 6.8.2)
The preprocessor searches the current directory, followed by directories named using
command-line options.
How are headers identified, or the places specified? (ISO 6.8.2)
The headers are identified on the #include directive, enclosed between < and >
delimiters, or between  and  delimiters. The places are specified using command-line
options.
Are quoted names supported for includable source files? (ISO 6.8.2)
Yes.
What is the mapping between delimited character sequences and external source file
names? (ISO 6.8.2)
The identity function.
Describe the behavior of each recognized #pragma directive. (ISO 6.8.6)
What are the definitions for __ DATE __ and __ TIME __ respectively, when the date
and time of translation are not available? (ISO 6.8.8)
TABLE A-4: #PRAGMA BEHAVIOR
Pragma Behavior
#pragma code section-name Names the code section.
#pragma code Resets the name of the code section to its default
(viz., .text).
#pragma config Sets configuration bits or registers.
#pragma idata section-name Names the initialized data section.
#pragma idata Resets the name of the initialized data section to its
default value (viz., .data).
#pragma udata section-name Names the uninitialized data section.
#pragma udata Resets the name of the uninitialized data section to
its default value (viz., .bss).
#pragma interrupt
function-name
Designates function-name as an interrupt function.

- 1
- 2
…
- 231
- 232
- 233
- 234
- 235
…
- 365
- 366