5.44 Other built-in functions provided by GCC
GCC provides a large number of built-in functions other than the ones
mentioned above. Some of these are for internal use in the processing
of exceptions or variable-length argument lists and will not be
documented here because they may change from time to time; we do not
recommend general use of these functions.
The remaining functions are provided for optimization purposes.
GCC includes built-in versions of many of the functions in the
standard C library. The versions prefixed with _builtin will always
be treated as having the same meaning as the C library function even
if you specify the -fno-builtin option. (see C Dialect Options) Many
of these functions are only optimized in certain cases; if they are
not optimized in a particular case, a call to the library function
will be emitted.
Outside strict ISO C mode (-ansi, -std=c89 or -std=c99), the functions
_exit, alloca, bcmp, bzero, dcgettext, dgettext, dremf, dreml, drem, exp10f, exp10l, exp10, ffsll, ffsl, ffs, fprintf_unlocked,
fputs_unlocked, gammaf, gammal, gamma, gettext, index, isascii, j0f,
j0l, j0, j1f, j1l, j1, jnf, jnl, jn, mempcpy, pow10f, pow10l, pow10,
printf_unlocked, rindex, scalbf, scalbl, scalb, signbit, signbitf,
signbitl, significandf, significandl, significand, sincosf, sincosl,
sincos, stpcpy, strdup, strfmon, toascii, y0f, y0l, y0, y1f, y1l, y1,
ynf, ynl and yn may be handled as built-in functions. All these
functions have corresponding versions prefixed with _builtin, which
may be used even in strict C89 mode.
The ISO C99 functions _Exit, acoshf, acoshl, acosh, asinhf, asinhl,
asinh, atanhf, atanhl, atanh, cabsf, cabsl, cabs, cacosf, cacoshf,
cacoshl, cacosh, cacosl, cacos, cargf, cargl, carg, casinf, casinhf,
casinhl, casinh, casinl, casin, catanf, catanhf, catanhl, catanh,
catanl, catan, cbrtf, cbrtl, cbrt, ccosf, ccoshf, ccoshl, ccosh,
ccosl, ccos, cexpf, cexpl, cexp, cimagf, cimagl, cimag, conjf, conjl,
conj, copysignf, copysignl, copysign, cpowf, cpowl, cpow, cprojf,
cprojl, cproj, crealf, creall, creal, csinf, csinhf, csinhl, csinh,
csinl, csin, csqrtf, csqrtl, csqrt, ctanf, ctanhf, ctanhl, ctanh,
ctanl, ctan, erfcf, erfcl, erfc, erff, erfl, erf, exp2f, exp2l, exp2,
expm1f, expm1l, expm1, fdimf, fdiml, fdim, fmaf, fmal, fmaxf, fmaxl,
fmax, fma, fminf, fminl, fmin, hypotf, hypotl, hypot, ilogbf, ilogbl,
ilogb, imaxabs, isblank, iswblank, lgammaf, lgammal, lgamma, llabs,
llrintf, llrintl, llrint, llroundf, llroundl, llround, log1pf, log1pl,
log1p, log2f, log2l, log2, logbf, logbl, logb, lrintf, lrintl, lrint,
lroundf, lroundl, lround, nearbyintf, nearbyintl, nearbyint,
nextafterf, nextafterl, nextafter, nexttowardf, nexttowardl,
nexttoward, remainderf, remainderl, remainder, remquof, remquol,
remquo, rintf, rintl, rint, roundf, roundl, round, scalblnf, scalblnl,
scalbln, scalbnf, scalbnl, scalbn, snprintf, tgammaf, tgammal, tgamma,
truncf, truncl, trunc, vfscanf, vscanf, vsnprintf and vsscanf are
handled as built-in functions except in strict ISO C90 mode (-ansi or
-std=c89).