mode_t.m4 1.2 KB

123456789101112131415161718192021222324252627
  1. # mode_t.m4 serial 2
  2. dnl Copyright (C) 2009-2014 Free Software Foundation, Inc.
  3. dnl This file is free software; the Free Software Foundation
  4. dnl gives unlimited permission to copy and/or distribute it,
  5. dnl with or without modifications, as long as this notice is preserved.
  6. # For using mode_t, it's sufficient to use AC_TYPE_MODE_T and
  7. # include <sys/types.h>.
  8. # Define PROMOTED_MODE_T to the type that is the result of "default argument
  9. # promotion" (ISO C 6.5.2.2.(6)) of the type mode_t.
  10. AC_DEFUN([gl_PROMOTED_TYPE_MODE_T],
  11. [
  12. AC_REQUIRE([AC_TYPE_MODE_T])
  13. AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [
  14. dnl Assume mode_t promotes to 'int' if and only if it is smaller than 'int',
  15. dnl and to itself otherwise. This assumption is not guaranteed by the ISO C
  16. dnl standard, but we don't know of any real-world counterexamples.
  17. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]],
  18. [[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])],
  19. [gl_cv_promoted_mode_t='int'],
  20. [gl_cv_promoted_mode_t='mode_t'])
  21. ])
  22. AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t],
  23. [Define to the type that is the result of default argument promotions of type mode_t.])
  24. ])