Skip to content
REFERENCE

invalid-annotation

Default severity: warning · Identifier: weavec::invalid-annotation

A weavec.* annotation WeaveC does not recognise, WEAVEC_NULLABLE and WEAVEC_NONNULL on the same declaration, WEAVEC_RETAINS and WEAVEC_RELEASES on the same declaration, WEAVEC_OWNED_BY(f) without WEAVEC_OWNED (RFC 0010), WEAVEC_SIZED_BY(n) on a non-pointer or naming no integer parameter ('<p>' is declared WEAVEC_SIZED_BY(n) but is not a pointer / ... but 'n' is not an integer parameter, RFC 0011), WEAVEC_SIZED_BY(g) on a field that is not a pointer or whose g is no integer field of the record (field 'data' is declared WEAVEC_SIZED_BY(cap) but 'cap' is not an integer field of 'struct buf' / field 'n' is declared WEAVEC_SIZED_BY(cap) but is not a pointer, once per unit, when the field is first used), or weavec.assume on any function but weavec.h’s ('weavec.assume' is not an annotation for 'f', RFC 0012). Reported on definitions.

Check the macro spelling, placement, supported declaration kind, and named parameters or fields. WEAVEC_SIZED_BY must name an appropriate integer count; WEAVEC_OWNED_BY requires an ownership declaration. See annotation placement.

Diagnostic controls · Checked guarantees