Branch data Line data Source code
1 : : /* Test of <stddef.h> substitute.
2 : : Copyright (C) 2009-2012 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 <http://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 : :
23 : : #include "verify.h"
24 : :
25 : : /* Check that appropriate types are defined. */
26 : : wchar_t a = 'c';
27 : : ptrdiff_t b = 1;
28 : : size_t c = 2;
29 : :
30 : : /* Check that NULL can be passed through varargs as a pointer type,
31 : : per POSIX 2008. */
32 : : verify (sizeof NULL == sizeof (void *));
33 : :
34 : : /* Check that offsetof produces integer constants with correct type. */
35 : : struct d
36 : : {
37 : : char e;
38 : : char f;
39 : : };
40 : : /* Solaris 10 has a bug where offsetof is under-parenthesized, and
41 : : cannot be used as an arbitrary expression. However, since it is
42 : : unlikely to bite real code, we ignore that short-coming. */
43 : : /* verify (sizeof offsetof (struct d, e) == sizeof (size_t)); */
44 : : verify (sizeof (offsetof (struct d, e)) == sizeof (size_t));
45 : : verify (offsetof (struct d, e) < -1); /* Must be unsigned. */
46 : : verify (offsetof (struct d, f) == 1);
47 : :
48 : : int
49 : 1 : main (void)
50 : : {
51 : 1 : return 0;
52 : : }
|