Files
libakstdlib/tests/negative/noignore.c
Tachikoma 55d986c631
All checks were successful
libakstdlib CI Build / cmake_build (push) Successful in 5m53s
libakstdlib CI Build / sanitizers (push) Successful in 2m55s
libakstdlib CI Build / coverage (push) Successful in 2m48s
libakstdlib CI Build / mutation_test (push) Successful in 12m39s
Drop the TODO.md section numbers from 26 files
Eighty-five comments cited section numbers -- 1.1, 2.2.6, 3.6 -- from a
numbering the file had already abandoned before the move to the tracker. They
label completed work, so the pointer was the only wrong part.

The citation is removed and the sentence kept, which is what issue #27
recommended: these are labels, not references, and a label carrying a
version-dependent pointer goes stale again at the next reorganisation. Where a
pointer earns its place it names what actually holds the content now --
UPGRADING.md for the confirmed defects, libakerror #15 for the target
namespacing, issue #7 for the mutation survivors.

README.md and akstdlib.h sent readers to TODO.md for 'what is still open';
they name the tracker.

Verified: cmake --build build && ctest --test-dir build, 19/19.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Andrew Kesterson <andrew@aklabs.net>
2026-08-02 22:01:27 -04:00

27 lines
860 B
C

/*
* NEGATIVE COMPILE TEST.
*
* This file must NOT compile. It is built by the CTest entry `negative_noignore`
* with -Werror, and that test is marked WILL_FAIL, so a successful build is a
* test failure.
*
* What it asserts: AKERR_NOIGNORE is actually attached and actually effective.
* Every entry point in this library returns an error context the caller must
* look at, and the whole design rests on discarding one being hard rather than
* merely inadvisable. AKERR_NOIGNORE expands to warn_unused_result, which does
* nothing at all if it is dropped from a declaration during a refactor -- and
* nothing about the resulting library would look wrong.
*/
#include <akstdlib.h>
int main(void)
{
void *ptr = NULL;
/* Discarding the returned context. This is the line that must not build. */
aksl_malloc(32, &ptr);
return 0;
}