# Vault 7: Projects

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

### Protego

# MPLAB XC16 C-Compiler

- 1
- 2
…
- 272
- 273
- 274
- 275
- 276
…
- 365
- 366

MPLAB
®
XC16 C Compiler Users Guide
DS50002071C-page 274  2012-2013 Microchip Technology Inc.
ISO C restricts enumerator values to range of int
The range of enumerator values must not exceed the range of the int type.
ISO C89 forbids compound literals
Compound literals are not valid in ISO C89.
ISO C89 forbids mixed declarations and code
Declarations should be done first before any code is written. It should not be mixed in
with the code.
ISO C90 does not support [*] array declarators
Variable length arrays are not supported in ISO C90.
ISO C90 does not support complex types
Complex types, such as __complex__ float x, are not supported in ISO C90.
ISO C90 does not support flexible array members
A flexible array member is a new feature in C99. ISO C90 does not support it.
ISO C90 does not support long long
The long long type is not supported in ISO C90.
ISO C90 does not support static or type qualifiers in parameter array
declarators
When using an array as a parameter to a function, ISO C90 does not allow the array
declarator to use static or type qualifiers.
ISO C90 does not support the char function format
ISO C does not support the specification character char for the specified function
format.
ISO C90 does not support the modifier function length modifier
The specified modifier is not supported as a length modifier for the given function.
ISO C90 forbids variable-size array name
In ISO C90, the number of elements in the array must be specified by an integer
constant expression.
L
label identifier defined but not used
The specified label was defined, but not referenced.
large integer implicitly truncated to unsigned type
An integer constant value appears in the source code without an explicit unsigned
modifier, yet the number cannot be represented as a signed int; therefore, the compiler
automatically treats it as an unsigned int.
left-hand operand of comma expression has no effect
One of the operands of a comparison is a promoted ~unsigned, while the other is
unsigned.
left shift count >= width of type
Shift counts should be less than the number of bits in the type being shifted. Otherwise,
the shift is meaningless, and the result is undefined.
left shift count is negative
Shift counts should be positive. A negative left shift count does not mean shift right;
it is meaningless.

- 1
- 2
…
- 272
- 273
- 274
- 275
- 276
…
- 365
- 366