Tests for module 'inttypes'.
[gnulib.git] / tests / test-inttypes.c
1 /* Test of <inttypes.h> substitute.
2    Copyright (C) 2006-2007 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 2, or (at your option)
7    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, write to the Free Software Foundation,
16    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
17
18 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
19
20 #include <config.h>
21
22 #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
23 #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
24 #define __STDC_FORMAT_MACROS 1 /* to make it work also in C++ mode */
25 #include <inttypes.h>
26
27 #include <stddef.h>
28
29 /* Tests for macros supposed to be defined in inttypes.h.  */
30
31 const char *k = /* implicit string concatenation */
32 #ifdef INT8_MAX
33   PRId8 PRIi8
34 #endif
35 #ifdef UINT8_MAX
36   PRIo8 PRIu8 PRIx8 PRIX8
37 #endif
38 #ifdef INT16_MAX
39   PRId16 PRIi16
40 #endif
41 #ifdef UINT16_MAX
42   PRIo16 PRIu16 PRIx16 PRIX16
43 #endif
44 #ifdef INT32_MAX
45   PRId32 PRIi32
46 #endif
47 #ifdef UINT32_MAX
48   PRIo32 PRIu32 PRIx32 PRIX32
49 #endif
50 #ifdef INT64_MAX
51   PRId64 PRIi64
52 #endif
53 #ifdef UINT64_MAX
54   PRIo64 PRIu64 PRIx64 PRIX64
55 #endif
56   PRIdLEAST8 PRIiLEAST8 PRIoLEAST8 PRIuLEAST8 PRIxLEAST8 PRIXLEAST8
57   PRIdLEAST16 PRIiLEAST16 PRIoLEAST16 PRIuLEAST16 PRIxLEAST16 PRIXLEAST16
58   PRIdLEAST32 PRIiLEAST32 PRIoLEAST32 PRIuLEAST32 PRIxLEAST32 PRIXLEAST32
59   PRIdLEAST64 PRIiLEAST64
60   PRIoLEAST64 PRIuLEAST64 PRIxLEAST64 PRIXLEAST64
61   PRIdFAST8 PRIiFAST8 PRIoFAST8 PRIuFAST8 PRIxFAST8 PRIXFAST8
62   PRIdFAST16 PRIiFAST16 PRIoFAST16 PRIuFAST16 PRIxFAST16 PRIXFAST16
63   PRIdFAST32 PRIiFAST32 PRIoFAST32 PRIuFAST32 PRIxFAST32 PRIXFAST32
64   PRIdFAST64 PRIiFAST64
65   PRIoFAST64 PRIuFAST64 PRIxFAST64 PRIXFAST64
66   PRIdMAX PRIiMAX PRIoMAX PRIuMAX PRIxMAX PRIXMAX
67 #ifdef INTPTR_MAX
68   PRIdPTR PRIiPTR
69 #endif
70 #ifdef UINTPTR_MAX
71   PRIoPTR PRIuPTR PRIxPTR PRIXPTR
72 #endif
73   ;
74 const char *l = /* implicit string concatenation */
75 #ifdef INT8_MAX
76   SCNd8 SCNi8
77 #endif
78 #ifdef UINT8_MAX
79   SCNo8 SCNu8 SCNx8
80 #endif
81 #ifdef INT16_MAX
82   SCNd16 SCNi16
83 #endif
84 #ifdef UINT16_MAX
85   SCNo16 SCNu16 SCNx16
86 #endif
87 #ifdef INT32_MAX
88   SCNd32 SCNi32
89 #endif
90 #ifdef UINT32_MAX
91   SCNo32 SCNu32 SCNx32
92 #endif
93 #ifdef INT64_MAX
94   SCNd64 SCNi64
95 #endif
96 #ifdef UINT64_MAX
97   SCNo64 SCNu64 SCNx64
98 #endif
99   SCNdLEAST8 SCNiLEAST8 SCNoLEAST8 SCNuLEAST8 SCNxLEAST8
100   SCNdLEAST16 SCNiLEAST16 SCNoLEAST16 SCNuLEAST16 SCNxLEAST16
101   SCNdLEAST32 SCNiLEAST32 SCNoLEAST32 SCNuLEAST32 SCNxLEAST32
102   SCNdLEAST64 SCNiLEAST64
103   SCNoLEAST64 SCNuLEAST64 SCNxLEAST64
104   SCNdFAST8 SCNiFAST8 SCNoFAST8 SCNuFAST8 SCNxFAST8
105   SCNdFAST16 SCNiFAST16 SCNoFAST16 SCNuFAST16 SCNxFAST16
106   SCNdFAST32 SCNiFAST32 SCNoFAST32 SCNuFAST32 SCNxFAST32
107   SCNdFAST64 SCNiFAST64
108   SCNoFAST64 SCNuFAST64 SCNxFAST64
109   SCNdMAX SCNiMAX SCNoMAX SCNuMAX SCNxMAX
110 #ifdef INTPTR_MAX
111   SCNdPTR SCNiPTR
112 #endif
113 #ifdef UINTPTR_MAX
114   SCNoPTR SCNuPTR SCNxPTR
115 #endif
116   ;
117
118 int
119 main ()
120 {
121   return 0;
122 }