Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
a local clone.
dmd.chkformat
Check the arguments to printf and scanf against the format string.
Authors:
License:
Source chkformat.d
Documentation https://dlang.org/phobos/dmd_chkformat.html
- bool
checkPrintfFormat
(ref const Locloc
, scope const char[]format
, scope Expression[]args
, boolisVa_list
); - 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.Parameters:
Loc loc
location for error messages char[] format
format string Expression[] args
arguments to match with format string bool isVa_list
if a "v" function (format check only) Returns:true if errors occurredReferences C99 7.19.6.1 http://www.cplusplus.com/reference/cstdio/printf/
- bool
checkScanfFormat
(ref const Locloc
, scope const char[]format
, scope Expression[]args
, boolisVa_list
); - Check that arguments to a scanf format string are compatible with that string. Issue errors for incompatibilities.Follows the C99 specification for scanf. 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-standard formats 7. undefined behavior per C99 Per the C Standard, extra arguments are ignored. No attempt is made to fix the arguments or the format string.Parameters:
Loc loc
location for error messages char[] format
format string Expression[] args
arguments to match with format string bool isVa_list
if a "v" function (format check only) Returns:true if errors occurredReferences C99 7.19.6.2 http://www.cplusplus.com/reference/cstdio/scanf/
Copyright © 1999-2022 by the D Language Foundation | Page generated by
Ddoc on (no date time)