#
# Determine if the printf() functions have the %a format character.
# This is modified from:
# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
AC_DEFUN([AC_C_PRINTF_A],
[AC_CACHE_CHECK([if printf has the %a format character],[llvm_cv_c_printf_a],
[AC_LANG_PUSH([C])
 AC_RUN_IFELSE([
  AC_LANG_PROGRAM([[
#include <stdio.h>
#include <stdlib.h>
]],[[
volatile double A, B;
char Buffer[100];
A = 1;
A /= 10.0;
sprintf(Buffer, "%a", A);
B = atof(Buffer);
if (A != B)
  return (1);
if (A != 0x1.999999999999ap-4)
  return (1);
return (0);]])],
  llvm_cv_c_printf_a=yes,
  llvmac_cv_c_printf_a=no,
  llvmac_cv_c_printf_a=no)
 AC_LANG_POP([C])])
 if test "$llvm_cv_c_printf_a" = "yes"; then
   AC_DEFINE([HAVE_PRINTF_A],[1],[Define to have the %a format string])
 fi
])
