Files
libakstdlib/tests/negative/format_mismatch.c
Logikoma 0620370dd9
Some checks failed
libakstdlib CI Build / cmake_build (push) Successful in 2m55s
libakstdlib CI Build / sanitizers (push) Successful in 2m56s
libakstdlib CI Build / mutation_test (push) Failing after 1s
libakstdlib CI Build / coverage (push) Successful in 2m50s
Remove unused snprintf count parameter
2026-08-03 16:33:09 -04:00

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;
}