/* PR c/66970 - Add __has_builtin() macro Verify __has_builtin evaluation for disabled library built-ins. { dg-do compile } { dg-options "-fno-builtin-abs" } { dg-additional-options "-std=c90" { target c } } */ #if !__has_builtin (__builtin_abs) // __builtin_xxx is always available regardless of -fno-builtin. # error "__has_builtin (__builtin_abs) failed" #endif #if __has_builtin (abs) # error "__has_builtin (abs) failed" #endif #if __has_builtin (abs) # error "__has_builtin (abs) failed" #endif #if !__has_builtin (__builtin_vsnprintf) // __builtin_vsnprintf is available in all language modes. # error "__has_builtin (__builtin_vsnprintf) failed" #endif #if !__has_builtin (vsnprintf) # if __cplusplus // vsnprintf is always available in C++. # error "__has_builtin (vsnprintf) failed" # endif #else # if !__cplusplus // vsnprintf is a C99 function not available in C90. # error "__has_builtin (vsnprintf) failed" # endif #endif