Check that arguments to a printf format string are compatible
with that string. Issue errors for incompatibilities.
Follows the C99 specification for printf.
Takes a generous, rather than strict, view of compatiblity.
For example, an unsigned value can be formatted with a signed specifier.
Diagnosed incompatibilities are:
1. incompatible sizes which will cause argument misalignment
2. deferencing arguments that are not pointers
3. insufficient number of arguments
4. struct arguments
5. array and slice arguments
6. non-pointer arguments to s specifier
7. non-standard formats
8. undefined behavior per C99
Per the C Standard, extra arguments are ignored.
No attempt is made to fix the arguments or the format string.
Check that arguments to a printf format string are compatible with that string. Issue errors for incompatibilities.
Follows the C99 specification for printf.
Takes a generous, rather than strict, view of compatiblity. For example, an unsigned value can be formatted with a signed specifier.
Diagnosed incompatibilities are:
1. incompatible sizes which will cause argument misalignment 2. deferencing arguments that are not pointers 3. insufficient number of arguments 4. struct arguments 5. array and slice arguments 6. non-pointer arguments to s specifier 7. non-standard formats 8. undefined behavior per C99
Per the C Standard, extra arguments are ignored.
No attempt is made to fix the arguments or the format string.