manpagez: man pages & more
info autoconf
Home | html | info | man

File: autoconf.info,  Node: Test Functions,  Next: Generating Sources,  Prev: Guidelines,  Up: Writing Test Programs

6.2.2 Test Functions
--------------------

Functions in test code should use function prototypes, introduced in C89
and required in C23.

   Functions that test programs declare should also be conditionalized
for C++, which requires ‘extern "C"’ prototypes.  Make sure to not
include any header files containing clashing prototypes.

     #ifdef __cplusplus
     extern "C"
     #endif
     void *valloc (size_t);

   If a test program calls a function with invalid parameters (just to
see whether it exists), organize the program to ensure that it never
invokes that function.  You can do this by calling it in another
function that is never invoked.  You can't do it by putting it after a
call to ‘exit’, because GCC version 2 knows that ‘exit’ never returns
and optimizes out any code that follows it in the same block.

   If you include any header files, be sure to call the functions
relevant to them with the correct number of arguments, even if they are
just 0, to avoid compilation errors due to prototypes.  GCC version 2
has internal prototypes for several functions that it automatically
inlines; for example, ‘memcpy’.  To avoid errors when checking for them,
either pass them the correct number of arguments or redeclare them with
a different return type (such as ‘char’).

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.