unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (NetBSD-6.1.5)
Page:
Section:
Apropos / Subsearch:
optional field

__BUILTIN_CONSTANT_P(3)    Library Functions Manual    __BUILTIN_CONSTANT_P(3)

NAME
     __builtin_constant_p -- GNU extension to determine compile time constants

SYNOPSIS
     int
     __builtin_constant_p(value);

DESCRIPTION
     The __builtin_constant_p() is a GNU extension for determining whether a
     value is known to be constant at compile time.  The function is closely
     related to the concept of ``constant folding'' used by modern optimizing
     compilers.

     If the value is known to be a compile-time constant, a value 1 is
     returned.  If __builtin_constant_p() returns 0, the value is not a
     compile-time constant in the sense that gcc(1) was unable to determine
     whether the value is constant or not.

EXAMPLES
     A typical example of the use of __builtin_constant_p() involves a
     situation where it may be desirable to fold the computation if it
     involves a constant, but a function call is needed otherwise.  For
     instance, bswap16(3) is defined in NetBSD as:

           #define bswap16(x) \
                   (__builtin_constant_p((x)) ? \
                    __byte_swap_u16_constant(x) : __BYTE_SWAP_U16_VARIABLE(x))

SEE ALSO
     gcc(1), __builtin_object_size(3), __builtin_return_address(3)

CAVEATS
     This is a non-standard, compiler-specific extension.

NetBSD 6.1.5                   December 19, 2010                  NetBSD 6.1.5