LCOV - GNU Libidn - lib/gltests/test-stddef.c

LCOV - code coverage report
Current view: top level - lib/gltests - test-stddef.c (source / functions) Hit Total Coverage
Test: GNU Libidn Lines: 2 2 100.0 %
Date: 2020年07月22日 17:53:13 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

 Line data Source code
 1  : /* Test of <stddef.h> substitute.
 2  : Copyright (C) 2009-2020 Free Software Foundation, Inc.
 3  : 
 4  : This program is free software: you can redistribute it and/or modify
 5  : it under the terms of the GNU General Public License as published by
 6  : the Free Software Foundation; either version 3 of the License, or
 7  : (at your option) any later version.
 8  : 
 9  : This program is distributed in the hope that it will be useful,
 10  : but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 12  : GNU General Public License for more details.
 13  : 
 14  : You should have received a copy of the GNU General Public License
 15  : along with this program. If not, see <https://www.gnu.org/licenses/>. */
 16  : 
 17  : /* Written by Eric Blake <ebb9@byu.net>, 2009. */
 18  : 
 19  : #include <config.h>
 20  : 
 21  : #include <stddef.h>
 22  : #include <limits.h>
 23  : #include <stdalign.h>
 24  : #include "verify.h"
 25  : 
 26  : /* Check that appropriate types are defined. */
 27  : wchar_t a = 'c';
 28  : ptrdiff_t b = 1;
 29  : size_t c = 2;
 30  : max_align_t x;
 31  : 
 32  : /* Check that NULL can be passed through varargs as a pointer type,
 33  : per POSIX 2008. */
 34  : verify (sizeof NULL == sizeof (void *));
 35  : 
 36  : /* Check that offsetof produces integer constants with correct type. */
 37  : struct d
 38  : {
 39  : char e;
 40  : char f;
 41  : };
 42  : /* Solaris 10 has a bug where offsetof is under-parenthesized, and
 43  : cannot be used as an arbitrary expression. However, since it is
 44  : unlikely to bite real code, we ignore that short-coming. */
 45  : /* verify (sizeof offsetof (struct d, e) == sizeof (size_t)); */
 46  : verify (sizeof (offsetof (struct d, e)) == sizeof (size_t));
 47  : verify (offsetof (struct d, f) == 1);
 48  : 
 49  : /* offsetof promotes to an unsigned integer if and only if sizes do
 50  : not fit in int. */
 51  : verify ((offsetof (struct d, e) < -1) == (INT_MAX < (size_t) -1));
 52  : 
 53  : /* Check max_align_t's alignment. */
 54  : verify (alignof (double) <= alignof (max_align_t));
 55  : verify (alignof (int) <= alignof (max_align_t));
 56  : verify (alignof (long double) <= alignof (max_align_t));
 57  : verify (alignof (long int) <= alignof (max_align_t));
 58  : verify (alignof (ptrdiff_t) <= alignof (max_align_t));
 59  : verify (alignof (size_t) <= alignof (max_align_t));
 60  : verify (alignof (wchar_t) <= alignof (max_align_t));
 61  : verify (alignof (struct d) <= alignof (max_align_t));
 62  : #if defined __GNUC__ || defined __IBM__ALIGNOF__
 63  : verify (__alignof__ (double) <= __alignof__ (max_align_t));
 64  : verify (__alignof__ (int) <= __alignof__ (max_align_t));
 65  : verify (__alignof__ (long double) <= __alignof__ (max_align_t));
 66  : verify (__alignof__ (long int) <= __alignof__ (max_align_t));
 67  : verify (__alignof__ (ptrdiff_t) <= __alignof__ (max_align_t));
 68  : verify (__alignof__ (size_t) <= __alignof__ (max_align_t));
 69  : verify (__alignof__ (wchar_t) <= __alignof__ (max_align_t));
 70  : verify (__alignof__ (struct d) <= __alignof__ (max_align_t));
 71  : #endif
 72  : 
 73  : int
 74  1 : main (void)
 75  : {
 76  1 : return 0;
 77  : }

Generated by: LCOV version 1.13

AltStyle によって変換されたページ (->オリジナル) /