In alloc.h
of djbdns-1.05 there’s the following code:
extern /*@null@*//*@out@*/char *alloc();
My question is about the goofy-looking /*@null@*//*@out*
“decorator.” I assume this is “just a comment” with some significance to djbdns’s build system. But I can’t find anything referencing it in other files.
Anybody know what this is?
They’re almost certainly annotations used by a static code analysis tool. I don’t know for sure which tool those annotations are for, but it might be Splint, which uses that @foo@
syntax. The Splint manual, Appendix C: Annotations lists various annotations which can be used.
Static analysis tools are used to automatically check for some classes of programming error. This is similar to how compilers can emit warnings about common mistakes or potential problems in the code, except that static analysis tools typically perform much more extensive (and computationally expensive) analysis of the code. Annotations in the code are used to give the tool more information about how the code is intended to behave.
0