# Vault 7: Projects

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

### Protego

# MPLAB XC16 C-Compiler

- 1
- 2
…
- 279
- 280
- 281
- 282
- 283
…
- 365
- 366

Diagnostics
 2012-2013 Microchip Technology Inc. DS50002071C-page 281
too many arguments for format
When checking the argument list of a call to printf, scanf, etc., the compiler found that
the number of actual arguments was more than that required by the format string.
traditional C ignores #directive with the # indented
Traditionally, a directive is ignored unless its # is in column 1.
traditional C rejects initialization of unions
Unions cannot be initialized in traditional C.
traditional C rejects the ul suffix
Suffix u is not valid in traditional C.
traditional C rejects the unary plus operator
The unary plus operator is not valid in traditional C.
trigraph ??char converted to char
Trigraphs, which are a three-character sequence, can be used to represent symbols
that may be missing from the keyboard. Trigraph sequences convert as follows:
trigraph ??char ignored
Trigraph sequence is being ignored. char can be (, ), <, >, =, /, ', !, or -
type defaults to int in declaration of identifier
In the absence of an explicit type declaration for the specified identifier, the compiler
assumes that its type is int.
type mismatch with previous external decl
previous external decl of identifier
The type of the specified identifier does not match the previous declaration.
type mismatch with previous implicit declaration
An explicit declaration conflicts with a previous implicit declaration.
type of identifier defaults to int
In the absence of an explicit type declaration, the compiler assumes that identifiers
type is int.
type qualifiers ignored on function return type
The type qualifier being used with the function return type is ignored.
U
undefining defined
defined cannot be used as a macro name and should not be undefined.
undefining name
The #undef directive was used on a previously defined macro name name.
union cannot be made transparent
The transparent_union attribute was applied to a union, but the specified variable
does not satisfy the requirements of that attribute.
union identifier declared inside parameter list
The specified union is declared inside a function parameter list. It is usually better
programming practice to declare unions outside parameter lists, since they can never
become complete types when defined inside parameter lists.
??( = [ ??) = ] ??< = { ??> = } ??= = # ??/ = \ ??' = ^ ??! = | ??- = ~

- 1
- 2
…
- 279
- 280
- 281
- 282
- 283
…
- 365
- 366