26 lines
850 B
C
26 lines
850 B
C
/*
|
|
* NEGATIVE COMPILE TEST.
|
|
*
|
|
* This file must NOT compile. It is built by the CTest entry
|
|
* `negative_format_mismatch` with -Werror, and that test is marked WILL_FAIL.
|
|
*
|
|
* What it asserts: the format attributes on the variadic wrappers are attached
|
|
* and effective. Going through a wrapper is exactly how a caller loses the
|
|
* compile-time format checking it would have had calling printf(3) directly --
|
|
* printf("%d", "str") is caught and an unattributed wrapper's equivalent is not.
|
|
* AKSL_PRINTF_FORMAT is what restores it, and this is what proves it is there.
|
|
*/
|
|
|
|
#include <akstdlib.h>
|
|
|
|
int main(void)
|
|
{
|
|
char buf[64];
|
|
akerr_ErrorContext *raised = NULL;
|
|
|
|
/* %d against a string. This is the line that must not build. */
|
|
raised = aksl_snprintf(buf, sizeof(buf), "%d", "not an int");
|
|
|
|
return raised == NULL ? 0 : 1;
|
|
}
|