(autoconf.info)Specific Compiler Characteristics

Next: Generic Compiler Characteristics Up: Compilers and Preprocessors

5.10.1 Specific Compiler Characteristics

Some compilers exhibit different behaviors.

Static/Dynamic Expressions
     Autoconf relies on a trick to extract one bit of information from
     the C compiler: using negative array sizes.  For instance the
     following excerpt of a C source demonstrates how to test whether
     `int' objects are 4 bytes wide:

          static int test_array[sizeof (int) == 4 ? 1 : -1];

     To our knowledge, there is a single compiler that does not support
     this trick: the HP C compilers (the real ones, not only the
     "bundled") on HP-UX 11.00.  They incorrectly reject the above
     program with the diagnostic "Variable-length arrays cannot have
     static storage."  This bug comes from HP compilers' mishandling of
     `sizeof (int)', not from the `? 1 : -1', and Autoconf works around
     this problem by casting `sizeof (int)' to `long int' before
     comparing it.

automatically generated by info2www