Reid Spencer | 491f681 | 2004-09-07 06:56:14 +0000 | [diff] [blame] | 1 | # |
| 2 | # Determine if the printf() functions have the %a format character. |
| 3 | # This is modified from: |
| 4 | # http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html |
Reid Spencer | 1ac1d40 | 2004-11-25 04:44:46 +0000 | [diff] [blame] | 5 | AC_DEFUN([AC_C_PRINTF_A], |
Reid Spencer | 9274621 | 2004-11-27 21:59:57 +0000 | [diff] [blame] | 6 | [AC_CACHE_CHECK([if printf has the %a format character],[llvm_cv_c_printf_a], |
Reid Spencer | 1ac1d40 | 2004-11-25 04:44:46 +0000 | [diff] [blame] | 7 | [AC_LANG_PUSH([C]) |
| 8 | AC_RUN_IFELSE([ |
| 9 | AC_LANG_PROGRAM([[ |
Reid Spencer | 12de17d | 2004-09-19 22:31:49 +0000 | [diff] [blame] | 10 | #include <stdio.h> |
| 11 | #include <stdlib.h> |
| 12 | ]],[[ |
| 13 | volatile double A, B; |
| 14 | char Buffer[100]; |
| 15 | A = 1; |
| 16 | A /= 10.0; |
| 17 | sprintf(Buffer, "%a", A); |
| 18 | B = atof(Buffer); |
| 19 | if (A != B) |
| 20 | return (1); |
| 21 | if (A != 0x1.999999999999ap-4) |
| 22 | return (1); |
| 23 | return (0);]])], |
Reid Spencer | 9274621 | 2004-11-27 21:59:57 +0000 | [diff] [blame] | 24 | llvm_cv_c_printf_a=yes, |
| 25 | llvmac_cv_c_printf_a=no, |
| 26 | llvmac_cv_c_printf_a=no) |
Reid Spencer | 1ac1d40 | 2004-11-25 04:44:46 +0000 | [diff] [blame] | 27 | AC_LANG_POP([C])]) |
Reid Spencer | 9274621 | 2004-11-27 21:59:57 +0000 | [diff] [blame] | 28 | if test "$llvm_cv_c_printf_a" = "yes"; then |
Reid Spencer | 12de17d | 2004-09-19 22:31:49 +0000 | [diff] [blame] | 29 | AC_DEFINE([HAVE_PRINTF_A],[1],[Define to have the %a format string]) |
| 30 | fi |
Reid Spencer | 491f681 | 2004-09-07 06:56:14 +0000 | [diff] [blame] | 31 | ]) |