| /* 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 |