ax_c__generic.m4 918 B

12345678910111213141516171819202122232425262728
  1. # https://lists.gnu.org/archive/html/autoconf-commit/2012-12/msg00004.html
  2. # AC_C__GENERIC
  3. # -------------
  4. # Define HAVE_C__GENERIC if _Generic works, a la C11.
  5. AN_IDENTIFIER([_Generic], [AC_C__GENERIC])
  6. AC_DEFUN([AC_C__GENERIC],
  7. [AC_CACHE_CHECK([for _Generic], ac_cv_c__Generic,
  8. [AC_COMPILE_IFELSE(
  9. [AC_LANG_SOURCE(
  10. [[int
  11. main (int argc, char **argv)
  12. {
  13. int a = _Generic (argc, int: argc = 1);
  14. int *b = &_Generic (argc, default: argc);
  15. char ***c = _Generic (argv, int: argc, default: argv ? &argv : 0);
  16. _Generic (1 ? 0 : b, int: a, default: b) = &argc;
  17. _Generic (a = 1, default: a) = 3;
  18. return a + !b + !c;
  19. }
  20. ]])],
  21. [ac_cv_c__Generic=yes],
  22. [ac_cv_c__Generic=no])])
  23. if test $ac_cv_c__Generic = yes; then
  24. AC_DEFINE([HAVE_C__GENERIC], 1,
  25. [Define to 1 if C11-style _Generic works.])
  26. fi
  27. ])# AC_C__GENERIC