Function dmd.chkformat.checkScanfFormat
Check that arguments to a scanf format string are compatible with that string. Issue errors for incompatibilities.
						
				bool checkScanfFormat
				(
				
				  ref const(Loc) loc,
				
				  scope const(char[]) format,
				
				  scope Expression[] args,
				
				  bool isVa_list,
				
				  ErrorSink eSink
				
				);
						
					
				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
| Name | Description | 
|---|---|
| loc | location for error messages | 
| format | format string | 
| args | arguments to match with format string | 
| isVa_list | if a "v" function (format check only) | 
| eSink | where the error messages go | 
Returns
true if errors occurred
References
C99 7.19.6.2
https
//www.cplusplus.com/reference/cstdio/scanf/