Hash :
4af8d6a0
Author :
Date :
2025-01-17T22:32:58
sys_types-h: Ensure blksize_t and blkcnt_t are defined. * lib/sys_types.in.h (blksize_t, blkcnt_t): New definitions. * m4/sys_types_h.m4 (gl_SYS_TYPES_H): Set HAVE_BLKSIZE_T and HAVE_BLKCNT_T. * modules/sys_types-h (Makefile.am): Substitute HAVE_BLKSIZE_T and HAVE_BLKCNT_T. * tests/test-sys_types-h.c: Check that blksize_t and blkcnt_t are defined. Include intprops.h. Check the signedness of various types. * modules/sys_types-h-tests (Depends-on): Add assert-h, intprops. * doc/posix-headers/sys_types.texi: Mention the issues with blksize_t and blkcnt_t.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
/* Test of <sys/types.h> substitute.
Copyright (C) 2011-2025 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
#include <config.h>
#include <sys/types.h>
/* Check that the most important types are defined. */
pid_t t1;
size_t t2;
ssize_t t3;
off_t t4;
mode_t t5;
off64_t t6;
blksize_t t7;
blkcnt_t t8;
#include "intprops.h"
/* POSIX requires that pid_t is a signed integer type. */
static_assert (TYPE_SIGNED (pid_t));
/* POSIX requires that size_t is an unsigned integer type. */
static_assert (! TYPE_SIGNED (size_t));
/* POSIX requires that ssize_t is a signed integer type. */
static_assert (TYPE_SIGNED (ssize_t));
/* POSIX requires that off_t is a signed integer type. */
static_assert (TYPE_SIGNED (off_t));
static_assert (TYPE_SIGNED (off64_t));
/* POSIX requires that blksize_t is a signed integer type. */
#if !defined __ANDROID__
static_assert (TYPE_SIGNED (blksize_t));
#endif
/* POSIX requires that blkcnt_t is a signed integer type. */
#if !defined __ANDROID__
static_assert (TYPE_SIGNED (blkcnt_t));
#endif
int
main (void)
{
return 0;
}