Upx_Doxygen
https://github.com/upx/upx
All Classes
miniacc.h
1 /* ACC --- Automatic Compiler Configuration
2 
3  This file is part of the UPX executable compressor.
4 
5  Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
6  All Rights Reserved.
7 
8  UPX and the UCL library are free software; you can redistribute them
9  and/or modify them under the terms of the GNU General Public License as
10  published by the Free Software Foundation; either version 2 of
11  the License, or (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with this program; see the file COPYING.
20  If not, write to the Free Software Foundation, Inc.,
21  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 
23  Markus F.X.J. Oberhumer
24  <markus@oberhumer.com>
25  http://www.oberhumer.com/
26  */
27 
28 #ifndef __ACC_H_INCLUDED
29 #define __ACC_H_INCLUDED 1
30 #define ACC_VERSION 20160919L
31 #if defined(__CYGWIN32__) && !defined(__CYGWIN__)
32 # define __CYGWIN__ __CYGWIN32__
33 #endif
34 #if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE)
35 # define _ALL_SOURCE 1
36 #endif
37 #if defined(__mips__) && defined(__R5900__)
38 # if !defined(__LONG_MAX__)
39 # define __LONG_MAX__ 9223372036854775807L
40 # endif
41 #endif
42 #if 0
43 #elif !defined(__ACC_LANG_OVERRIDE)
44 #if (defined(__clang__) || defined(__GNUC__)) && defined(__ASSEMBLER__)
45 # if (__ASSEMBLER__+0) <= 0
46 # error "__ASSEMBLER__"
47 # else
48 # define ACC_LANG_ASSEMBLER 1
49 # endif
50 #elif defined(__cplusplus)
51 # if (__cplusplus+0) <= 0
52 # error "__cplusplus"
53 # elif (__cplusplus < 199711L)
54 # define ACC_LANG_CXX 1
55 # elif defined(_MSC_VER) && defined(_MSVC_LANG) && (_MSVC_LANG+0 >= 201402L) && 1
56 # define ACC_LANG_CXX _MSVC_LANG
57 # else
58 # define ACC_LANG_CXX __cplusplus
59 # endif
60 # define ACC_LANG_CPLUSPLUS ACC_LANG_CXX
61 #else
62 # if defined(__STDC_VERSION__) && (__STDC_VERSION__+0 >= 199409L)
63 # define ACC_LANG_C __STDC_VERSION__
64 # else
65 # define ACC_LANG_C 1
66 # endif
67 #endif
68 #endif
69 #if !defined(ACC_CFG_NO_DISABLE_WUNDEF)
70 #if defined(__ARMCC_VERSION)
71 # pragma diag_suppress 193
72 #elif defined(__clang__) && defined(__clang_minor__)
73 # pragma clang diagnostic ignored "-Wundef"
74 #elif defined(__INTEL_COMPILER)
75 # pragma warning(disable: 193)
76 #elif defined(__KEIL__) && defined(__C166__)
77 # pragma warning disable = 322
78 #elif defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__PATHSCALE__)
79 # if ((__GNUC__-0) >= 5 || ((__GNUC__-0) == 4 && (__GNUC_MINOR__-0) >= 2))
80 # pragma GCC diagnostic ignored "-Wundef"
81 # endif
82 #elif defined(_MSC_VER) && !defined(__clang__) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__)
83 # if ((_MSC_VER-0) >= 1300)
84 # pragma warning(disable: 4668)
85 # endif
86 #endif
87 #endif
88 #if 0 && defined(__POCC__) && defined(_WIN32)
89 # if (__POCC__ >= 400)
90 # pragma warn(disable: 2216)
91 # endif
92 #endif
93 #if 0 && defined(__WATCOMC__)
94 # if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060)
95 # pragma warning 203 9
96 # endif
97 #endif
98 #if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__)
99 # pragma option -h
100 #endif
101 #if !(ACC_CFG_NO_DISABLE_WCRTNONSTDC)
102 #ifndef _CRT_NONSTDC_NO_DEPRECATE
103 #define _CRT_NONSTDC_NO_DEPRECATE 1
104 #endif
105 #ifndef _CRT_NONSTDC_NO_WARNINGS
106 #define _CRT_NONSTDC_NO_WARNINGS 1
107 #endif
108 #ifndef _CRT_SECURE_NO_DEPRECATE
109 #define _CRT_SECURE_NO_DEPRECATE 1
110 #endif
111 #ifndef _CRT_SECURE_NO_WARNINGS
112 #define _CRT_SECURE_NO_WARNINGS 1
113 #endif
114 #endif
115 #if (ACC_CFG_NO_CONFIG_HEADER)
116 #elif defined(ACC_CFG_CONFIG_HEADER)
117 # include ACC_CFG_CONFIG_HEADER
118 #else
119 #endif
120 #if (ACC_CFG_NO_LIMITS_H)
121 #elif (ACC_LIBC_NAKED) || (ACC_BROKEN_LIMITS_H)
122 #ifndef __ACC_FALLBACK_LIMITS_H_INCLUDED
123 #define __ACC_FALLBACK_LIMITS_H_INCLUDED 1
124 #undef CHAR_BIT
125 #define CHAR_BIT 8
126 #ifndef MB_LEN_MAX
127 #define MB_LEN_MAX 1
128 #endif
129 #ifndef __SCHAR_MAX__
130 #define __SCHAR_MAX__ 127
131 #endif
132 #ifndef __SHRT_MAX__
133 #define __SHRT_MAX__ 32767
134 #endif
135 #ifndef __INT_MAX__
136 #define __INT_MAX__ 2147483647
137 #endif
138 #ifndef __LONG_MAX__
139 #if defined(_ILP32) || defined(__ILP32__)
140 #define __LONG_MAX__ 2147483647L
141 #elif defined(__alpha__) || defined(_LP64) || defined(__MIPS_PSX2__)
142 #define __LONG_MAX__ 9223372036854775807L
143 #else
144 #define __LONG_MAX__ 2147483647L
145 #endif
146 #endif
147 #undef SCHAR_MIN
148 #undef SCHAR_MAX
149 #undef UCHAR_MAX
150 #define SCHAR_MIN (-1 - SCHAR_MAX)
151 #define SCHAR_MAX (__SCHAR_MAX__)
152 #define UCHAR_MAX (SCHAR_MAX * 2 + 1)
153 #undef SHRT_MIN
154 #undef SHRT_MAX
155 #undef USHRT_MAX
156 #define SHRT_MIN (-1 - SHRT_MAX)
157 #define SHRT_MAX (__SHRT_MAX__)
158 #if ((__INT_MAX__) == (__SHRT_MAX__))
159 #define USHRT_MAX (SHRT_MAX * 2U + 1U)
160 #else
161 #define USHRT_MAX (SHRT_MAX * 2 + 1)
162 #endif
163 #undef INT_MIN
164 #undef INT_MAX
165 #undef UINT_MAX
166 #define INT_MIN (-1 - INT_MAX)
167 #define INT_MAX (__INT_MAX__)
168 #define UINT_MAX (INT_MAX * 2U + 1U)
169 #undef LONG_MIN
170 #undef LONG_MAX
171 #undef ULONG_MAX
172 #define LONG_MIN (-1L - LONG_MAX)
173 #define LONG_MAX ((__LONG_MAX__) + 0L)
174 #define ULONG_MAX (LONG_MAX * 2UL + 1UL)
175 #undef CHAR_MIN
176 #undef CHAR_MAX
177 #if defined(__CHAR_UNSIGNED__) || defined(_CHAR_UNSIGNED)
178 #define CHAR_MIN 0
179 #define CHAR_MAX UCHAR_MAX
180 #else
181 #define CHAR_MIN SCHAR_MIN
182 #define CHAR_MAX SCHAR_MAX
183 #endif
184 #endif
185 #else
186 # include <limits.h>
187 #endif
188 #if 0
189 #define ACC_0xffffUL 0xfffful
190 #define ACC_0xffffffffUL 0xfffffffful
191 #else
192 #define ACC_0xffffUL 65535ul
193 #define ACC_0xffffffffUL 4294967295ul
194 #endif
195 #define ACC_0xffffL ACC_0xffffUL
196 #define ACC_0xffffffffL ACC_0xffffffffUL
197 #if (ACC_0xffffL == ACC_0xffffffffL)
198 # error "your preprocessor is broken 1"
199 #endif
200 #if (16ul * 16384ul != 262144ul)
201 # error "your preprocessor is broken 2"
202 #endif
203 #if 0
204 #if (32767 >= 4294967295ul)
205 # error "your preprocessor is broken 3"
206 #endif
207 #if (65535u >= 4294967295ul)
208 # error "your preprocessor is broken 4"
209 #endif
210 #endif
211 #if defined(__COUNTER__)
212 # ifndef ACC_CFG_USE_COUNTER
213 # define ACC_CFG_USE_COUNTER 1
214 # endif
215 #else
216 # undef ACC_CFG_USE_COUNTER
217 #endif
218 #if (UINT_MAX == ACC_0xffffL)
219 #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__)
220 # if !defined(MSDOS)
221 # define MSDOS 1
222 # endif
223 # if !defined(_MSDOS)
224 # define _MSDOS 1
225 # endif
226 #elif 0 && defined(__VERSION) && defined(MB_LEN_MAX)
227 # if (__VERSION == 520) && (MB_LEN_MAX == 1)
228 # if !defined(__AZTEC_C__)
229 # define __AZTEC_C__ __VERSION
230 # endif
231 # if !defined(__DOS__)
232 # define __DOS__ 1
233 # endif
234 # endif
235 #endif
236 #endif
237 #if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == ACC_0xffffL)
238 # define ptrdiff_t long
239 # define _PTRDIFF_T_DEFINED 1
240 #endif
241 #if (UINT_MAX == ACC_0xffffL)
242 # undef __ACC_RENAME_A
243 # undef __ACC_RENAME_B
244 # if defined(__AZTEC_C__) && defined(__DOS__)
245 # define __ACC_RENAME_A 1
246 # elif defined(_MSC_VER) && defined(MSDOS)
247 # if (_MSC_VER < 600)
248 # define __ACC_RENAME_A 1
249 # elif (_MSC_VER < 700)
250 # define __ACC_RENAME_B 1
251 # endif
252 # elif defined(__TSC__) && defined(__OS2__)
253 # define __ACC_RENAME_A 1
254 # elif defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0410)
255 # define __ACC_RENAME_A 1
256 # elif defined(__PACIFIC__) && defined(DOS)
257 # if !defined(__far)
258 # define __far far
259 # endif
260 # if !defined(__near)
261 # define __near near
262 # endif
263 # endif
264 # if defined(__ACC_RENAME_A)
265 # if !defined(__cdecl)
266 # define __cdecl cdecl
267 # endif
268 # if !defined(__far)
269 # define __far far
270 # endif
271 # if !defined(__huge)
272 # define __huge huge
273 # endif
274 # if !defined(__near)
275 # define __near near
276 # endif
277 # if !defined(__pascal)
278 # define __pascal pascal
279 # endif
280 # if !defined(__huge)
281 # define __huge huge
282 # endif
283 # elif defined(__ACC_RENAME_B)
284 # if !defined(__cdecl)
285 # define __cdecl _cdecl
286 # endif
287 # if !defined(__far)
288 # define __far _far
289 # endif
290 # if !defined(__huge)
291 # define __huge _huge
292 # endif
293 # if !defined(__near)
294 # define __near _near
295 # endif
296 # if !defined(__pascal)
297 # define __pascal _pascal
298 # endif
299 # elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
300 # if !defined(__cdecl)
301 # define __cdecl cdecl
302 # endif
303 # if !defined(__pascal)
304 # define __pascal pascal
305 # endif
306 # endif
307 # undef __ACC_RENAME_A
308 # undef __ACC_RENAME_B
309 #endif
310 #if (UINT_MAX == ACC_0xffffL)
311 #if defined(__AZTEC_C__) && defined(__DOS__)
312 # define ACC_BROKEN_CDECL_ALT_SYNTAX 1
313 #elif defined(_MSC_VER) && defined(MSDOS)
314 # if (_MSC_VER < 600)
315 # define ACC_BROKEN_INTEGRAL_CONSTANTS 1
316 # endif
317 # if (_MSC_VER < 700)
318 # define ACC_BROKEN_INTEGRAL_PROMOTION 1
319 # define ACC_BROKEN_SIZEOF 1
320 # endif
321 #elif defined(__PACIFIC__) && defined(DOS)
322 # define ACC_BROKEN_INTEGRAL_CONSTANTS 1
323 #elif defined(__TURBOC__) && defined(__MSDOS__)
324 # if (__TURBOC__ < 0x0150)
325 # define ACC_BROKEN_CDECL_ALT_SYNTAX 1
326 # define ACC_BROKEN_INTEGRAL_CONSTANTS 1
327 # define ACC_BROKEN_INTEGRAL_PROMOTION 1
328 # endif
329 # if (__TURBOC__ < 0x0200)
330 # define ACC_BROKEN_SIZEOF 1
331 # endif
332 # if (__TURBOC__ < 0x0400) && defined(__cplusplus)
333 # define ACC_BROKEN_CDECL_ALT_SYNTAX 1
334 # endif
335 #elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
336 # define ACC_BROKEN_CDECL_ALT_SYNTAX 1
337 # define ACC_BROKEN_SIZEOF 1
338 #endif
339 #endif
340 #if defined(__WATCOMC__) && (__WATCOMC__ < 900)
341 # define ACC_BROKEN_INTEGRAL_CONSTANTS 1
342 #endif
343 #if defined(_CRAY) && defined(_CRAY1)
344 # define ACC_BROKEN_SIGNED_RIGHT_SHIFT 1
345 #endif
346 #define ACC_PP_STRINGIZE(x) #x
347 #define ACC_PP_MACRO_EXPAND(x) ACC_PP_STRINGIZE(x)
348 #define ACC_PP_CONCAT0() /*empty*/
349 #define ACC_PP_CONCAT1(a) a
350 #define ACC_PP_CONCAT2(a,b) a ## b
351 #define ACC_PP_CONCAT3(a,b,c) a ## b ## c
352 #define ACC_PP_CONCAT4(a,b,c,d) a ## b ## c ## d
353 #define ACC_PP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e
354 #define ACC_PP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f
355 #define ACC_PP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g
356 #define ACC_PP_ECONCAT0() ACC_PP_CONCAT0()
357 #define ACC_PP_ECONCAT1(a) ACC_PP_CONCAT1(a)
358 #define ACC_PP_ECONCAT2(a,b) ACC_PP_CONCAT2(a,b)
359 #define ACC_PP_ECONCAT3(a,b,c) ACC_PP_CONCAT3(a,b,c)
360 #define ACC_PP_ECONCAT4(a,b,c,d) ACC_PP_CONCAT4(a,b,c,d)
361 #define ACC_PP_ECONCAT5(a,b,c,d,e) ACC_PP_CONCAT5(a,b,c,d,e)
362 #define ACC_PP_ECONCAT6(a,b,c,d,e,f) ACC_PP_CONCAT6(a,b,c,d,e,f)
363 #define ACC_PP_ECONCAT7(a,b,c,d,e,f,g) ACC_PP_CONCAT7(a,b,c,d,e,f,g)
364 #define ACC_PP_EMPTY /*empty*/
365 #define ACC_PP_EMPTY0() /*empty*/
366 #define ACC_PP_EMPTY1(a) /*empty*/
367 #define ACC_PP_EMPTY2(a,b) /*empty*/
368 #define ACC_PP_EMPTY3(a,b,c) /*empty*/
369 #define ACC_PP_EMPTY4(a,b,c,d) /*empty*/
370 #define ACC_PP_EMPTY5(a,b,c,d,e) /*empty*/
371 #define ACC_PP_EMPTY6(a,b,c,d,e,f) /*empty*/
372 #define ACC_PP_EMPTY7(a,b,c,d,e,f,g) /*empty*/
373 #if 1
374 #define ACC_CPP_STRINGIZE(x) #x
375 #define ACC_CPP_MACRO_EXPAND(x) ACC_CPP_STRINGIZE(x)
376 #define ACC_CPP_CONCAT2(a,b) a ## b
377 #define ACC_CPP_CONCAT3(a,b,c) a ## b ## c
378 #define ACC_CPP_CONCAT4(a,b,c,d) a ## b ## c ## d
379 #define ACC_CPP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e
380 #define ACC_CPP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f
381 #define ACC_CPP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g
382 #define ACC_CPP_ECONCAT2(a,b) ACC_CPP_CONCAT2(a,b)
383 #define ACC_CPP_ECONCAT3(a,b,c) ACC_CPP_CONCAT3(a,b,c)
384 #define ACC_CPP_ECONCAT4(a,b,c,d) ACC_CPP_CONCAT4(a,b,c,d)
385 #define ACC_CPP_ECONCAT5(a,b,c,d,e) ACC_CPP_CONCAT5(a,b,c,d,e)
386 #define ACC_CPP_ECONCAT6(a,b,c,d,e,f) ACC_CPP_CONCAT6(a,b,c,d,e,f)
387 #define ACC_CPP_ECONCAT7(a,b,c,d,e,f,g) ACC_CPP_CONCAT7(a,b,c,d,e,f,g)
388 #endif
389 #define __ACC_MASK_GEN(o,b) (((((o) << ((b)-!!(b))) - (o)) << 1) + (o)*!!(b))
390 #if 1 && defined(__cplusplus)
391 # if !defined(__STDC_CONSTANT_MACROS)
392 # define __STDC_CONSTANT_MACROS 1
393 # endif
394 # if !defined(__STDC_LIMIT_MACROS)
395 # define __STDC_LIMIT_MACROS 1
396 # endif
397 #endif
398 #if defined(__cplusplus)
399 # define ACC_EXTERN_C extern "C"
400 # define ACC_EXTERN_C_BEGIN extern "C" {
401 # define ACC_EXTERN_C_END }
402 #else
403 # define ACC_EXTERN_C extern
404 # define ACC_EXTERN_C_BEGIN /*empty*/
405 # define ACC_EXTERN_C_END /*empty*/
406 #endif
407 #if !defined(__ACC_OS_OVERRIDE)
408 #if (ACC_OS_FREESTANDING)
409 # define ACC_INFO_OS "freestanding"
410 #elif (ACC_OS_EMBEDDED)
411 # define ACC_INFO_OS "embedded"
412 #elif 1 && defined(__IAR_SYSTEMS_ICC__)
413 # define ACC_OS_EMBEDDED 1
414 # define ACC_INFO_OS "embedded"
415 #elif defined(__CYGWIN__) && defined(__GNUC__)
416 # define ACC_OS_CYGWIN 1
417 # define ACC_INFO_OS "cygwin"
418 #elif defined(__EMX__) && defined(__GNUC__)
419 # define ACC_OS_EMX 1
420 # define ACC_INFO_OS "emx"
421 #elif defined(__BEOS__)
422 # define ACC_OS_BEOS 1
423 # define ACC_INFO_OS "beos"
424 #elif defined(__Lynx__)
425 # define ACC_OS_LYNXOS 1
426 # define ACC_INFO_OS "lynxos"
427 #elif defined(__OS400__)
428 # define ACC_OS_OS400 1
429 # define ACC_INFO_OS "os400"
430 #elif defined(__QNX__)
431 # define ACC_OS_QNX 1
432 # define ACC_INFO_OS "qnx"
433 #elif defined(__BORLANDC__) && defined(__DPMI32__) && (__BORLANDC__ >= 0x0460)
434 # define ACC_OS_DOS32 1
435 # define ACC_INFO_OS "dos32"
436 #elif defined(__BORLANDC__) && defined(__DPMI16__)
437 # define ACC_OS_DOS16 1
438 # define ACC_INFO_OS "dos16"
439 #elif defined(__ZTC__) && defined(DOS386)
440 # define ACC_OS_DOS32 1
441 # define ACC_INFO_OS "dos32"
442 #elif defined(__OS2__) || defined(__OS2V2__)
443 # if (UINT_MAX == ACC_0xffffL)
444 # define ACC_OS_OS216 1
445 # define ACC_INFO_OS "os216"
446 # elif (UINT_MAX == ACC_0xffffffffL)
447 # define ACC_OS_OS2 1
448 # define ACC_INFO_OS "os2"
449 # else
450 # error "check your limits.h header"
451 # endif
452 #elif defined(__WIN64__) || defined(_WIN64) || defined(WIN64)
453 # define ACC_OS_WIN64 1
454 # define ACC_INFO_OS "win64"
455 #elif defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS_386__)
456 # define ACC_OS_WIN32 1
457 # define ACC_INFO_OS "win32"
458 #elif defined(__MWERKS__) && defined(__INTEL__)
459 # define ACC_OS_WIN32 1
460 # define ACC_INFO_OS "win32"
461 #elif defined(__WINDOWS__) || defined(_WINDOWS) || defined(_Windows)
462 # if (UINT_MAX == ACC_0xffffL)
463 # define ACC_OS_WIN16 1
464 # define ACC_INFO_OS "win16"
465 # elif (UINT_MAX == ACC_0xffffffffL)
466 # define ACC_OS_WIN32 1
467 # define ACC_INFO_OS "win32"
468 # else
469 # error "check your limits.h header"
470 # endif
471 #elif defined(__DOS__) || defined(__MSDOS__) || defined(_MSDOS) || defined(MSDOS) || (defined(__PACIFIC__) && defined(DOS))
472 # if (UINT_MAX == ACC_0xffffL)
473 # define ACC_OS_DOS16 1
474 # define ACC_INFO_OS "dos16"
475 # elif (UINT_MAX == ACC_0xffffffffL)
476 # define ACC_OS_DOS32 1
477 # define ACC_INFO_OS "dos32"
478 # else
479 # error "check your limits.h header"
480 # endif
481 #elif defined(__WATCOMC__)
482 # if defined(__NT__) && (UINT_MAX == ACC_0xffffL)
483 # define ACC_OS_DOS16 1
484 # define ACC_INFO_OS "dos16"
485 # elif defined(__NT__) && (__WATCOMC__ < 1100)
486 # define ACC_OS_WIN32 1
487 # define ACC_INFO_OS "win32"
488 # elif defined(__linux__) || defined(__LINUX__)
489 # define ACC_OS_POSIX 1
490 # define ACC_INFO_OS "posix"
491 # else
492 # error "please specify a target using the -bt compiler option"
493 # endif
494 #elif defined(__palmos__)
495 # define ACC_OS_PALMOS 1
496 # define ACC_INFO_OS "palmos"
497 #elif defined(__TOS__) || defined(__atarist__)
498 # define ACC_OS_TOS 1
499 # define ACC_INFO_OS "tos"
500 #elif defined(macintosh) && !defined(__arm__) && !defined(__i386__) && !defined(__ppc__) && !defined(__x64_64__)
501 # define ACC_OS_MACCLASSIC 1
502 # define ACC_INFO_OS "macclassic"
503 #elif defined(__VMS)
504 # define ACC_OS_VMS 1
505 # define ACC_INFO_OS "vms"
506 #elif (defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)
507 # define ACC_OS_CONSOLE 1
508 # define ACC_OS_CONSOLE_PS2 1
509 # define ACC_INFO_OS "console"
510 # define ACC_INFO_OS_CONSOLE "ps2"
511 #elif defined(__mips__) && defined(__psp__)
512 # define ACC_OS_CONSOLE 1
513 # define ACC_OS_CONSOLE_PSP 1
514 # define ACC_INFO_OS "console"
515 # define ACC_INFO_OS_CONSOLE "psp"
516 #else
517 # define ACC_OS_POSIX 1
518 # define ACC_INFO_OS "posix"
519 #endif
520 #if (ACC_OS_POSIX)
521 # if defined(_AIX) || defined(__AIX__) || defined(__aix__)
522 # define ACC_OS_POSIX_AIX 1
523 # define ACC_INFO_OS_POSIX "aix"
524 # elif defined(__FreeBSD__)
525 # define ACC_OS_POSIX_FREEBSD 1
526 # define ACC_INFO_OS_POSIX "freebsd"
527 # elif defined(__hpux__) || defined(__hpux)
528 # define ACC_OS_POSIX_HPUX 1
529 # define ACC_INFO_OS_POSIX "hpux"
530 # elif defined(__INTERIX)
531 # define ACC_OS_POSIX_INTERIX 1
532 # define ACC_INFO_OS_POSIX "interix"
533 # elif defined(__IRIX__) || defined(__irix__)
534 # define ACC_OS_POSIX_IRIX 1
535 # define ACC_INFO_OS_POSIX "irix"
536 # elif defined(__linux__) || defined(__linux) || defined(__LINUX__)
537 # define ACC_OS_POSIX_LINUX 1
538 # define ACC_INFO_OS_POSIX "linux"
539 # elif defined(__APPLE__) && defined(__MACH__)
540 # if ((__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__-0) >= 20000)
541 # define ACC_OS_POSIX_DARWIN 1040
542 # define ACC_INFO_OS_POSIX "darwin_iphone"
543 # elif ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) >= 1040)
544 # define ACC_OS_POSIX_DARWIN __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
545 # define ACC_INFO_OS_POSIX "darwin"
546 # else
547 # define ACC_OS_POSIX_DARWIN 1
548 # define ACC_INFO_OS_POSIX "darwin"
549 # endif
550 # define ACC_OS_POSIX_MACOSX ACC_OS_POSIX_DARWIN
551 # elif defined(__minix__) || defined(__minix)
552 # define ACC_OS_POSIX_MINIX 1
553 # define ACC_INFO_OS_POSIX "minix"
554 # elif defined(__NetBSD__)
555 # define ACC_OS_POSIX_NETBSD 1
556 # define ACC_INFO_OS_POSIX "netbsd"
557 # elif defined(__OpenBSD__)
558 # define ACC_OS_POSIX_OPENBSD 1
559 # define ACC_INFO_OS_POSIX "openbsd"
560 # elif defined(__osf__)
561 # define ACC_OS_POSIX_OSF 1
562 # define ACC_INFO_OS_POSIX "osf"
563 # elif defined(__solaris__) || defined(__sun)
564 # if defined(__SVR4) || defined(__svr4__)
565 # define ACC_OS_POSIX_SOLARIS 1
566 # define ACC_INFO_OS_POSIX "solaris"
567 # else
568 # define ACC_OS_POSIX_SUNOS 1
569 # define ACC_INFO_OS_POSIX "sunos"
570 # endif
571 # elif defined(__ultrix__) || defined(__ultrix)
572 # define ACC_OS_POSIX_ULTRIX 1
573 # define ACC_INFO_OS_POSIX "ultrix"
574 # elif defined(_UNICOS)
575 # define ACC_OS_POSIX_UNICOS 1
576 # define ACC_INFO_OS_POSIX "unicos"
577 # else
578 # define ACC_OS_POSIX_UNKNOWN 1
579 # define ACC_INFO_OS_POSIX "unknown"
580 # endif
581 #endif
582 #endif
583 #if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
584 # if (UINT_MAX != ACC_0xffffL)
585 # error "unexpected configuration - check your compiler defines"
586 # endif
587 # if (ULONG_MAX != ACC_0xffffffffL)
588 # error "unexpected configuration - check your compiler defines"
589 # endif
590 #endif
591 #if (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_WIN32 || ACC_OS_WIN64)
592 # if (UINT_MAX != ACC_0xffffffffL)
593 # error "unexpected configuration - check your compiler defines"
594 # endif
595 # if (ULONG_MAX != ACC_0xffffffffL)
596 # error "unexpected configuration - check your compiler defines"
597 # endif
598 #endif
599 #if defined(CIL) && defined(_GNUCC) && defined(__GNUC__)
600 # define ACC_CC_CILLY 1
601 # define ACC_INFO_CC "Cilly"
602 # if defined(__CILLY__)
603 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__CILLY__)
604 # else
605 # define ACC_INFO_CCVER "unknown"
606 # endif
607 #elif 0 && defined(SDCC) && defined(__VERSION__) && !defined(__GNUC__)
608 # define ACC_CC_SDCC 1
609 # define ACC_INFO_CC "sdcc"
610 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(SDCC)
611 #elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__)
612 # define ACC_CC_PATHSCALE (__PATHCC__ * 0x10000L + (__PATHCC_MINOR__-0) * 0x100 + (__PATHCC_PATCHLEVEL__-0))
613 # define ACC_INFO_CC "Pathscale C"
614 # define ACC_INFO_CCVER __PATHSCALE__
615 # if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
616 # define ACC_CC_PATHSCALE_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
617 # endif
618 #elif defined(__INTEL_COMPILER) && ((__INTEL_COMPILER-0) > 0)
619 # define ACC_CC_INTELC __INTEL_COMPILER
620 # define ACC_INFO_CC "Intel C"
621 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__INTEL_COMPILER)
622 # if defined(_MSC_VER) && ((_MSC_VER-0) > 0)
623 # define ACC_CC_INTELC_MSC _MSC_VER
624 # elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
625 # define ACC_CC_INTELC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
626 # endif
627 #elif defined(__POCC__) && defined(_WIN32)
628 # define ACC_CC_PELLESC 1
629 # define ACC_INFO_CC "Pelles C"
630 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__POCC__)
631 #elif defined(__ARMCC_VERSION) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
632 # if defined(__GNUC_PATCHLEVEL__)
633 # define ACC_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
634 # else
635 # define ACC_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100)
636 # endif
637 # define ACC_CC_ARMCC __ARMCC_VERSION
638 # define ACC_INFO_CC "ARM C Compiler"
639 # define ACC_INFO_CCVER __VERSION__
640 #elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__)
641 # if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__)
642 # define ACC_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
643 # else
644 # define ACC_CC_CLANG 0x010000L
645 # endif
646 # if defined(_MSC_VER) && ((_MSC_VER-0) > 0)
647 # define ACC_CC_CLANG_MSC _MSC_VER
648 # elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
649 # define ACC_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
650 # endif
651 # define ACC_INFO_CC "clang"
652 # if defined(__clang_version__)
653 # define ACC_INFO_CCVER __clang_version__
654 # else
655 # define ACC_INFO_CCVER __VERSION__
656 # endif
657 #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
658 # if defined(__GNUC_PATCHLEVEL__)
659 # define ACC_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
660 # else
661 # define ACC_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100)
662 # endif
663 # define ACC_CC_LLVM ACC_CC_LLVM_GNUC
664 # define ACC_INFO_CC "llvm-gcc"
665 # define ACC_INFO_CCVER __VERSION__
666 #elif defined(__ACK__) && defined(_ACK)
667 # define ACC_CC_ACK 1
668 # define ACC_INFO_CC "Amsterdam Compiler Kit C"
669 # define ACC_INFO_CCVER "unknown"
670 #elif defined(__ARMCC_VERSION) && !defined(__GNUC__)
671 # define ACC_CC_ARMCC __ARMCC_VERSION
672 # define ACC_CC_ARMCC_ARMCC __ARMCC_VERSION
673 # define ACC_INFO_CC "ARM C Compiler"
674 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__ARMCC_VERSION)
675 #elif defined(__AZTEC_C__)
676 # define ACC_CC_AZTECC 1
677 # define ACC_INFO_CC "Aztec C"
678 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__AZTEC_C__)
679 #elif defined(__CODEGEARC__)
680 # define ACC_CC_CODEGEARC 1
681 # define ACC_INFO_CC "CodeGear C"
682 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__CODEGEARC__)
683 #elif defined(__BORLANDC__)
684 # define ACC_CC_BORLANDC 1
685 # define ACC_INFO_CC "Borland C"
686 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__BORLANDC__)
687 #elif defined(_CRAYC) && defined(_RELEASE)
688 # define ACC_CC_CRAYC 1
689 # define ACC_INFO_CC "Cray C"
690 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_RELEASE)
691 #elif defined(__DMC__) && defined(__SC__)
692 # define ACC_CC_DMC 1
693 # define ACC_INFO_CC "Digital Mars C"
694 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__DMC__)
695 #elif defined(__DECC)
696 # define ACC_CC_DECC 1
697 # define ACC_INFO_CC "DEC C"
698 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__DECC)
699 #elif (defined(__ghs) || defined(__ghs__)) && defined(__GHS_VERSION_NUMBER) && ((__GHS_VERSION_NUMBER-0) > 0)
700 # define ACC_CC_GHS 1
701 # define ACC_INFO_CC "Green Hills C"
702 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__GHS_VERSION_NUMBER)
703 # if defined(_MSC_VER) && ((_MSC_VER-0) > 0)
704 # define ACC_CC_GHS_MSC _MSC_VER
705 # elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
706 # define ACC_CC_GHS_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
707 # endif
708 #elif defined(__HIGHC__)
709 # define ACC_CC_HIGHC 1
710 # define ACC_INFO_CC "MetaWare High C"
711 # define ACC_INFO_CCVER "unknown"
712 #elif defined(__HP_aCC) && ((__HP_aCC-0) > 0)
713 # define ACC_CC_HPACC __HP_aCC
714 # define ACC_INFO_CC "HP aCC"
715 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__HP_aCC)
716 #elif defined(__IAR_SYSTEMS_ICC__)
717 # define ACC_CC_IARC 1
718 # define ACC_INFO_CC "IAR C"
719 # if defined(__VER__)
720 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__VER__)
721 # else
722 # define ACC_INFO_CCVER "unknown"
723 # endif
724 #elif defined(__IBMC__) && ((__IBMC__-0) > 0)
725 # define ACC_CC_IBMC __IBMC__
726 # define ACC_INFO_CC "IBM C"
727 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__IBMC__)
728 #elif defined(__IBMCPP__) && ((__IBMCPP__-0) > 0)
729 # define ACC_CC_IBMC __IBMCPP__
730 # define ACC_INFO_CC "IBM C"
731 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__IBMCPP__)
732 #elif defined(__KEIL__) && defined(__C166__)
733 # define ACC_CC_KEILC 1
734 # define ACC_INFO_CC "Keil C"
735 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__C166__)
736 #elif defined(__LCC__) && defined(_WIN32) && defined(__LCCOPTIMLEVEL)
737 # define ACC_CC_LCCWIN32 1
738 # define ACC_INFO_CC "lcc-win32"
739 # define ACC_INFO_CCVER "unknown"
740 #elif defined(__LCC__)
741 # define ACC_CC_LCC 1
742 # define ACC_INFO_CC "lcc"
743 # if defined(__LCC_VERSION__)
744 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__LCC_VERSION__)
745 # else
746 # define ACC_INFO_CCVER "unknown"
747 # endif
748 #elif defined(__MWERKS__) && ((__MWERKS__-0) > 0)
749 # define ACC_CC_MWERKS __MWERKS__
750 # define ACC_INFO_CC "Metrowerks C"
751 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__MWERKS__)
752 #elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386)
753 # define ACC_CC_NDPC 1
754 # define ACC_INFO_CC "Microway NDP C"
755 # define ACC_INFO_CCVER "unknown"
756 #elif defined(__PACIFIC__)
757 # define ACC_CC_PACIFICC 1
758 # define ACC_INFO_CC "Pacific C"
759 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PACIFIC__)
760 #elif defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__)
761 # if defined(__PGIC_PATCHLEVEL__)
762 # define ACC_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100 + (__PGIC_PATCHLEVEL__-0))
763 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PGIC__) "." ACC_PP_MACRO_EXPAND(__PGIC_MINOR__) "." ACC_PP_MACRO_EXPAND(__PGIC_PATCHLEVEL__)
764 # else
765 # define ACC_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100)
766 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PGIC__) "." ACC_PP_MACRO_EXPAND(__PGIC_MINOR__) ".0"
767 # endif
768 # define ACC_INFO_CC "Portland Group PGI C"
769 #elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__))
770 # define ACC_CC_PGI 1
771 # define ACC_INFO_CC "Portland Group PGI C"
772 # define ACC_INFO_CCVER "unknown"
773 #elif defined(__PUREC__) && defined(__TOS__)
774 # define ACC_CC_PUREC 1
775 # define ACC_INFO_CC "Pure C"
776 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PUREC__)
777 #elif defined(__SC__) && defined(__ZTC__)
778 # define ACC_CC_SYMANTECC 1
779 # define ACC_INFO_CC "Symantec C"
780 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SC__)
781 #elif defined(__SUNPRO_C)
782 # define ACC_INFO_CC "SunPro C"
783 # if ((__SUNPRO_C-0) > 0)
784 # define ACC_CC_SUNPROC __SUNPRO_C
785 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SUNPRO_C)
786 # else
787 # define ACC_CC_SUNPROC 1
788 # define ACC_INFO_CCVER "unknown"
789 # endif
790 #elif defined(__SUNPRO_CC)
791 # define ACC_INFO_CC "SunPro C"
792 # if ((__SUNPRO_CC-0) > 0)
793 # define ACC_CC_SUNPROC __SUNPRO_CC
794 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SUNPRO_CC)
795 # else
796 # define ACC_CC_SUNPROC 1
797 # define ACC_INFO_CCVER "unknown"
798 # endif
799 #elif defined(__TINYC__)
800 # define ACC_CC_TINYC 1
801 # define ACC_INFO_CC "Tiny C"
802 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TINYC__)
803 #elif defined(__TSC__)
804 # define ACC_CC_TOPSPEEDC 1
805 # define ACC_INFO_CC "TopSpeed C"
806 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TSC__)
807 #elif defined(__WATCOMC__)
808 # define ACC_CC_WATCOMC 1
809 # define ACC_INFO_CC "Watcom C"
810 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__WATCOMC__)
811 #elif defined(__TURBOC__)
812 # define ACC_CC_TURBOC 1
813 # define ACC_INFO_CC "Turbo C"
814 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TURBOC__)
815 #elif defined(__ZTC__)
816 # define ACC_CC_ZORTECHC 1
817 # define ACC_INFO_CC "Zortech C"
818 # if ((__ZTC__-0) == 0x310)
819 # define ACC_INFO_CCVER "0x310"
820 # else
821 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__ZTC__)
822 # endif
823 #elif defined(__GNUC__) && defined(__VERSION__)
824 # if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
825 # define ACC_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
826 # elif defined(__GNUC_MINOR__)
827 # define ACC_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100)
828 # else
829 # define ACC_CC_GNUC (__GNUC__ * 0x10000L)
830 # endif
831 # define ACC_INFO_CC "gcc"
832 # define ACC_INFO_CCVER __VERSION__
833 #elif defined(_MSC_VER) && ((_MSC_VER-0) > 0)
834 # define ACC_CC_MSC _MSC_VER
835 # define ACC_INFO_CC "Microsoft C"
836 # if defined(_MSC_FULL_VER)
837 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER) "." ACC_PP_MACRO_EXPAND(_MSC_FULL_VER)
838 # else
839 # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER)
840 # endif
841 #else
842 # define ACC_CC_UNKNOWN 1
843 # define ACC_INFO_CC "unknown"
844 # define ACC_INFO_CCVER "unknown"
845 #endif
846 #if (ACC_CC_GNUC) && defined(__OPEN64__)
847 # if defined(__OPENCC__) && defined(__OPENCC_MINOR__) && defined(__OPENCC_PATCHLEVEL__)
848 # define ACC_CC_OPEN64 (__OPENCC__ * 0x10000L + (__OPENCC_MINOR__-0) * 0x100 + (__OPENCC_PATCHLEVEL__-0))
849 # define ACC_CC_OPEN64_GNUC ACC_CC_GNUC
850 # endif
851 #endif
852 #if (ACC_CC_GNUC) && defined(__PCC__)
853 # if defined(__PCC__) && defined(__PCC_MINOR__) && defined(__PCC_MINORMINOR__)
854 # define ACC_CC_PCC (__PCC__ * 0x10000L + (__PCC_MINOR__-0) * 0x100 + (__PCC_MINORMINOR__-0))
855 # define ACC_CC_PCC_GNUC ACC_CC_GNUC
856 # endif
857 #endif
858 #if 0 && (ACC_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER)
859 # error "ACC_CC_MSC: _MSC_FULL_VER is not defined"
860 #endif
861 #if !defined(__ACC_ARCH_OVERRIDE) && !(ACC_ARCH_GENERIC) && defined(_CRAY)
862 # if (UINT_MAX > ACC_0xffffffffL) && defined(_CRAY)
863 # if defined(_CRAYMPP) || defined(_CRAYT3D) || defined(_CRAYT3E)
864 # define ACC_ARCH_CRAY_MPP 1
865 # elif defined(_CRAY1)
866 # define ACC_ARCH_CRAY_PVP 1
867 # endif
868 # endif
869 #endif
870 #if !defined(__ACC_ARCH_OVERRIDE)
871 #if (ACC_ARCH_GENERIC)
872 # define ACC_INFO_ARCH "generic"
873 #elif (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
874 # define ACC_ARCH_I086 1
875 # define ACC_INFO_ARCH "i086"
876 #elif defined(__aarch64__) || defined(_M_ARM64)
877 # define ACC_ARCH_ARM64 1
878 # define ACC_INFO_ARCH "arm64"
879 #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
880 # define ACC_ARCH_ALPHA 1
881 # define ACC_INFO_ARCH "alpha"
882 #elif (ACC_ARCH_CRAY_MPP) && (defined(_CRAYT3D) || defined(_CRAYT3E))
883 # define ACC_ARCH_ALPHA 1
884 # define ACC_INFO_ARCH "alpha"
885 #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
886 # define ACC_ARCH_AMD64 1
887 # define ACC_INFO_ARCH "amd64"
888 #elif defined(__arm__) || defined(_M_ARM)
889 # define ACC_ARCH_ARM 1
890 # define ACC_INFO_ARCH "arm"
891 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
892 # define ACC_ARCH_ARM 1
893 # define ACC_INFO_ARCH "arm"
894 #elif (UINT_MAX <= ACC_0xffffL) && defined(__AVR__)
895 # define ACC_ARCH_AVR 1
896 # define ACC_INFO_ARCH "avr"
897 #elif defined(__avr32__) || defined(__AVR32__)
898 # define ACC_ARCH_AVR32 1
899 # define ACC_INFO_ARCH "avr32"
900 #elif defined(__bfin__)
901 # define ACC_ARCH_BLACKFIN 1
902 # define ACC_INFO_ARCH "blackfin"
903 #elif (UINT_MAX == ACC_0xffffL) && defined(__C166__)
904 # define ACC_ARCH_C166 1
905 # define ACC_INFO_ARCH "c166"
906 #elif defined(__cris__)
907 # define ACC_ARCH_CRIS 1
908 # define ACC_INFO_ARCH "cris"
909 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCEZ80__)
910 # define ACC_ARCH_EZ80 1
911 # define ACC_INFO_ARCH "ez80"
912 #elif defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
913 # define ACC_ARCH_H8300 1
914 # define ACC_INFO_ARCH "h8300"
915 #elif defined(__hppa__) || defined(__hppa)
916 # define ACC_ARCH_HPPA 1
917 # define ACC_INFO_ARCH "hppa"
918 #elif defined(__386__) || defined(__i386__) || defined(__i386) || defined(_M_IX86) || defined(_M_I386)
919 # define ACC_ARCH_I386 1
920 # define ACC_ARCH_IA32 1
921 # define ACC_INFO_ARCH "i386"
922 #elif (ACC_CC_ZORTECHC && defined(__I86__))
923 # define ACC_ARCH_I386 1
924 # define ACC_ARCH_IA32 1
925 # define ACC_INFO_ARCH "i386"
926 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC) && defined(_I386)
927 # define ACC_ARCH_I386 1
928 # define ACC_ARCH_IA32 1
929 # define ACC_INFO_ARCH "i386"
930 #elif defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
931 # define ACC_ARCH_IA64 1
932 # define ACC_INFO_ARCH "ia64"
933 #elif (UINT_MAX == ACC_0xffffL) && defined(__m32c__)
934 # define ACC_ARCH_M16C 1
935 # define ACC_INFO_ARCH "m16c"
936 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCM16C__)
937 # define ACC_ARCH_M16C 1
938 # define ACC_INFO_ARCH "m16c"
939 #elif defined(__m32r__)
940 # define ACC_ARCH_M32R 1
941 # define ACC_INFO_ARCH "m32r"
942 #elif (ACC_OS_TOS) || defined(__m68k__) || defined(__m68000__) || defined(__mc68000__) || defined(__mc68020__) || defined(_M_M68K)
943 # define ACC_ARCH_M68K 1
944 # define ACC_INFO_ARCH "m68k"
945 #elif (UINT_MAX == ACC_0xffffL) && defined(__C251__)
946 # define ACC_ARCH_MCS251 1
947 # define ACC_INFO_ARCH "mcs251"
948 #elif (UINT_MAX == ACC_0xffffL) && defined(__C51__)
949 # define ACC_ARCH_MCS51 1
950 # define ACC_INFO_ARCH "mcs51"
951 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC8051__)
952 # define ACC_ARCH_MCS51 1
953 # define ACC_INFO_ARCH "mcs51"
954 #elif defined(__mips__) || defined(__mips) || defined(_MIPS_ARCH) || defined(_M_MRX000)
955 # define ACC_ARCH_MIPS 1
956 # define ACC_INFO_ARCH "mips"
957 #elif (UINT_MAX == ACC_0xffffL) && defined(__MSP430__)
958 # define ACC_ARCH_MSP430 1
959 # define ACC_INFO_ARCH "msp430"
960 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC430__)
961 # define ACC_ARCH_MSP430 1
962 # define ACC_INFO_ARCH "msp430"
963 #elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
964 # define ACC_ARCH_POWERPC 1
965 # define ACC_INFO_ARCH "powerpc"
966 #elif defined(__powerpc64__) || defined(__powerpc64) || defined(__ppc64__) || defined(__PPC64__)
967 # define ACC_ARCH_POWERPC 1
968 # define ACC_INFO_ARCH "powerpc"
969 #elif defined(__powerpc64le__) || defined(__powerpc64le) || defined(__ppc64le__) || defined(__PPC64LE__)
970 # define ACC_ARCH_POWERPC 1
971 # define ACC_INFO_ARCH "powerpc"
972 #elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
973 # define ACC_ARCH_S390 1
974 # define ACC_INFO_ARCH "s390"
975 #elif defined(__sh__) || defined(_M_SH)
976 # define ACC_ARCH_SH 1
977 # define ACC_INFO_ARCH "sh"
978 #elif defined(__sparc__) || defined(__sparc) || defined(__sparcv8)
979 # define ACC_ARCH_SPARC 1
980 # define ACC_INFO_ARCH "sparc"
981 #elif defined(__SPU__)
982 # define ACC_ARCH_SPU 1
983 # define ACC_INFO_ARCH "spu"
984 #elif (UINT_MAX == ACC_0xffffL) && defined(__z80)
985 # define ACC_ARCH_Z80 1
986 # define ACC_INFO_ARCH "z80"
987 #elif (ACC_ARCH_CRAY_PVP)
988 # if defined(_CRAYSV1)
989 # define ACC_ARCH_CRAY_SV1 1
990 # define ACC_INFO_ARCH "cray_sv1"
991 # elif (_ADDR64)
992 # define ACC_ARCH_CRAY_T90 1
993 # define ACC_INFO_ARCH "cray_t90"
994 # elif (_ADDR32)
995 # define ACC_ARCH_CRAY_YMP 1
996 # define ACC_INFO_ARCH "cray_ymp"
997 # else
998 # define ACC_ARCH_CRAY_XMP 1
999 # define ACC_INFO_ARCH "cray_xmp"
1000 # endif
1001 #else
1002 # define ACC_ARCH_UNKNOWN 1
1003 # define ACC_INFO_ARCH "unknown"
1004 #endif
1005 #endif
1006 #if !defined(ACC_ARCH_ARM_THUMB2)
1007 #if (ACC_ARCH_ARM)
1008 # if defined(__thumb__) || defined(__thumb) || defined(_M_THUMB)
1009 # if defined(__thumb2__)
1010 # define ACC_ARCH_ARM_THUMB2 1
1011 # elif 1 && defined(__TARGET_ARCH_THUMB) && ((__TARGET_ARCH_THUMB)+0 >= 4)
1012 # define ACC_ARCH_ARM_THUMB2 1
1013 # endif
1014 # endif
1015 #endif
1016 #endif
1017 #if (ACC_ARCH_ARM_THUMB2)
1018 # undef ACC_INFO_ARCH
1019 # define ACC_INFO_ARCH "arm_thumb2"
1020 #endif
1021 #if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_DOS32 || ACC_OS_OS2)
1022 # error "FIXME - missing define for CPU architecture"
1023 #endif
1024 #if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN32)
1025 # error "FIXME - missing ACC_OS_WIN32 define for CPU architecture"
1026 #endif
1027 #if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN64)
1028 # error "FIXME - missing ACC_OS_WIN64 define for CPU architecture"
1029 #endif
1030 #if (ACC_OS_OS216 || ACC_OS_WIN16)
1031 # define ACC_ARCH_I086PM 1
1032 #elif 1 && (ACC_OS_DOS16 && defined(BLX286))
1033 # define ACC_ARCH_I086PM 1
1034 #elif 1 && (ACC_OS_DOS16 && defined(DOSX286))
1035 # define ACC_ARCH_I086PM 1
1036 #elif 1 && (ACC_OS_DOS16 && ACC_CC_BORLANDC && defined(__DPMI16__))
1037 # define ACC_ARCH_I086PM 1
1038 #endif
1039 #if (ACC_ARCH_AMD64 && !ACC_ARCH_X64)
1040 # define ACC_ARCH_X64 1
1041 #elif (!ACC_ARCH_AMD64 && ACC_ARCH_X64) && defined(__ACC_ARCH_OVERRIDE)
1042 # define ACC_ARCH_AMD64 1
1043 #endif
1044 #if (ACC_ARCH_ARM64 && !ACC_ARCH_AARCH64)
1045 # define ACC_ARCH_AARCH64 1
1046 #elif (!ACC_ARCH_ARM64 && ACC_ARCH_AARCH64) && defined(__ACC_ARCH_OVERRIDE)
1047 # define ACC_ARCH_ARM64 1
1048 #endif
1049 #if (ACC_ARCH_I386 && !ACC_ARCH_X86)
1050 # define ACC_ARCH_X86 1
1051 #elif (!ACC_ARCH_I386 && ACC_ARCH_X86) && defined(__ACC_ARCH_OVERRIDE)
1052 # define ACC_ARCH_I386 1
1053 #endif
1054 #if (ACC_ARCH_AMD64 && !ACC_ARCH_X64) || (!ACC_ARCH_AMD64 && ACC_ARCH_X64)
1055 # error "unexpected configuration - check your compiler defines"
1056 #endif
1057 #if (ACC_ARCH_ARM64 && !ACC_ARCH_AARCH64) || (!ACC_ARCH_ARM64 && ACC_ARCH_AARCH64)
1058 # error "unexpected configuration - check your compiler defines"
1059 #endif
1060 #if (ACC_ARCH_I386 && !ACC_ARCH_X86) || (!ACC_ARCH_I386 && ACC_ARCH_X86)
1061 # error "unexpected configuration - check your compiler defines"
1062 #endif
1063 #if (ACC_ARCH_ARM_THUMB1 && !ACC_ARCH_ARM)
1064 # error "unexpected configuration - check your compiler defines"
1065 #endif
1066 #if (ACC_ARCH_ARM_THUMB2 && !ACC_ARCH_ARM)
1067 # error "unexpected configuration - check your compiler defines"
1068 #endif
1069 #if (ACC_ARCH_ARM_THUMB1 && ACC_ARCH_ARM_THUMB2)
1070 # error "unexpected configuration - check your compiler defines"
1071 #endif
1072 #if (ACC_ARCH_I086PM && !ACC_ARCH_I086)
1073 # error "unexpected configuration - check your compiler defines"
1074 #endif
1075 #if (ACC_ARCH_I086)
1076 # if (UINT_MAX != ACC_0xffffL)
1077 # error "unexpected configuration - check your compiler defines"
1078 # endif
1079 # if (ULONG_MAX != ACC_0xffffffffL)
1080 # error "unexpected configuration - check your compiler defines"
1081 # endif
1082 #endif
1083 #if (ACC_ARCH_I386)
1084 # if (UINT_MAX != ACC_0xffffL) && defined(__i386_int16__)
1085 # error "unexpected configuration - check your compiler defines"
1086 # endif
1087 # if (UINT_MAX != ACC_0xffffffffL) && !defined(__i386_int16__)
1088 # error "unexpected configuration - check your compiler defines"
1089 # endif
1090 # if (ULONG_MAX != ACC_0xffffffffL)
1091 # error "unexpected configuration - check your compiler defines"
1092 # endif
1093 #endif
1094 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386)
1095 # if !defined(ACC_TARGET_FEATURE_SSE2)
1096 # if defined(__SSE2__)
1097 # define ACC_TARGET_FEATURE_SSE2 1
1098 # elif defined(_MSC_VER) && (defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2))
1099 # define ACC_TARGET_FEATURE_SSE2 1
1100 # elif (ACC_CC_INTELC_MSC || ACC_CC_MSC) && defined(_M_AMD64)
1101 # define ACC_TARGET_FEATURE_SSE2 1
1102 # endif
1103 # endif
1104 # if !defined(ACC_TARGET_FEATURE_SSSE3)
1105 # if (ACC_TARGET_FEATURE_SSE2)
1106 # if defined(__SSSE3__)
1107 # define ACC_TARGET_FEATURE_SSSE3 1
1108 # elif defined(_MSC_VER) && defined(__AVX__)
1109 # define ACC_TARGET_FEATURE_SSSE3 1
1110 # endif
1111 # endif
1112 # endif
1113 # if !defined(ACC_TARGET_FEATURE_SSE4_2)
1114 # if (ACC_TARGET_FEATURE_SSSE3)
1115 # if defined(__SSE4_2__)
1116 # define ACC_TARGET_FEATURE_SSE4_2 1
1117 # endif
1118 # endif
1119 # endif
1120 # if !defined(ACC_TARGET_FEATURE_AVX)
1121 # if (ACC_TARGET_FEATURE_SSSE3)
1122 # if defined(__AVX__)
1123 # define ACC_TARGET_FEATURE_AVX 1
1124 # endif
1125 # endif
1126 # endif
1127 # if !defined(ACC_TARGET_FEATURE_AVX2)
1128 # if (ACC_TARGET_FEATURE_AVX)
1129 # if defined(__AVX2__)
1130 # define ACC_TARGET_FEATURE_AVX2 1
1131 # endif
1132 # endif
1133 # endif
1134 #endif
1135 #if (ACC_TARGET_FEATURE_SSSE3 && !(ACC_TARGET_FEATURE_SSE2))
1136 # error "unexpected configuration - check your compiler defines"
1137 #endif
1138 #if (ACC_TARGET_FEATURE_SSE4_2 && !(ACC_TARGET_FEATURE_SSSE3))
1139 # error "unexpected configuration - check your compiler defines"
1140 #endif
1141 #if (ACC_TARGET_FEATURE_AVX && !(ACC_TARGET_FEATURE_SSSE3))
1142 # error "unexpected configuration - check your compiler defines"
1143 #endif
1144 #if (ACC_TARGET_FEATURE_AVX2 && !(ACC_TARGET_FEATURE_AVX))
1145 # error "unexpected configuration - check your compiler defines"
1146 #endif
1147 #if (ACC_ARCH_ARM)
1148 # if !defined(ACC_TARGET_FEATURE_NEON)
1149 # if defined(__ARM_NEON) && ((__ARM_NEON)+0)
1150 # define ACC_TARGET_FEATURE_NEON 1
1151 # elif 1 && defined(__ARM_NEON__) && ((__ARM_NEON__)+0)
1152 # define ACC_TARGET_FEATURE_NEON 1
1153 # elif 1 && defined(__TARGET_FEATURE_NEON) && ((__TARGET_FEATURE_NEON)+0)
1154 # define ACC_TARGET_FEATURE_NEON 1
1155 # endif
1156 # endif
1157 #elif (ACC_ARCH_ARM64)
1158 # if !defined(ACC_TARGET_FEATURE_NEON)
1159 # if 1
1160 # define ACC_TARGET_FEATURE_NEON 1
1161 # endif
1162 # endif
1163 #endif
1164 #if 0
1165 #elif !defined(__ACC_MM_OVERRIDE)
1166 #if (ACC_ARCH_I086)
1167 #if (UINT_MAX != ACC_0xffffL)
1168 # error "unexpected configuration - check your compiler defines"
1169 #endif
1170 #if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM)
1171 # define ACC_MM_TINY 1
1172 #elif defined(__HUGE__) || defined(_HUGE_) || defined(M_I86HM) || defined(_M_I86HM)
1173 # define ACC_MM_HUGE 1
1174 #elif defined(__SMALL__) || defined(M_I86SM) || defined(_M_I86SM) || defined(SMALL_MODEL)
1175 # define ACC_MM_SMALL 1
1176 #elif defined(__MEDIUM__) || defined(M_I86MM) || defined(_M_I86MM)
1177 # define ACC_MM_MEDIUM 1
1178 #elif defined(__COMPACT__) || defined(M_I86CM) || defined(_M_I86CM)
1179 # define ACC_MM_COMPACT 1
1180 #elif defined(__LARGE__) || defined(M_I86LM) || defined(_M_I86LM) || defined(LARGE_MODEL)
1181 # define ACC_MM_LARGE 1
1182 #elif (ACC_CC_AZTECC)
1183 # if defined(_LARGE_CODE) && defined(_LARGE_DATA)
1184 # define ACC_MM_LARGE 1
1185 # elif defined(_LARGE_CODE)
1186 # define ACC_MM_MEDIUM 1
1187 # elif defined(_LARGE_DATA)
1188 # define ACC_MM_COMPACT 1
1189 # else
1190 # define ACC_MM_SMALL 1
1191 # endif
1192 #elif (ACC_CC_ZORTECHC && defined(__VCM__))
1193 # define ACC_MM_LARGE 1
1194 #else
1195 # error "unknown ACC_ARCH_I086 memory model"
1196 #endif
1197 #if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
1198 #define ACC_HAVE_MM_HUGE_PTR 1
1199 #define ACC_HAVE_MM_HUGE_ARRAY 1
1200 #if (ACC_MM_TINY)
1201 # undef ACC_HAVE_MM_HUGE_ARRAY
1202 #endif
1203 #if (ACC_CC_AZTECC || ACC_CC_PACIFICC || ACC_CC_ZORTECHC)
1204 # undef ACC_HAVE_MM_HUGE_PTR
1205 # undef ACC_HAVE_MM_HUGE_ARRAY
1206 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
1207 # undef ACC_HAVE_MM_HUGE_ARRAY
1208 #elif (ACC_CC_MSC && defined(_QC))
1209 # undef ACC_HAVE_MM_HUGE_ARRAY
1210 # if (_MSC_VER < 600)
1211 # undef ACC_HAVE_MM_HUGE_PTR
1212 # endif
1213 #elif (ACC_CC_TURBOC && (__TURBOC__ < 0x0295))
1214 # undef ACC_HAVE_MM_HUGE_ARRAY
1215 #endif
1216 #if (ACC_ARCH_I086PM) && !(ACC_HAVE_MM_HUGE_PTR)
1217 # if (ACC_OS_DOS16)
1218 # error "unexpected configuration - check your compiler defines"
1219 # elif (ACC_CC_ZORTECHC)
1220 # else
1221 # error "unexpected configuration - check your compiler defines"
1222 # endif
1223 #endif
1224 #ifdef __cplusplus
1225 extern "C" {
1226 #endif
1227 #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
1228  extern void __near __cdecl _AHSHIFT(void);
1229 # define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
1230 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
1231  extern void __near __cdecl _AHSHIFT(void);
1232 # define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
1233 #elif (ACC_CC_MSC || ACC_CC_TOPSPEEDC)
1234  extern void __near __cdecl _AHSHIFT(void);
1235 # define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
1236 #elif (ACC_CC_TURBOC && (__TURBOC__ >= 0x0295))
1237  extern void __near __cdecl _AHSHIFT(void);
1238 # define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
1239 #elif ((ACC_CC_AZTECC || ACC_CC_PACIFICC || ACC_CC_TURBOC) && ACC_OS_DOS16)
1240 # define ACC_MM_AHSHIFT 12
1241 #elif (ACC_CC_WATCOMC)
1242  extern unsigned char _HShift;
1243 # define ACC_MM_AHSHIFT ((unsigned) _HShift)
1244 #else
1245 # error "FIXME - implement ACC_MM_AHSHIFT"
1246 #endif
1247 #ifdef __cplusplus
1248 }
1249 #endif
1250 #endif
1251 #elif (ACC_ARCH_C166)
1252 #if !defined(__MODEL__)
1253 # error "FIXME - ACC_ARCH_C166 __MODEL__"
1254 #elif ((__MODEL__) == 0)
1255 # define ACC_MM_SMALL 1
1256 #elif ((__MODEL__) == 1)
1257 # define ACC_MM_SMALL 1
1258 #elif ((__MODEL__) == 2)
1259 # define ACC_MM_LARGE 1
1260 #elif ((__MODEL__) == 3)
1261 # define ACC_MM_TINY 1
1262 #elif ((__MODEL__) == 4)
1263 # define ACC_MM_XTINY 1
1264 #elif ((__MODEL__) == 5)
1265 # define ACC_MM_XSMALL 1
1266 #else
1267 # error "FIXME - ACC_ARCH_C166 __MODEL__"
1268 #endif
1269 #elif (ACC_ARCH_MCS251)
1270 #if !defined(__MODEL__)
1271 # error "FIXME - ACC_ARCH_MCS251 __MODEL__"
1272 #elif ((__MODEL__) == 0)
1273 # define ACC_MM_SMALL 1
1274 #elif ((__MODEL__) == 2)
1275 # define ACC_MM_LARGE 1
1276 #elif ((__MODEL__) == 3)
1277 # define ACC_MM_TINY 1
1278 #elif ((__MODEL__) == 4)
1279 # define ACC_MM_XTINY 1
1280 #elif ((__MODEL__) == 5)
1281 # define ACC_MM_XSMALL 1
1282 #else
1283 # error "FIXME - ACC_ARCH_MCS251 __MODEL__"
1284 #endif
1285 #elif (ACC_ARCH_MCS51)
1286 #if !defined(__MODEL__)
1287 # error "FIXME - ACC_ARCH_MCS51 __MODEL__"
1288 #elif ((__MODEL__) == 1)
1289 # define ACC_MM_SMALL 1
1290 #elif ((__MODEL__) == 2)
1291 # define ACC_MM_LARGE 1
1292 #elif ((__MODEL__) == 3)
1293 # define ACC_MM_TINY 1
1294 #elif ((__MODEL__) == 4)
1295 # define ACC_MM_XTINY 1
1296 #elif ((__MODEL__) == 5)
1297 # define ACC_MM_XSMALL 1
1298 #else
1299 # error "FIXME - ACC_ARCH_MCS51 __MODEL__"
1300 #endif
1301 #elif (ACC_ARCH_CRAY_PVP)
1302 # define ACC_MM_PVP 1
1303 #else
1304 # define ACC_MM_FLAT 1
1305 #endif
1306 #if (ACC_MM_COMPACT)
1307 # define ACC_INFO_MM "compact"
1308 #elif (ACC_MM_FLAT)
1309 # define ACC_INFO_MM "flat"
1310 #elif (ACC_MM_HUGE)
1311 # define ACC_INFO_MM "huge"
1312 #elif (ACC_MM_LARGE)
1313 # define ACC_INFO_MM "large"
1314 #elif (ACC_MM_MEDIUM)
1315 # define ACC_INFO_MM "medium"
1316 #elif (ACC_MM_PVP)
1317 # define ACC_INFO_MM "pvp"
1318 #elif (ACC_MM_SMALL)
1319 # define ACC_INFO_MM "small"
1320 #elif (ACC_MM_TINY)
1321 # define ACC_INFO_MM "tiny"
1322 #else
1323 # error "unknown memory model"
1324 #endif
1325 #endif
1326 #if !defined(__acc_gnuc_extension__)
1327 #if (ACC_CC_GNUC >= 0x020800ul)
1328 # define __acc_gnuc_extension__ __extension__
1329 #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1330 # define __acc_gnuc_extension__ __extension__
1331 #elif (ACC_CC_IBMC >= 600)
1332 # define __acc_gnuc_extension__ __extension__
1333 #endif
1334 #endif
1335 #if !defined(__acc_gnuc_extension__)
1336 # define __acc_gnuc_extension__ /*empty*/
1337 #endif
1338 #if !defined(acc_has_builtin)
1339 #if (ACC_CC_CLANG) && defined(__has_builtin)
1340 # define acc_has_builtin __has_builtin
1341 #endif
1342 #endif
1343 #if !defined(acc_has_builtin)
1344 # define acc_has_builtin(x) 0
1345 #endif
1346 #if !defined(acc_has_attribute)
1347 #if (ACC_CC_CLANG) && defined(__has_attribute)
1348 # define acc_has_attribute __has_attribute
1349 #endif
1350 #endif
1351 #if !defined(acc_has_attribute)
1352 # define acc_has_attribute(x) 0
1353 #endif
1354 #if !defined(acc_has_declspec_attribute)
1355 #if (ACC_CC_CLANG) && defined(__has_declspec_attribute)
1356 # define acc_has_declspec_attribute __has_declspec_attribute
1357 #endif
1358 #endif
1359 #if !defined(acc_has_declspec_attribute)
1360 # define acc_has_declspec_attribute(x) 0
1361 #endif
1362 #if !defined(acc_has_feature)
1363 #if (ACC_CC_CLANG) && defined(__has_feature)
1364 # define acc_has_feature __has_feature
1365 #endif
1366 #endif
1367 #if !defined(acc_has_feature)
1368 # define acc_has_feature(x) 0
1369 #endif
1370 #if !defined(acc_has_extension)
1371 #if (ACC_CC_CLANG) && defined(__has_extension)
1372 # define acc_has_extension __has_extension
1373 #elif (ACC_CC_CLANG) && defined(__has_feature)
1374 # define acc_has_extension __has_feature
1375 #endif
1376 #endif
1377 #if !defined(acc_has_extension)
1378 # define acc_has_extension(x) 0
1379 #endif
1380 #if !defined(ACC_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0
1381 # if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul))
1382 # define ACC_CFG_USE_NEW_STYLE_CASTS 0
1383 # elif (ACC_CC_INTELC && (__INTEL_COMPILER < 1200))
1384 # define ACC_CFG_USE_NEW_STYLE_CASTS 0
1385 # else
1386 # define ACC_CFG_USE_NEW_STYLE_CASTS 1
1387 # endif
1388 #endif
1389 #if !defined(ACC_CFG_USE_NEW_STYLE_CASTS)
1390 # define ACC_CFG_USE_NEW_STYLE_CASTS 0
1391 #endif
1392 #if !defined(__cplusplus)
1393 # if defined(ACC_CFG_USE_NEW_STYLE_CASTS)
1394 # undef ACC_CFG_USE_NEW_STYLE_CASTS
1395 # endif
1396 # define ACC_CFG_USE_NEW_STYLE_CASTS 0
1397 #endif
1398 #if !defined(ACC_REINTERPRET_CAST)
1399 # if (ACC_CFG_USE_NEW_STYLE_CASTS)
1400 # define ACC_REINTERPRET_CAST(t,e) (reinterpret_cast<t> (e))
1401 # endif
1402 #endif
1403 #if !defined(ACC_REINTERPRET_CAST)
1404 # define ACC_REINTERPRET_CAST(t,e) ((t) (e))
1405 #endif
1406 #if !defined(ACC_STATIC_CAST)
1407 # if (ACC_CFG_USE_NEW_STYLE_CASTS)
1408 # define ACC_STATIC_CAST(t,e) (static_cast<t> (e))
1409 # endif
1410 #endif
1411 #if !defined(ACC_STATIC_CAST)
1412 # define ACC_STATIC_CAST(t,e) ((t) (e))
1413 #endif
1414 #if !defined(ACC_STATIC_CAST2)
1415 # define ACC_STATIC_CAST2(t1,t2,e) ACC_STATIC_CAST(t1, ACC_STATIC_CAST(t2, e))
1416 #endif
1417 #if !defined(ACC_UNCONST_CAST)
1418 # if (ACC_CFG_USE_NEW_STYLE_CASTS)
1419 # define ACC_UNCONST_CAST(t,e) (const_cast<t> (e))
1420 # elif (ACC_HAVE_MM_HUGE_PTR)
1421 # define ACC_UNCONST_CAST(t,e) ((t) (e))
1422 # elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1423 # define ACC_UNCONST_CAST(t,e) ((t) ((void *) ((acc_uintptr_t) ((const void *) (e)))))
1424 # endif
1425 #endif
1426 #if !defined(ACC_UNCONST_CAST)
1427 # define ACC_UNCONST_CAST(t,e) ((t) ((void *) ((const void *) (e))))
1428 #endif
1429 #if !defined(ACC_UNCONST_VOLATILE_CAST)
1430 # if (ACC_CFG_USE_NEW_STYLE_CASTS)
1431 # define ACC_UNCONST_VOLATILE_CAST(t,e) (const_cast<t> (e))
1432 # elif (ACC_HAVE_MM_HUGE_PTR)
1433 # define ACC_UNCONST_VOLATILE_CAST(t,e) ((t) (e))
1434 # elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1435 # define ACC_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((acc_uintptr_t) ((volatile const void *) (e)))))
1436 # endif
1437 #endif
1438 #if !defined(ACC_UNCONST_VOLATILE_CAST)
1439 # define ACC_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((volatile const void *) (e))))
1440 #endif
1441 #if !defined(ACC_UNVOLATILE_CAST)
1442 # if (ACC_CFG_USE_NEW_STYLE_CASTS)
1443 # define ACC_UNVOLATILE_CAST(t,e) (const_cast<t> (e))
1444 # elif (ACC_HAVE_MM_HUGE_PTR)
1445 # define ACC_UNVOLATILE_CAST(t,e) ((t) (e))
1446 # elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1447 # define ACC_UNVOLATILE_CAST(t,e) ((t) ((void *) ((acc_uintptr_t) ((volatile void *) (e)))))
1448 # endif
1449 #endif
1450 #if !defined(ACC_UNVOLATILE_CAST)
1451 # define ACC_UNVOLATILE_CAST(t,e) ((t) ((void *) ((volatile void *) (e))))
1452 #endif
1453 #if !defined(ACC_UNVOLATILE_CONST_CAST)
1454 # if (ACC_CFG_USE_NEW_STYLE_CASTS)
1455 # define ACC_UNVOLATILE_CONST_CAST(t,e) (const_cast<t> (e))
1456 # elif (ACC_HAVE_MM_HUGE_PTR)
1457 # define ACC_UNVOLATILE_CONST_CAST(t,e) ((t) (e))
1458 # elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1459 # define ACC_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((acc_uintptr_t) ((volatile const void *) (e)))))
1460 # endif
1461 #endif
1462 #if !defined(ACC_UNVOLATILE_CONST_CAST)
1463 # define ACC_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((volatile const void *) (e))))
1464 #endif
1465 #if !defined(ACC_PCAST)
1466 # if (ACC_HAVE_MM_HUGE_PTR)
1467 # define ACC_PCAST(t,e) ((t) (e))
1468 # endif
1469 #endif
1470 #if !defined(ACC_PCAST)
1471 # define ACC_PCAST(t,e) ACC_STATIC_CAST(t, ACC_STATIC_CAST(void *, e))
1472 #endif
1473 #if !defined(ACC_CCAST)
1474 # if (ACC_HAVE_MM_HUGE_PTR)
1475 # define ACC_CCAST(t,e) ((t) (e))
1476 # endif
1477 #endif
1478 #if !defined(ACC_CCAST)
1479 # define ACC_CCAST(t,e) ACC_STATIC_CAST(t, ACC_STATIC_CAST(const void *, e))
1480 #endif
1481 #if !defined(ACC_ICONV)
1482 # define ACC_ICONV(t,e) ACC_STATIC_CAST(t, e)
1483 #endif
1484 #if !defined(ACC_ICAST)
1485 # define ACC_ICAST(t,e) ACC_STATIC_CAST(t, e)
1486 #endif
1487 #if !defined(ACC_ITRUNC)
1488 # define ACC_ITRUNC(t,e) ACC_STATIC_CAST(t, e)
1489 #endif
1490 #if !defined(__acc_cte)
1491 # if (ACC_CC_MSC || ACC_CC_WATCOMC)
1492 # define __acc_cte(e) ((void)0,(e))
1493 # elif 1
1494 # define __acc_cte(e) ((void)0,(e))
1495 # endif
1496 #endif
1497 #if !defined(__acc_cte)
1498 # define __acc_cte(e) (e)
1499 #endif
1500 #if !defined(ACC_BLOCK_BEGIN)
1501 # define ACC_BLOCK_BEGIN do {
1502 # define ACC_BLOCK_END } while __acc_cte(0)
1503 #endif
1504 #if !defined(ACC_UNUSED)
1505 # if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
1506 # define ACC_UNUSED(var) ((void) &var)
1507 # elif (ACC_CC_BORLANDC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PELLESC || ACC_CC_TURBOC)
1508 # define ACC_UNUSED(var) if (&var) ; else
1509 # elif (ACC_CC_CLANG && (ACC_CC_CLANG >= 0x030200ul))
1510 # define ACC_UNUSED(var) ((void) &var)
1511 # elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1512 # define ACC_UNUSED(var) ((void) var)
1513 # elif (ACC_CC_MSC && (_MSC_VER < 900))
1514 # define ACC_UNUSED(var) if (&var) ; else
1515 # elif (ACC_CC_KEILC)
1516 # define ACC_UNUSED(var) {extern int acc_unused__[1-2*!(sizeof(var)>0)]; (void)acc_unused__;}
1517 # elif (ACC_CC_PACIFICC)
1518 # define ACC_UNUSED(var) ((void) sizeof(var))
1519 # elif (ACC_CC_WATCOMC) && defined(__cplusplus)
1520 # define ACC_UNUSED(var) ((void) var)
1521 # else
1522 # define ACC_UNUSED(var) ((void) &var)
1523 # endif
1524 #endif
1525 #if !defined(ACC_UNUSED_RESULT)
1526 # define ACC_UNUSED_RESULT(var) ACC_UNUSED(var)
1527 #endif
1528 #if !defined(ACC_UNUSED_FUNC)
1529 # if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
1530 # define ACC_UNUSED_FUNC(func) ((void) func)
1531 # elif (ACC_CC_BORLANDC || ACC_CC_NDPC || ACC_CC_TURBOC)
1532 # define ACC_UNUSED_FUNC(func) if (func) ; else
1533 # elif (ACC_CC_CLANG || ACC_CC_LLVM)
1534 # define ACC_UNUSED_FUNC(func) ((void) &func)
1535 # elif (ACC_CC_MSC && (_MSC_VER < 900))
1536 # define ACC_UNUSED_FUNC(func) if (func) ; else
1537 # elif (ACC_CC_MSC)
1538 # define ACC_UNUSED_FUNC(func) ((void) &func)
1539 # elif (ACC_CC_KEILC || ACC_CC_PELLESC)
1540 # define ACC_UNUSED_FUNC(func) {extern int acc_unused__[1-2*!(sizeof((int)func)>0)]; (void)acc_unused__;}
1541 # else
1542 # define ACC_UNUSED_FUNC(func) ((void) func)
1543 # endif
1544 #endif
1545 #if !defined(ACC_UNUSED_LABEL)
1546 # if (ACC_CC_CLANG >= 0x020800ul)
1547 # define ACC_UNUSED_LABEL(l) (__acc_gnuc_extension__ ((void) ((const void *) &&l)))
1548 # elif (ACC_CC_ARMCC || ACC_CC_CLANG || ACC_CC_INTELC || ACC_CC_WATCOMC)
1549 # define ACC_UNUSED_LABEL(l) if __acc_cte(0) goto l
1550 # else
1551 # define ACC_UNUSED_LABEL(l) switch (0) case 1:goto l
1552 # endif
1553 #endif
1554 #if !defined(ACC_DEFINE_UNINITIALIZED_VAR)
1555 # if 0
1556 # define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var
1557 # elif 0 && (ACC_CC_GNUC)
1558 # define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var
1559 # else
1560 # define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init
1561 # endif
1562 #endif
1563 #if !defined(__acc_inline)
1564 #if (ACC_CC_TURBOC && (__TURBOC__ <= 0x0295))
1565 #elif defined(__cplusplus)
1566 # define __acc_inline inline
1567 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L)
1568 # define __acc_inline inline
1569 #elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
1570 # define __acc_inline __inline
1571 #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
1572 # define __acc_inline __inline__
1573 #elif (ACC_CC_DMC)
1574 # define __acc_inline __inline
1575 #elif (ACC_CC_GHS)
1576 # define __acc_inline __inline__
1577 #elif (ACC_CC_IBMC >= 600)
1578 # define __acc_inline __inline__
1579 #elif (ACC_CC_INTELC)
1580 # define __acc_inline __inline
1581 #elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x2405))
1582 # define __acc_inline __inline
1583 #elif (ACC_CC_MSC && (_MSC_VER >= 900))
1584 # define __acc_inline __inline
1585 #elif (ACC_CC_SUNPROC >= 0x5100)
1586 # define __acc_inline __inline__
1587 #endif
1588 #endif
1589 #if defined(__acc_inline)
1590 # ifndef __acc_HAVE_inline
1591 # define __acc_HAVE_inline 1
1592 # endif
1593 #else
1594 # define __acc_inline /*empty*/
1595 #endif
1596 #if !defined(__acc_forceinline)
1597 #if (ACC_CC_GNUC >= 0x030200ul)
1598 # define __acc_forceinline __inline__ __attribute__((__always_inline__))
1599 #elif (ACC_CC_IBMC >= 700)
1600 # define __acc_forceinline __inline__ __attribute__((__always_inline__))
1601 #elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450))
1602 # define __acc_forceinline __forceinline
1603 #elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
1604 # define __acc_forceinline __inline__ __attribute__((__always_inline__))
1605 #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1606 # define __acc_forceinline __inline__ __attribute__((__always_inline__))
1607 #elif (ACC_CC_MSC && (_MSC_VER >= 1200))
1608 # define __acc_forceinline __forceinline
1609 #elif (ACC_CC_PGI >= 0x0d0a00ul)
1610 # define __acc_forceinline __inline__ __attribute__((__always_inline__))
1611 #elif (ACC_CC_SUNPROC >= 0x5100)
1612 # define __acc_forceinline __inline__ __attribute__((__always_inline__))
1613 #endif
1614 #endif
1615 #if defined(__acc_forceinline)
1616 # ifndef __acc_HAVE_forceinline
1617 # define __acc_HAVE_forceinline 1
1618 # endif
1619 #else
1620 # define __acc_forceinline __acc_inline
1621 #endif
1622 #if !defined(__acc_noinline)
1623 #if 1 && (ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x040000ul) && (ACC_CC_GNUC < 0x040003ul)
1624 # define __acc_noinline __attribute__((__noinline__,__used__))
1625 #elif (ACC_CC_GNUC >= 0x030200ul)
1626 # define __acc_noinline __attribute__((__noinline__))
1627 #elif (ACC_CC_IBMC >= 700)
1628 # define __acc_noinline __attribute__((__noinline__))
1629 #elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 600))
1630 # define __acc_noinline __declspec(noinline)
1631 #elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
1632 # define __acc_noinline __attribute__((__noinline__))
1633 #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1634 # define __acc_noinline __attribute__((__noinline__))
1635 #elif (ACC_CC_MSC && (_MSC_VER >= 1300))
1636 # define __acc_noinline __declspec(noinline)
1637 #elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3200) && (ACC_OS_WIN32 || ACC_OS_WIN64))
1638 # if defined(__cplusplus)
1639 # else
1640 # define __acc_noinline __declspec(noinline)
1641 # endif
1642 #elif (ACC_CC_PGI >= 0x0d0a00ul)
1643 # define __acc_noinline __attribute__((__noinline__))
1644 #elif (ACC_CC_SUNPROC >= 0x5100)
1645 # define __acc_noinline __attribute__((__noinline__))
1646 #endif
1647 #endif
1648 #if defined(__acc_noinline)
1649 # ifndef __acc_HAVE_noinline
1650 # define __acc_HAVE_noinline 1
1651 # endif
1652 #else
1653 # define __acc_noinline /*empty*/
1654 #endif
1655 #if (__acc_HAVE_forceinline || __acc_HAVE_noinline) && !(__acc_HAVE_inline)
1656 # error "unexpected configuration - check your compiler defines"
1657 #endif
1658 #if !defined(__acc_static_inline)
1659 #if (ACC_CC_IBMC)
1660 # define __acc_static_inline __acc_gnuc_extension__ static __acc_inline
1661 #endif
1662 #endif
1663 #if !defined(__acc_static_inline)
1664 # define __acc_static_inline static __acc_inline
1665 #endif
1666 #if !defined(__acc_static_forceinline)
1667 #if (ACC_CC_IBMC)
1668 # define __acc_static_forceinline __acc_gnuc_extension__ static __acc_forceinline
1669 #endif
1670 #endif
1671 #if !defined(__acc_static_forceinline)
1672 # define __acc_static_forceinline static __acc_forceinline
1673 #endif
1674 #if !defined(__acc_static_noinline)
1675 #if (ACC_CC_IBMC)
1676 # define __acc_static_noinline __acc_gnuc_extension__ static __acc_noinline
1677 #endif
1678 #endif
1679 #if !defined(__acc_static_noinline)
1680 # define __acc_static_noinline static __acc_noinline
1681 #endif
1682 #if !defined(__acc_c99_extern_inline)
1683 #if defined(__GNUC_GNU_INLINE__)
1684 # define __acc_c99_extern_inline __acc_inline
1685 #elif defined(__GNUC_STDC_INLINE__)
1686 # define __acc_c99_extern_inline extern __acc_inline
1687 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L)
1688 # define __acc_c99_extern_inline extern __acc_inline
1689 #endif
1690 #if !defined(__acc_c99_extern_inline) && (__acc_HAVE_inline)
1691 # define __acc_c99_extern_inline __acc_inline
1692 #endif
1693 #endif
1694 #if defined(__acc_c99_extern_inline)
1695 # ifndef __acc_HAVE_c99_extern_inline
1696 # define __acc_HAVE_c99_extern_inline 1
1697 # endif
1698 #else
1699 # define __acc_c99_extern_inline /*empty*/
1700 #endif
1701 #if !defined(__acc_may_alias)
1702 #if (ACC_CC_GNUC >= 0x030400ul)
1703 # define __acc_may_alias __attribute__((__may_alias__))
1704 #elif (ACC_CC_CLANG >= 0x020900ul)
1705 # define __acc_may_alias __attribute__((__may_alias__))
1706 #elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1210)) && 0
1707 # define __acc_may_alias __attribute__((__may_alias__))
1708 #elif (ACC_CC_PGI >= 0x0d0a00ul) && 0
1709 # define __acc_may_alias __attribute__((__may_alias__))
1710 #endif
1711 #endif
1712 #if defined(__acc_may_alias)
1713 # ifndef __acc_HAVE_may_alias
1714 # define __acc_HAVE_may_alias 1
1715 # endif
1716 #else
1717 # define __acc_may_alias /*empty*/
1718 #endif
1719 #if !defined(__acc_noreturn)
1720 #if (ACC_CC_GNUC >= 0x020700ul)
1721 # define __acc_noreturn __attribute__((__noreturn__))
1722 #elif (ACC_CC_IBMC >= 700)
1723 # define __acc_noreturn __attribute__((__noreturn__))
1724 #elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450))
1725 # define __acc_noreturn __declspec(noreturn)
1726 #elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600))
1727 # define __acc_noreturn __attribute__((__noreturn__))
1728 #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1729 # define __acc_noreturn __attribute__((__noreturn__))
1730 #elif (ACC_CC_MSC && (_MSC_VER >= 1200))
1731 # define __acc_noreturn __declspec(noreturn)
1732 #elif (ACC_CC_PGI >= 0x0d0a00ul)
1733 # define __acc_noreturn __attribute__((__noreturn__))
1734 #endif
1735 #endif
1736 #if defined(__acc_noreturn)
1737 # ifndef __acc_HAVE_noreturn
1738 # define __acc_HAVE_noreturn 1
1739 # endif
1740 #else
1741 # define __acc_noreturn /*empty*/
1742 #endif
1743 #if !defined(__acc_nothrow)
1744 #if (ACC_CC_GNUC >= 0x030300ul)
1745 # define __acc_nothrow __attribute__((__nothrow__))
1746 #elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) && defined(__cplusplus)
1747 # define __acc_nothrow __declspec(nothrow)
1748 #elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 900))
1749 # define __acc_nothrow __attribute__((__nothrow__))
1750 #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1751 # define __acc_nothrow __attribute__((__nothrow__))
1752 #elif (ACC_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus)
1753 # define __acc_nothrow __declspec(nothrow)
1754 #endif
1755 #endif
1756 #if defined(__acc_nothrow)
1757 # ifndef __acc_HAVE_nothrow
1758 # define __acc_HAVE_nothrow 1
1759 # endif
1760 #else
1761 # define __acc_nothrow /*empty*/
1762 #endif
1763 #if !defined(__acc_restrict)
1764 #if (ACC_CC_GNUC >= 0x030400ul)
1765 # define __acc_restrict __restrict__
1766 #elif (ACC_CC_IBMC >= 800) && !defined(__cplusplus)
1767 # define __acc_restrict __restrict__
1768 #elif (ACC_CC_IBMC >= 1210)
1769 # define __acc_restrict __restrict__
1770 #elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 600))
1771 #elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600))
1772 # define __acc_restrict __restrict__
1773 #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM)
1774 # define __acc_restrict __restrict__
1775 #elif (ACC_CC_MSC && (_MSC_VER >= 1400))
1776 # define __acc_restrict __restrict
1777 #elif (ACC_CC_PGI >= 0x0d0a00ul)
1778 # define __acc_restrict __restrict__
1779 #endif
1780 #endif
1781 #if defined(__acc_restrict)
1782 # ifndef __acc_HAVE_restrict
1783 # define __acc_HAVE_restrict 1
1784 # endif
1785 #else
1786 # define __acc_restrict /*empty*/
1787 #endif
1788 #if !defined(__acc_alignof)
1789 #if (ACC_CC_ARMCC || ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
1790 # define __acc_alignof(e) __alignof__(e)
1791 #elif (ACC_CC_GHS) && !defined(__cplusplus)
1792 # define __acc_alignof(e) __alignof__(e)
1793 #elif (ACC_CC_IBMC >= 600)
1794 # define __acc_alignof(e) (__acc_gnuc_extension__ __alignof__(e))
1795 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 700))
1796 # define __acc_alignof(e) __alignof__(e)
1797 #elif (ACC_CC_MSC && (_MSC_VER >= 1300))
1798 # define __acc_alignof(e) __alignof(e)
1799 #elif (ACC_CC_SUNPROC >= 0x5100)
1800 # define __acc_alignof(e) __alignof__(e)
1801 #endif
1802 #endif
1803 #if defined(__acc_alignof)
1804 # ifndef __acc_HAVE_alignof
1805 # define __acc_HAVE_alignof 1
1806 # endif
1807 #endif
1808 #if !defined(__acc_struct_packed)
1809 #if (ACC_CC_CLANG && (ACC_CC_CLANG < 0x020800ul)) && defined(__cplusplus)
1810 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
1811 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
1812 #elif (ACC_CC_PCC && (ACC_CC_PCC < 0x010100ul))
1813 #elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC < 0x5110)) && !defined(__cplusplus)
1814 #elif (ACC_CC_GNUC >= 0x030400ul) && !(ACC_CC_PCC_GNUC) && (ACC_ARCH_AMD64 || ACC_ARCH_I386)
1815 # define __acc_struct_packed(s) struct s {
1816 # define __acc_struct_packed_end() } __attribute__((__gcc_struct__,__packed__));
1817 # define __acc_struct_packed_ma_end() } __acc_may_alias __attribute__((__gcc_struct__,__packed__));
1818 #elif (ACC_CC_ARMCC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || (ACC_CC_PGI >= 0x0d0a00ul) || (ACC_CC_SUNPROC >= 0x5100))
1819 # define __acc_struct_packed(s) struct s {
1820 # define __acc_struct_packed_end() } __attribute__((__packed__));
1821 # define __acc_struct_packed_ma_end() } __acc_may_alias __attribute__((__packed__));
1822 #elif (ACC_CC_IBMC >= 700)
1823 # define __acc_struct_packed(s) __acc_gnuc_extension__ struct s {
1824 # define __acc_struct_packed_end() } __attribute__((__packed__));
1825 # define __acc_struct_packed_ma_end() } __acc_may_alias __attribute__((__packed__));
1826 #elif (ACC_CC_INTELC_MSC) || (ACC_CC_MSC && (_MSC_VER >= 1300))
1827 # define __acc_struct_packed(s) __pragma(pack(push,1)) struct s {
1828 # define __acc_struct_packed_end() } __pragma(pack(pop));
1829 #elif (ACC_CC_WATCOMC && (__WATCOMC__ >= 900))
1830 # define __acc_struct_packed(s) _Packed struct s {
1831 # define __acc_struct_packed_end() };
1832 #endif
1833 #endif
1834 #if defined(__acc_struct_packed) && !defined(__acc_struct_packed_ma)
1835 # define __acc_struct_packed_ma(s) __acc_struct_packed(s)
1836 #endif
1837 #if defined(__acc_struct_packed_end) && !defined(__acc_struct_packed_ma_end)
1838 # define __acc_struct_packed_ma_end() __acc_struct_packed_end()
1839 #endif
1840 #if !defined(__acc_byte_struct)
1841 #if defined(__acc_struct_packed)
1842 # define __acc_byte_struct(s,n) __acc_struct_packed(s) unsigned char a[n]; __acc_struct_packed_end()
1843 # define __acc_byte_struct_ma(s,n) __acc_struct_packed_ma(s) unsigned char a[n]; __acc_struct_packed_ma_end()
1844 #elif (ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_PGI || (ACC_CC_SUNPROC >= 0x5100))
1845 # define __acc_byte_struct(s,n) struct s { unsigned char a[n]; } __attribute__((__packed__));
1846 # define __acc_byte_struct_ma(s,n) struct s { unsigned char a[n]; } __acc_may_alias __attribute__((__packed__));
1847 #endif
1848 #endif
1849 #if defined(__acc_byte_struct) && !defined(__acc_byte_struct_ma)
1850 # define __acc_byte_struct_ma(s,n) __acc_byte_struct(s,n)
1851 #endif
1852 #if !defined(__acc_struct_align16) && (__acc_HAVE_alignof)
1853 #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x030000ul))
1854 #elif (ACC_CC_CLANG && (ACC_CC_CLANG < 0x020800ul)) && defined(__cplusplus)
1855 #elif (ACC_CC_CILLY || ACC_CC_PCC)
1856 #elif (ACC_CC_INTELC_MSC) || (ACC_CC_MSC && (_MSC_VER >= 1300))
1857 # define __acc_struct_align16(s) struct __declspec(align(16)) s {
1858 # define __acc_struct_align16_end() };
1859 # define __acc_struct_align32(s) struct __declspec(align(32)) s {
1860 # define __acc_struct_align32_end() };
1861 # define __acc_struct_align64(s) struct __declspec(align(64)) s {
1862 # define __acc_struct_align64_end() };
1863 #elif (ACC_CC_ARMCC || ACC_CC_CLANG || ACC_CC_GNUC || (ACC_CC_IBMC >= 700) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1864 # define __acc_struct_align16(s) struct s {
1865 # define __acc_struct_align16_end() } __attribute__((__aligned__(16)));
1866 # define __acc_struct_align32(s) struct s {
1867 # define __acc_struct_align32_end() } __attribute__((__aligned__(32)));
1868 # define __acc_struct_align64(s) struct s {
1869 # define __acc_struct_align64_end() } __attribute__((__aligned__(64)));
1870 #endif
1871 #endif
1872 #if !defined(__acc_union_um)
1873 #if (ACC_CC_CLANG && (ACC_CC_CLANG < 0x020800ul)) && defined(__cplusplus)
1874 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
1875 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
1876 #elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER < 810))
1877 #elif (ACC_CC_PCC && (ACC_CC_PCC < 0x010100ul))
1878 #elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC < 0x5110)) && !defined(__cplusplus)
1879 #elif (ACC_CC_ARMCC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || (ACC_CC_PGI >= 0x0d0a00ul) || (ACC_CC_SUNPROC >= 0x5100))
1880 # define __acc_union_am(s) union s {
1881 # define __acc_union_am_end() } __acc_may_alias;
1882 # define __acc_union_um(s) union s {
1883 # define __acc_union_um_end() } __acc_may_alias __attribute__((__packed__));
1884 #elif (ACC_CC_IBMC >= 700)
1885 # define __acc_union_am(s) __acc_gnuc_extension__ union s {
1886 # define __acc_union_am_end() } __acc_may_alias;
1887 # define __acc_union_um(s) __acc_gnuc_extension__ union s {
1888 # define __acc_union_um_end() } __acc_may_alias __attribute__((__packed__));
1889 #elif (ACC_CC_INTELC_MSC) || (ACC_CC_MSC && (_MSC_VER >= 1300))
1890 # define __acc_union_um(s) __pragma(pack(push,1)) union s {
1891 # define __acc_union_um_end() } __pragma(pack(pop));
1892 #elif (ACC_CC_WATCOMC && (__WATCOMC__ >= 900))
1893 # define __acc_union_um(s) _Packed union s {
1894 # define __acc_union_um_end() };
1895 #endif
1896 #endif
1897 #if !defined(__acc_union_am)
1898 # define __acc_union_am(s) union s {
1899 # define __acc_union_am_end() };
1900 #endif
1901 #if !defined(__acc_constructor)
1902 #if (ACC_CC_GNUC >= 0x030400ul)
1903 # define __acc_constructor __attribute__((__constructor__,__used__))
1904 #elif (ACC_CC_GNUC >= 0x020700ul)
1905 # define __acc_constructor __attribute__((__constructor__))
1906 #elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
1907 # define __acc_constructor __attribute__((__constructor__,__used__))
1908 #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1909 # define __acc_constructor __attribute__((__constructor__))
1910 #endif
1911 #endif
1912 #if defined(__acc_constructor)
1913 # ifndef __acc_HAVE_constructor
1914 # define __acc_HAVE_constructor 1
1915 # endif
1916 #endif
1917 #if !defined(__acc_destructor)
1918 #if (ACC_CC_GNUC >= 0x030400ul)
1919 # define __acc_destructor __attribute__((__destructor__,__used__))
1920 #elif (ACC_CC_GNUC >= 0x020700ul)
1921 # define __acc_destructor __attribute__((__destructor__))
1922 #elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
1923 # define __acc_destructor __attribute__((__destructor__,__used__))
1924 #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1925 # define __acc_destructor __attribute__((__destructor__))
1926 #endif
1927 #endif
1928 #if defined(__acc_destructor)
1929 # ifndef __acc_HAVE_destructor
1930 # define __acc_HAVE_destructor 1
1931 # endif
1932 #endif
1933 #if (__acc_HAVE_destructor) && !(__acc_HAVE_constructor)
1934 # error "unexpected configuration - check your compiler defines"
1935 #endif
1936 #if !defined(__acc_likely) && !defined(__acc_unlikely)
1937 #if (ACC_CC_GNUC >= 0x030200ul)
1938 # define __acc_likely(e) (__builtin_expect(!!(e),1))
1939 # define __acc_unlikely(e) (__builtin_expect(!!(e),0))
1940 #elif (ACC_CC_IBMC >= 1010)
1941 # define __acc_likely(e) (__builtin_expect(!!(e),1))
1942 # define __acc_unlikely(e) (__builtin_expect(!!(e),0))
1943 #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800))
1944 # define __acc_likely(e) (__builtin_expect(!!(e),1))
1945 # define __acc_unlikely(e) (__builtin_expect(!!(e),0))
1946 #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1947 # define __acc_likely(e) (__builtin_expect(!!(e),1))
1948 # define __acc_unlikely(e) (__builtin_expect(!!(e),0))
1949 #endif
1950 #endif
1951 #if defined(__acc_likely)
1952 # ifndef __acc_HAVE_likely
1953 # define __acc_HAVE_likely 1
1954 # endif
1955 #else
1956 # define __acc_likely(e) (e)
1957 #endif
1958 #if defined(__acc_very_likely)
1959 # ifndef __acc_HAVE_very_likely
1960 # define __acc_HAVE_very_likely 1
1961 # endif
1962 #else
1963 # define __acc_very_likely(e) __acc_likely(e)
1964 #endif
1965 #if defined(__acc_unlikely)
1966 # ifndef __acc_HAVE_unlikely
1967 # define __acc_HAVE_unlikely 1
1968 # endif
1969 #else
1970 # define __acc_unlikely(e) (e)
1971 #endif
1972 #if defined(__acc_very_unlikely)
1973 # ifndef __acc_HAVE_very_unlikely
1974 # define __acc_HAVE_very_unlikely 1
1975 # endif
1976 #else
1977 # define __acc_very_unlikely(e) __acc_unlikely(e)
1978 #endif
1979 #if !defined(__acc_loop_forever)
1980 # if (ACC_CC_IBMC)
1981 # define __acc_loop_forever() ACC_BLOCK_BEGIN for (;;) { ; } ACC_BLOCK_END
1982 # else
1983 # define __acc_loop_forever() do { ; } while __acc_cte(1)
1984 # endif
1985 #endif
1986 #if !defined(__acc_unreachable)
1987 #if (ACC_CC_CLANG && (ACC_CC_CLANG >= 0x020800ul)) && acc_has_builtin(__builtin_unreachable)
1988 # define __acc_unreachable() __builtin_unreachable();
1989 #elif (ACC_CC_GNUC >= 0x040500ul)
1990 # define __acc_unreachable() __builtin_unreachable();
1991 #elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1300)) && 1
1992 # define __acc_unreachable() __builtin_unreachable();
1993 #endif
1994 #endif
1995 #if defined(__acc_unreachable)
1996 # ifndef __acc_HAVE_unreachable
1997 # define __acc_HAVE_unreachable 1
1998 # endif
1999 #else
2000 # if 0
2001 # define __acc_unreachable() ((void)0);
2002 # else
2003 # define __acc_unreachable() __acc_loop_forever();
2004 # endif
2005 #endif
2006 #if !defined(acc_unused_funcs_impl)
2007 # if 1 && (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020700ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
2008 # define acc_unused_funcs_impl(r,f) static r __attribute__((__unused__)) f
2009 # elif 1 && (ACC_CC_BORLANDC || ACC_CC_GNUC)
2010 # define acc_unused_funcs_impl(r,f) static r f
2011 # else
2012 # define acc_unused_funcs_impl(r,f) __acc_static_forceinline r f
2013 # endif
2014 #endif
2015 #ifndef __ACC_CTA_NAME
2016 #if (ACC_CFG_USE_COUNTER)
2017 # define __ACC_CTA_NAME(a) ACC_PP_ECONCAT2(a,__COUNTER__)
2018 #else
2019 # define __ACC_CTA_NAME(a) ACC_PP_ECONCAT2(a,__LINE__)
2020 #endif
2021 #endif
2022 #if !defined(ACC_COMPILE_TIME_ASSERT_HEADER)
2023 # if (ACC_CC_AZTECC || ACC_CC_ZORTECHC)
2024 # define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN extern int __ACC_CTA_NAME(acc_cta__)[1-!(e)]; ACC_EXTERN_C_END
2025 # elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
2026 # define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN extern int __ACC_CTA_NAME(acc_cta__)[1u-2*!(e)]; ACC_EXTERN_C_END
2027 # elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
2028 # define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN extern int __ACC_CTA_NAME(acc_cta__)[1-!(e)]; ACC_EXTERN_C_END
2029 # elif (ACC_CC_CLANG && (ACC_CC_CLANG < 0x020900ul)) && defined(__cplusplus)
2030 # define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN int __ACC_CTA_NAME(acc_cta_f__)(int [1-2*!(e)]); ACC_EXTERN_C_END
2031 # elif (ACC_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__)
2032 # define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN enum {__ACC_CTA_NAME(acc_cta_e__)=1/!!(e)} __attribute__((__unused__)); ACC_EXTERN_C_END
2033 # else
2034 # define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN extern int __ACC_CTA_NAME(acc_cta__)[1-2*!(e)]; ACC_EXTERN_C_END
2035 # endif
2036 #endif
2037 #if !defined(ACC_COMPILE_TIME_ASSERT)
2038 # if (ACC_CC_AZTECC)
2039 # define ACC_COMPILE_TIME_ASSERT(e) {typedef int __ACC_CTA_NAME(acc_cta_t__)[1-!(e)];}
2040 # elif (ACC_CC_CLANG && (ACC_CC_CLANG >= 0x030000ul))
2041 # define ACC_COMPILE_TIME_ASSERT(e) {typedef int __ACC_CTA_NAME(acc_cta_t__)[1-2*!(e)] __attribute__((__unused__));}
2042 # elif (ACC_CC_DMC || ACC_CC_PACIFICC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
2043 # define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
2044 # elif (ACC_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__)
2045 # define ACC_COMPILE_TIME_ASSERT(e) {(void) (0/!!(e));}
2046 # elif (ACC_CC_GNUC >= 0x040700ul) && (ACC_CFG_USE_COUNTER) && defined(__cplusplus)
2047 # define ACC_COMPILE_TIME_ASSERT(e) {enum {__ACC_CTA_NAME(acc_cta_e__)=1/!!(e)} __attribute__((__unused__));}
2048 # elif (ACC_CC_GNUC >= 0x040700ul)
2049 # define ACC_COMPILE_TIME_ASSERT(e) {typedef int __ACC_CTA_NAME(acc_cta_t__)[1-2*!(e)] __attribute__((__unused__));}
2050 # elif (ACC_CC_MSC && (_MSC_VER < 900))
2051 # define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
2052 # elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
2053 # define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
2054 # else
2055 # define ACC_COMPILE_TIME_ASSERT(e) {typedef int __ACC_CTA_NAME(acc_cta_t__)[1-2*!(e)];}
2056 # endif
2057 #endif
2058 #if (ACC_LANG_ASSEMBLER)
2059 # undef ACC_COMPILE_TIME_ASSERT_HEADER
2060 # define ACC_COMPILE_TIME_ASSERT_HEADER(e) /*empty*/
2061 #else
2062 ACC_COMPILE_TIME_ASSERT_HEADER(1 == 1)
2063 #if defined(__cplusplus)
2064 extern "C" { ACC_COMPILE_TIME_ASSERT_HEADER(2 == 2) }
2065 #endif
2066 ACC_COMPILE_TIME_ASSERT_HEADER(3 == 3)
2067 #endif
2068 #if (ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
2069 # if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC)
2070 # elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
2071 # define __acc_cdecl __cdecl
2072 # define __acc_cdecl_atexit /*empty*/
2073 # define __acc_cdecl_main __cdecl
2074 # if (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
2075 # define __acc_cdecl_qsort __pascal
2076 # elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
2077 # define __acc_cdecl_qsort _stdcall
2078 # else
2079 # define __acc_cdecl_qsort __cdecl
2080 # endif
2081 # elif (ACC_CC_WATCOMC)
2082 # define __acc_cdecl __cdecl
2083 # else
2084 # define __acc_cdecl __cdecl
2085 # define __acc_cdecl_atexit __cdecl
2086 # define __acc_cdecl_main __cdecl
2087 # define __acc_cdecl_qsort __cdecl
2088 # endif
2089 # if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC || ACC_CC_WATCOMC)
2090 # elif (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
2091 # define __acc_cdecl_sighandler __pascal
2092 # elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
2093 # define __acc_cdecl_sighandler _stdcall
2094 # elif (ACC_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE)
2095 # define __acc_cdecl_sighandler __clrcall
2096 # elif (ACC_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700))
2097 # if defined(_DLL)
2098 # define __acc_cdecl_sighandler _far _cdecl _loadds
2099 # elif defined(_MT)
2100 # define __acc_cdecl_sighandler _far _cdecl
2101 # else
2102 # define __acc_cdecl_sighandler _cdecl
2103 # endif
2104 # else
2105 # define __acc_cdecl_sighandler __cdecl
2106 # endif
2107 #elif (ACC_ARCH_I386) && (ACC_CC_WATCOMC)
2108 # define __acc_cdecl __cdecl
2109 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
2110 # define __acc_cdecl cdecl
2111 #endif
2112 #if !defined(__acc_cdecl)
2113 # define __acc_cdecl /*empty*/
2114 #endif
2115 #if !defined(__acc_cdecl_atexit)
2116 # define __acc_cdecl_atexit /*empty*/
2117 #endif
2118 #if !defined(__acc_cdecl_main)
2119 # define __acc_cdecl_main /*empty*/
2120 #endif
2121 #if !defined(__acc_cdecl_qsort)
2122 # define __acc_cdecl_qsort /*empty*/
2123 #endif
2124 #if !defined(__acc_cdecl_sighandler)
2125 # define __acc_cdecl_sighandler /*empty*/
2126 #endif
2127 #if !defined(__acc_cdecl_va)
2128 # define __acc_cdecl_va __acc_cdecl
2129 #endif
2130 #if !(ACC_CFG_NO_WINDOWS_H)
2131 #if !defined(ACC_HAVE_WINDOWS_H)
2132 #if (ACC_OS_CYGWIN || (ACC_OS_EMX && defined(__RSXNT__)) || ACC_OS_WIN32 || ACC_OS_WIN64)
2133 # if (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
2134 # elif ((ACC_OS_WIN32 && defined(__PW32__)) && (ACC_CC_GNUC && (ACC_CC_GNUC < 0x030000ul)))
2135 # elif ((ACC_OS_CYGWIN || defined(__MINGW32__)) && (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025f00ul)))
2136 # else
2137 # define ACC_HAVE_WINDOWS_H 1
2138 # endif
2139 #endif
2140 #endif
2141 #endif
2142 #ifndef ACC_SIZEOF_SHORT
2143 #if defined(SIZEOF_SHORT)
2144 # define ACC_SIZEOF_SHORT (SIZEOF_SHORT)
2145 #elif defined(__SIZEOF_SHORT__)
2146 # define ACC_SIZEOF_SHORT (__SIZEOF_SHORT__)
2147 #endif
2148 #endif
2149 #ifndef ACC_SIZEOF_INT
2150 #if defined(SIZEOF_INT)
2151 # define ACC_SIZEOF_INT (SIZEOF_INT)
2152 #elif defined(__SIZEOF_INT__)
2153 # define ACC_SIZEOF_INT (__SIZEOF_INT__)
2154 #endif
2155 #endif
2156 #ifndef ACC_SIZEOF_LONG
2157 #if defined(SIZEOF_LONG)
2158 # define ACC_SIZEOF_LONG (SIZEOF_LONG)
2159 #elif defined(__SIZEOF_LONG__)
2160 # define ACC_SIZEOF_LONG (__SIZEOF_LONG__)
2161 #endif
2162 #endif
2163 #ifndef ACC_SIZEOF_LONG_LONG
2164 #if defined(SIZEOF_LONG_LONG)
2165 # define ACC_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG)
2166 #elif defined(__SIZEOF_LONG_LONG__)
2167 # define ACC_SIZEOF_LONG_LONG (__SIZEOF_LONG_LONG__)
2168 #endif
2169 #endif
2170 #ifndef ACC_SIZEOF___INT16
2171 #if defined(SIZEOF___INT16)
2172 # define ACC_SIZEOF___INT16 (SIZEOF___INT16)
2173 #endif
2174 #endif
2175 #ifndef ACC_SIZEOF___INT32
2176 #if defined(SIZEOF___INT32)
2177 # define ACC_SIZEOF___INT32 (SIZEOF___INT32)
2178 #endif
2179 #endif
2180 #ifndef ACC_SIZEOF___INT64
2181 #if defined(SIZEOF___INT64)
2182 # define ACC_SIZEOF___INT64 (SIZEOF___INT64)
2183 #endif
2184 #endif
2185 #ifndef ACC_SIZEOF_VOID_P
2186 #if defined(SIZEOF_VOID_P)
2187 # define ACC_SIZEOF_VOID_P (SIZEOF_VOID_P)
2188 #elif defined(__SIZEOF_POINTER__)
2189 # define ACC_SIZEOF_VOID_P (__SIZEOF_POINTER__)
2190 #endif
2191 #endif
2192 #ifndef ACC_SIZEOF_SIZE_T
2193 #if defined(SIZEOF_SIZE_T)
2194 # define ACC_SIZEOF_SIZE_T (SIZEOF_SIZE_T)
2195 #elif defined(__SIZEOF_SIZE_T__)
2196 # define ACC_SIZEOF_SIZE_T (__SIZEOF_SIZE_T__)
2197 #endif
2198 #endif
2199 #ifndef ACC_SIZEOF_PTRDIFF_T
2200 #if defined(SIZEOF_PTRDIFF_T)
2201 # define ACC_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T)
2202 #elif defined(__SIZEOF_PTRDIFF_T__)
2203 # define ACC_SIZEOF_PTRDIFF_T (__SIZEOF_PTRDIFF_T__)
2204 #endif
2205 #endif
2206 #define __ACC_LSR(x,b) (((x)+0ul) >> (b))
2207 #if !defined(ACC_SIZEOF_SHORT)
2208 # if (ACC_ARCH_CRAY_PVP)
2209 # define ACC_SIZEOF_SHORT 8
2210 # elif (USHRT_MAX == ACC_0xffffL)
2211 # define ACC_SIZEOF_SHORT 2
2212 # elif (__ACC_LSR(USHRT_MAX,7) == 1)
2213 # define ACC_SIZEOF_SHORT 1
2214 # elif (__ACC_LSR(USHRT_MAX,15) == 1)
2215 # define ACC_SIZEOF_SHORT 2
2216 # elif (__ACC_LSR(USHRT_MAX,31) == 1)
2217 # define ACC_SIZEOF_SHORT 4
2218 # elif (__ACC_LSR(USHRT_MAX,63) == 1)
2219 # define ACC_SIZEOF_SHORT 8
2220 # elif (__ACC_LSR(USHRT_MAX,127) == 1)
2221 # define ACC_SIZEOF_SHORT 16
2222 # else
2223 # error "ACC_SIZEOF_SHORT"
2224 # endif
2225 #endif
2226 ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_SHORT == sizeof(short))
2227 #if !defined(ACC_SIZEOF_INT)
2228 # if (ACC_ARCH_CRAY_PVP)
2229 # define ACC_SIZEOF_INT 8
2230 # elif (UINT_MAX == ACC_0xffffL)
2231 # define ACC_SIZEOF_INT 2
2232 # elif (UINT_MAX == ACC_0xffffffffL)
2233 # define ACC_SIZEOF_INT 4
2234 # elif (__ACC_LSR(UINT_MAX,7) == 1)
2235 # define ACC_SIZEOF_INT 1
2236 # elif (__ACC_LSR(UINT_MAX,15) == 1)
2237 # define ACC_SIZEOF_INT 2
2238 # elif (__ACC_LSR(UINT_MAX,31) == 1)
2239 # define ACC_SIZEOF_INT 4
2240 # elif (__ACC_LSR(UINT_MAX,63) == 1)
2241 # define ACC_SIZEOF_INT 8
2242 # elif (__ACC_LSR(UINT_MAX,127) == 1)
2243 # define ACC_SIZEOF_INT 16
2244 # else
2245 # error "ACC_SIZEOF_INT"
2246 # endif
2247 #endif
2248 ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_INT == sizeof(int))
2249 #if !defined(ACC_SIZEOF_LONG)
2250 # if (ULONG_MAX == ACC_0xffffffffL)
2251 # define ACC_SIZEOF_LONG 4
2252 # elif (__ACC_LSR(ULONG_MAX,7) == 1)
2253 # define ACC_SIZEOF_LONG 1
2254 # elif (__ACC_LSR(ULONG_MAX,15) == 1)
2255 # define ACC_SIZEOF_LONG 2
2256 # elif (__ACC_LSR(ULONG_MAX,31) == 1)
2257 # define ACC_SIZEOF_LONG 4
2258 # elif (__ACC_LSR(ULONG_MAX,39) == 1)
2259 # define ACC_SIZEOF_LONG 5
2260 # elif (__ACC_LSR(ULONG_MAX,63) == 1)
2261 # define ACC_SIZEOF_LONG 8
2262 # elif (__ACC_LSR(ULONG_MAX,127) == 1)
2263 # define ACC_SIZEOF_LONG 16
2264 # else
2265 # error "ACC_SIZEOF_LONG"
2266 # endif
2267 #endif
2268 ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_LONG == sizeof(long))
2269 #if !defined(ACC_SIZEOF_LONG_LONG) && !defined(ACC_SIZEOF___INT64)
2270 #if (ACC_SIZEOF_LONG > 0 && ACC_SIZEOF_LONG < 8)
2271 # if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__)
2272 # if (ACC_CC_GNUC >= 0x030300ul)
2273 # if ((__LONG_MAX__-0) == (__LONG_LONG_MAX__-0))
2274 # define ACC_SIZEOF_LONG_LONG ACC_SIZEOF_LONG
2275 # elif (__ACC_LSR(__LONG_LONG_MAX__,30) == 1)
2276 # define ACC_SIZEOF_LONG_LONG 4
2277 # endif
2278 # endif
2279 # endif
2280 #endif
2281 #endif
2282 #if !defined(ACC_SIZEOF_LONG_LONG) && !defined(ACC_SIZEOF___INT64)
2283 #if (ACC_SIZEOF_LONG > 0 && ACC_SIZEOF_LONG < 8)
2284 #if (ACC_ARCH_I086 && ACC_CC_DMC)
2285 #elif (ACC_CC_CILLY) && defined(__GNUC__)
2286 # define ACC_SIZEOF_LONG_LONG 8
2287 #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
2288 # define ACC_SIZEOF_LONG_LONG 8
2289 #elif ((ACC_OS_WIN32 || ACC_OS_WIN64 || defined(_WIN32)) && ACC_CC_MSC && (_MSC_VER >= 1400))
2290 # define ACC_SIZEOF_LONG_LONG 8
2291 #elif (ACC_OS_WIN64 || defined(_WIN64))
2292 # define ACC_SIZEOF___INT64 8
2293 #elif (ACC_ARCH_I386 && (ACC_CC_DMC))
2294 # define ACC_SIZEOF_LONG_LONG 8
2295 #elif (ACC_ARCH_I386 && (ACC_CC_SYMANTECC && (__SC__ >= 0x700)))
2296 # define ACC_SIZEOF_LONG_LONG 8
2297 #elif (ACC_ARCH_I386 && (ACC_CC_INTELC && defined(__linux__)))
2298 # define ACC_SIZEOF_LONG_LONG 8
2299 #elif (ACC_ARCH_I386 && (ACC_CC_MWERKS || ACC_CC_PELLESC || ACC_CC_PGI || ACC_CC_SUNPROC))
2300 # define ACC_SIZEOF_LONG_LONG 8
2301 #elif (ACC_ARCH_I386 && (ACC_CC_INTELC || ACC_CC_MSC))
2302 # define ACC_SIZEOF___INT64 8
2303 #elif ((ACC_OS_WIN32 || defined(_WIN32)) && (ACC_CC_MSC))
2304 # define ACC_SIZEOF___INT64 8
2305 #elif (ACC_ARCH_I386 && (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0520)))
2306 # define ACC_SIZEOF___INT64 8
2307 #elif (ACC_ARCH_I386 && (ACC_CC_WATCOMC && (__WATCOMC__ >= 1100)))
2308 # define ACC_SIZEOF___INT64 8
2309 #elif (ACC_CC_GHS && defined(__LLONG_BIT) && ((__LLONG_BIT-0) == 64))
2310 # define ACC_SIZEOF_LONG_LONG 8
2311 #elif (ACC_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && ((_INTEGRAL_MAX_BITS-0) == 64))
2312 # define ACC_SIZEOF___INT64 8
2313 #elif (ACC_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
2314 # define ACC_SIZEOF_LONG_LONG 8
2315 #elif (defined(__vms) || defined(__VMS)) && ((__INITIAL_POINTER_SIZE-0) == 64)
2316 # define ACC_SIZEOF_LONG_LONG 8
2317 #elif (ACC_CC_SDCC) && (ACC_SIZEOF_INT == 2)
2318 #elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
2319 # define ACC_SIZEOF_LONG_LONG 8
2320 #endif
2321 #endif
2322 #endif
2323 #if defined(__cplusplus) && (ACC_CC_GNUC)
2324 # if (ACC_CC_GNUC < 0x020800ul)
2325 # undef ACC_SIZEOF_LONG_LONG
2326 # endif
2327 #endif
2328 #if (ACC_CFG_NO_LONG_LONG)
2329 # undef ACC_SIZEOF_LONG_LONG
2330 #elif defined(__NO_LONG_LONG)
2331 # undef ACC_SIZEOF_LONG_LONG
2332 #elif defined(_NO_LONGLONG)
2333 # undef ACC_SIZEOF_LONG_LONG
2334 #endif
2335 #if !defined(ACC_WORDSIZE)
2336 #if (ACC_ARCH_ALPHA)
2337 # define ACC_WORDSIZE 8
2338 #elif (ACC_ARCH_AMD64)
2339 # define ACC_WORDSIZE 8
2340 #elif (ACC_ARCH_ARM64)
2341 # define ACC_WORDSIZE 8
2342 #elif (ACC_ARCH_AVR)
2343 # define ACC_WORDSIZE 1
2344 #elif (ACC_ARCH_H8300)
2345 # if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
2346 # define ACC_WORDSIZE 4
2347 # else
2348 # define ACC_WORDSIZE 2
2349 # endif
2350 #elif (ACC_ARCH_I086)
2351 # define ACC_WORDSIZE 2
2352 #elif (ACC_ARCH_IA64)
2353 # define ACC_WORDSIZE 8
2354 #elif (ACC_ARCH_M16C)
2355 # define ACC_WORDSIZE 2
2356 #elif (ACC_ARCH_SPU)
2357 # define ACC_WORDSIZE 4
2358 #elif (ACC_ARCH_Z80)
2359 # define ACC_WORDSIZE 1
2360 #elif (ACC_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
2361 # define ACC_WORDSIZE 8
2362 #elif (ACC_OS_OS400 || defined(__OS400__))
2363 # define ACC_WORDSIZE 8
2364 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
2365 # define ACC_WORDSIZE 8
2366 #endif
2367 #endif
2368 #if !defined(ACC_SIZEOF_VOID_P)
2369 #if defined(__ILP32__) || defined(__ILP32) || defined(_ILP32)
2370 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 4)
2371 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4)
2372 # define ACC_SIZEOF_VOID_P 4
2373 #elif defined(__ILP64__) || defined(__ILP64) || defined(_ILP64)
2374 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 8)
2375 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8)
2376 # define ACC_SIZEOF_VOID_P 8
2377 #elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64)
2378 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4)
2379 # define ACC_SIZEOF_VOID_P 8
2380 #elif defined(__LP64__) || defined(__LP64) || defined(_LP64)
2381 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8)
2382 # define ACC_SIZEOF_VOID_P 8
2383 #elif (ACC_ARCH_AVR)
2384 # define ACC_SIZEOF_VOID_P 2
2385 #elif (ACC_ARCH_C166 || ACC_ARCH_MCS51 || ACC_ARCH_MCS251 || ACC_ARCH_MSP430)
2386 # define ACC_SIZEOF_VOID_P 2
2387 #elif (ACC_ARCH_H8300)
2388 # if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
2389  ACC_COMPILE_TIME_ASSERT_HEADER(ACC_WORDSIZE == 4)
2390 # if defined(__NORMAL_MODE__)
2391 # define ACC_SIZEOF_VOID_P 2
2392 # else
2393 # define ACC_SIZEOF_VOID_P 4
2394 # endif
2395 # else
2396  ACC_COMPILE_TIME_ASSERT_HEADER(ACC_WORDSIZE == 2)
2397 # define ACC_SIZEOF_VOID_P 2
2398 # endif
2399 # if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x040000ul)) && (ACC_SIZEOF_INT == 4)
2400 # define ACC_SIZEOF_SIZE_T ACC_SIZEOF_INT
2401 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_INT
2402 # endif
2403 #elif (ACC_ARCH_I086)
2404 # if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
2405 # define ACC_SIZEOF_VOID_P 2
2406 # elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
2407 # define ACC_SIZEOF_VOID_P 4
2408 # else
2409 # error "invalid ACC_ARCH_I086 memory model"
2410 # endif
2411 #elif (ACC_ARCH_M16C)
2412 # if defined(__m32c_cpu__) || defined(__m32cm_cpu__)
2413 # define ACC_SIZEOF_VOID_P 4
2414 # else
2415 # define ACC_SIZEOF_VOID_P 2
2416 # endif
2417 #elif (ACC_ARCH_SPU)
2418 # define ACC_SIZEOF_VOID_P 4
2419 #elif (ACC_ARCH_Z80)
2420 # define ACC_SIZEOF_VOID_P 2
2421 #elif (ACC_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
2422 # define ACC_SIZEOF_VOID_P 4
2423 #elif (ACC_OS_OS400 || defined(__OS400__))
2424 # if defined(__LLP64_IFC__)
2425 # define ACC_SIZEOF_VOID_P 8
2426 # define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
2427 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
2428 # else
2429 # define ACC_SIZEOF_VOID_P 16
2430 # define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
2431 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
2432 # endif
2433 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
2434 # define ACC_SIZEOF_VOID_P 8
2435 # define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
2436 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
2437 #endif
2438 #endif
2439 #if !defined(ACC_SIZEOF_VOID_P)
2440 # define ACC_SIZEOF_VOID_P ACC_SIZEOF_LONG
2441 #endif
2442 ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_VOID_P == sizeof(void *))
2443 #if !defined(ACC_SIZEOF_SIZE_T)
2444 #if (ACC_ARCH_I086 || ACC_ARCH_M16C)
2445 # define ACC_SIZEOF_SIZE_T 2
2446 #endif
2447 #endif
2448 #if !defined(ACC_SIZEOF_SIZE_T)
2449 # define ACC_SIZEOF_SIZE_T ACC_SIZEOF_VOID_P
2450 #endif
2451 #if defined(offsetof)
2452 ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_SIZE_T == sizeof(size_t))
2453 #endif
2454 #if !defined(ACC_SIZEOF_PTRDIFF_T)
2455 #if (ACC_ARCH_I086)
2456 # if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM || ACC_MM_HUGE)
2457 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_VOID_P
2458 # elif (ACC_MM_COMPACT || ACC_MM_LARGE)
2459 # if (ACC_CC_BORLANDC || ACC_CC_TURBOC)
2460 # define ACC_SIZEOF_PTRDIFF_T 4
2461 # else
2462 # define ACC_SIZEOF_PTRDIFF_T 2
2463 # endif
2464 # else
2465 # error "invalid ACC_ARCH_I086 memory model"
2466 # endif
2467 #endif
2468 #endif
2469 #if !defined(ACC_SIZEOF_PTRDIFF_T)
2470 # define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_SIZE_T
2471 #endif
2472 #if defined(offsetof)
2473 ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
2474 #endif
2475 #if !defined(ACC_WORDSIZE)
2476 # define ACC_WORDSIZE ACC_SIZEOF_VOID_P
2477 #endif
2478 #if (ACC_ABI_NEUTRAL_ENDIAN)
2479 # undef ACC_ABI_BIG_ENDIAN
2480 # undef ACC_ABI_LITTLE_ENDIAN
2481 #elif !(ACC_ABI_BIG_ENDIAN) && !(ACC_ABI_LITTLE_ENDIAN)
2482 #if (ACC_ARCH_ALPHA) && (ACC_ARCH_CRAY_MPP)
2483 # define ACC_ABI_BIG_ENDIAN 1
2484 #elif (ACC_ARCH_IA64) && (ACC_OS_POSIX_LINUX || ACC_OS_WIN64)
2485 # define ACC_ABI_LITTLE_ENDIAN 1
2486 #elif (ACC_ARCH_ALPHA || ACC_ARCH_AMD64 || ACC_ARCH_BLACKFIN || ACC_ARCH_CRIS || ACC_ARCH_I086 || ACC_ARCH_I386 || ACC_ARCH_MSP430)
2487 # define ACC_ABI_LITTLE_ENDIAN 1
2488 #elif (ACC_ARCH_AVR32 || ACC_ARCH_M68K || ACC_ARCH_S390 || ACC_ARCH_SPU)
2489 # define ACC_ABI_BIG_ENDIAN 1
2490 #elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__)
2491 # if (__LITTLE_ENDIAN__ == 1)
2492 # define ACC_ABI_LITTLE_ENDIAN 1
2493 # else
2494 # define ACC_ABI_BIG_ENDIAN 1
2495 # endif
2496 #elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
2497 # define ACC_ABI_BIG_ENDIAN 1
2498 #elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
2499 # define ACC_ABI_LITTLE_ENDIAN 1
2500 #elif 1 && (ACC_ARCH_ARM) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
2501 # define ACC_ABI_BIG_ENDIAN 1
2502 #elif 1 && (ACC_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
2503 # define ACC_ABI_BIG_ENDIAN 1
2504 #elif 1 && (ACC_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
2505 # define ACC_ABI_LITTLE_ENDIAN 1
2506 #elif 1 && (ACC_ARCH_ARM && ACC_CC_ARMCC_ARMCC)
2507 # if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN)
2508 # error "unexpected configuration - check your compiler defines"
2509 # elif defined(__BIG_ENDIAN)
2510 # define ACC_ABI_BIG_ENDIAN 1
2511 # else
2512 # define ACC_ABI_LITTLE_ENDIAN 1
2513 # endif
2514 # define ACC_ABI_LITTLE_ENDIAN 1
2515 #elif 1 && (ACC_ARCH_ARM64) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
2516 # define ACC_ABI_BIG_ENDIAN 1
2517 #elif 1 && (ACC_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__)
2518 # define ACC_ABI_BIG_ENDIAN 1
2519 #elif 1 && (ACC_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__)
2520 # define ACC_ABI_LITTLE_ENDIAN 1
2521 #elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
2522 # define ACC_ABI_BIG_ENDIAN 1
2523 #elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
2524 # define ACC_ABI_LITTLE_ENDIAN 1
2525 #endif
2526 #endif
2527 #if (ACC_ABI_BIG_ENDIAN) && (ACC_ABI_LITTLE_ENDIAN)
2528 # error "unexpected configuration - check your compiler defines"
2529 #endif
2530 #if (ACC_ABI_BIG_ENDIAN)
2531 # define ACC_INFO_ABI_ENDIAN "be"
2532 #elif (ACC_ABI_LITTLE_ENDIAN)
2533 # define ACC_INFO_ABI_ENDIAN "le"
2534 #elif (ACC_ABI_NEUTRAL_ENDIAN)
2535 # define ACC_INFO_ABI_ENDIAN "neutral"
2536 #endif
2537 #if (ACC_SIZEOF_INT == 1 && ACC_SIZEOF_LONG == 2 && ACC_SIZEOF_VOID_P == 2)
2538 # define ACC_ABI_I8LP16 1
2539 # define ACC_INFO_ABI_PM "i8lp16"
2540 #elif (ACC_SIZEOF_INT == 2 && ACC_SIZEOF_LONG == 2 && ACC_SIZEOF_VOID_P == 2)
2541 # define ACC_ABI_ILP16 1
2542 # define ACC_INFO_ABI_PM "ilp16"
2543 #elif (ACC_SIZEOF_INT == 2 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 4)
2544 # define ACC_ABI_LP32 1
2545 # define ACC_INFO_ABI_PM "lp32"
2546 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 4)
2547 # define ACC_ABI_ILP32 1
2548 # define ACC_INFO_ABI_PM "ilp32"
2549 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 8 && ACC_SIZEOF_SIZE_T == 8)
2550 # define ACC_ABI_LLP64 1
2551 # define ACC_INFO_ABI_PM "llp64"
2552 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 8)
2553 # define ACC_ABI_LP64 1
2554 # define ACC_INFO_ABI_PM "lp64"
2555 #elif (ACC_SIZEOF_INT == 8 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 8)
2556 # define ACC_ABI_ILP64 1
2557 # define ACC_INFO_ABI_PM "ilp64"
2558 #elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 4)
2559 # define ACC_ABI_IP32L64 1
2560 # define ACC_INFO_ABI_PM "ip32l64"
2561 #endif
2562 #if (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_VOID_P == 4 && ACC_WORDSIZE == 8)
2563 # define ACC_ABI_IP32W64 1
2564 # ifndef ACC_INFO_ABI_PM
2565 # define ACC_INFO_ABI_PM "ip32w64"
2566 # endif
2567 #endif
2568 #if 0
2569 #elif !defined(__ACC_LIBC_OVERRIDE)
2570 #if (ACC_LIBC_NAKED)
2571 # define ACC_INFO_LIBC "naked"
2572 #elif (ACC_LIBC_FREESTANDING)
2573 # define ACC_INFO_LIBC "freestanding"
2574 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
2575 # define ACC_INFO_LIBC "mfreestanding"
2576 #elif (ACC_LIBC_ISOC90)
2577 # define ACC_INFO_LIBC "isoc90"
2578 #elif (ACC_LIBC_ISOC99)
2579 # define ACC_INFO_LIBC "isoc99"
2580 #elif (ACC_CC_ARMCC_ARMCC) && defined(__ARMCLIB_VERSION)
2581 # define ACC_LIBC_ISOC90 1
2582 # define ACC_INFO_LIBC "isoc90"
2583 #elif defined(__dietlibc__)
2584 # define ACC_LIBC_DIETLIBC 1
2585 # define ACC_INFO_LIBC "dietlibc"
2586 #elif defined(_NEWLIB_VERSION)
2587 # define ACC_LIBC_NEWLIB 1
2588 # define ACC_INFO_LIBC "newlib"
2589 #elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__)
2590 # if defined(__UCLIBC_SUBLEVEL__)
2591 # define ACC_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + (__UCLIBC_MINOR__-0) * 0x100 + (__UCLIBC_SUBLEVEL__-0))
2592 # else
2593 # define ACC_LIBC_UCLIBC 0x00090bL
2594 # endif
2595 # define ACC_INFO_LIBC "uc" "libc"
2596 #elif defined(__GLIBC__) && defined(__GLIBC_MINOR__)
2597 # define ACC_LIBC_GLIBC (__GLIBC__ * 0x10000L + (__GLIBC_MINOR__-0) * 0x100)
2598 # define ACC_INFO_LIBC "glibc"
2599 #elif (ACC_CC_MWERKS) && defined(__MSL__)
2600 # define ACC_LIBC_MSL __MSL__
2601 # define ACC_INFO_LIBC "msl"
2602 #elif 1 && defined(__IAR_SYSTEMS_ICC__)
2603 # define ACC_LIBC_ISOC90 1
2604 # define ACC_INFO_LIBC "isoc90"
2605 #else
2606 # define ACC_LIBC_DEFAULT 1
2607 # define ACC_INFO_LIBC "default"
2608 #endif
2609 #endif
2610 #if (ACC_ARCH_I386 && (ACC_OS_DOS32 || ACC_OS_WIN32) && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
2611 # define ACC_ASM_SYNTAX_MSC 1
2612 #elif (ACC_OS_WIN64 && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
2613 #elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC == 0x011f00ul))
2614 #elif (ACC_ARCH_I386 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
2615 # define ACC_ASM_SYNTAX_GNUC 1
2616 #elif (ACC_ARCH_AMD64 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
2617 # define ACC_ASM_SYNTAX_GNUC 1
2618 #elif (ACC_CC_GNUC)
2619 # define ACC_ASM_SYNTAX_GNUC 1
2620 #endif
2621 #if (ACC_ASM_SYNTAX_GNUC)
2622 #if (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
2623 # define __ACC_ASM_CLOBBER "ax"
2624 # define __ACC_ASM_CLOBBER_LIST_CC /*empty*/
2625 # define __ACC_ASM_CLOBBER_LIST_CC_MEMORY /*empty*/
2626 # define __ACC_ASM_CLOBBER_LIST_EMPTY /*empty*/
2627 #elif (ACC_CC_INTELC && (__INTEL_COMPILER < 1000))
2628 # define __ACC_ASM_CLOBBER "memory"
2629 # define __ACC_ASM_CLOBBER_LIST_CC /*empty*/
2630 # define __ACC_ASM_CLOBBER_LIST_CC_MEMORY : "memory"
2631 # define __ACC_ASM_CLOBBER_LIST_EMPTY /*empty*/
2632 #else
2633 # define __ACC_ASM_CLOBBER "cc", "memory"
2634 # define __ACC_ASM_CLOBBER_LIST_CC : "cc"
2635 # define __ACC_ASM_CLOBBER_LIST_CC_MEMORY : "cc", "memory"
2636 # define __ACC_ASM_CLOBBER_LIST_EMPTY /*empty*/
2637 #endif
2638 #endif
2639 #if (ACC_ARCH_ALPHA)
2640 # define ACC_OPT_AVOID_UINT_INDEX 1
2641 #elif (ACC_ARCH_AMD64)
2642 # define ACC_OPT_AVOID_INT_INDEX 1
2643 # define ACC_OPT_AVOID_UINT_INDEX 1
2644 # ifndef ACC_OPT_UNALIGNED16
2645 # define ACC_OPT_UNALIGNED16 1
2646 # endif
2647 # ifndef ACC_OPT_UNALIGNED32
2648 # define ACC_OPT_UNALIGNED32 1
2649 # endif
2650 # ifndef ACC_OPT_UNALIGNED64
2651 # define ACC_OPT_UNALIGNED64 1
2652 # endif
2653 #elif (ACC_ARCH_ARM)
2654 # if defined(__ARM_FEATURE_UNALIGNED)
2655 # if ((__ARM_FEATURE_UNALIGNED)+0)
2656 # ifndef ACC_OPT_UNALIGNED16
2657 # define ACC_OPT_UNALIGNED16 1
2658 # endif
2659 # ifndef ACC_OPT_UNALIGNED32
2660 # define ACC_OPT_UNALIGNED32 1
2661 # endif
2662 # endif
2663 # elif 1 && (ACC_ARCH_ARM_THUMB2)
2664 # ifndef ACC_OPT_UNALIGNED16
2665 # define ACC_OPT_UNALIGNED16 1
2666 # endif
2667 # ifndef ACC_OPT_UNALIGNED32
2668 # define ACC_OPT_UNALIGNED32 1
2669 # endif
2670 # elif 1 && defined(__ARM_ARCH) && ((__ARM_ARCH)+0 >= 7)
2671 # ifndef ACC_OPT_UNALIGNED16
2672 # define ACC_OPT_UNALIGNED16 1
2673 # endif
2674 # ifndef ACC_OPT_UNALIGNED32
2675 # define ACC_OPT_UNALIGNED32 1
2676 # endif
2677 # elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 7)
2678 # ifndef ACC_OPT_UNALIGNED16
2679 # define ACC_OPT_UNALIGNED16 1
2680 # endif
2681 # ifndef ACC_OPT_UNALIGNED32
2682 # define ACC_OPT_UNALIGNED32 1
2683 # endif
2684 # elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 6) && (defined(__TARGET_PROFILE_A) || defined(__TARGET_PROFILE_R))
2685 # ifndef ACC_OPT_UNALIGNED16
2686 # define ACC_OPT_UNALIGNED16 1
2687 # endif
2688 # ifndef ACC_OPT_UNALIGNED32
2689 # define ACC_OPT_UNALIGNED32 1
2690 # endif
2691 # endif
2692 #elif (ACC_ARCH_ARM64)
2693 # ifndef ACC_OPT_UNALIGNED16
2694 # define ACC_OPT_UNALIGNED16 1
2695 # endif
2696 # ifndef ACC_OPT_UNALIGNED32
2697 # define ACC_OPT_UNALIGNED32 1
2698 # endif
2699 # ifndef ACC_OPT_UNALIGNED64
2700 # define ACC_OPT_UNALIGNED64 1
2701 # endif
2702 #elif (ACC_ARCH_CRIS)
2703 # ifndef ACC_OPT_UNALIGNED16
2704 # define ACC_OPT_UNALIGNED16 1
2705 # endif
2706 # ifndef ACC_OPT_UNALIGNED32
2707 # define ACC_OPT_UNALIGNED32 1
2708 # endif
2709 #elif (ACC_ARCH_I386)
2710 # ifndef ACC_OPT_UNALIGNED16
2711 # define ACC_OPT_UNALIGNED16 1
2712 # endif
2713 # ifndef ACC_OPT_UNALIGNED32
2714 # define ACC_OPT_UNALIGNED32 1
2715 # endif
2716 #elif (ACC_ARCH_IA64)
2717 # define ACC_OPT_AVOID_INT_INDEX 1
2718 # define ACC_OPT_AVOID_UINT_INDEX 1
2719 # define ACC_OPT_PREFER_POSTINC 1
2720 #elif (ACC_ARCH_M68K)
2721 # define ACC_OPT_PREFER_POSTINC 1
2722 # define ACC_OPT_PREFER_PREDEC 1
2723 # if defined(__mc68020__) && !defined(__mcoldfire__)
2724 # ifndef ACC_OPT_UNALIGNED16
2725 # define ACC_OPT_UNALIGNED16 1
2726 # endif
2727 # ifndef ACC_OPT_UNALIGNED32
2728 # define ACC_OPT_UNALIGNED32 1
2729 # endif
2730 # endif
2731 #elif (ACC_ARCH_MIPS)
2732 # define ACC_OPT_AVOID_UINT_INDEX 1
2733 #elif (ACC_ARCH_POWERPC)
2734 # define ACC_OPT_PREFER_PREINC 1
2735 # define ACC_OPT_PREFER_PREDEC 1
2736 # if (ACC_ABI_BIG_ENDIAN)
2737 # ifndef ACC_OPT_UNALIGNED16
2738 # define ACC_OPT_UNALIGNED16 1
2739 # endif
2740 # ifndef ACC_OPT_UNALIGNED32
2741 # define ACC_OPT_UNALIGNED32 1
2742 # endif
2743 # if (ACC_WORDSIZE == 8)
2744 # ifndef ACC_OPT_UNALIGNED64
2745 # define ACC_OPT_UNALIGNED64 1
2746 # endif
2747 # endif
2748 # endif
2749 #elif (ACC_ARCH_S390)
2750 # ifndef ACC_OPT_UNALIGNED16
2751 # define ACC_OPT_UNALIGNED16 1
2752 # endif
2753 # ifndef ACC_OPT_UNALIGNED32
2754 # define ACC_OPT_UNALIGNED32 1
2755 # endif
2756 # if (ACC_WORDSIZE == 8)
2757 # ifndef ACC_OPT_UNALIGNED64
2758 # define ACC_OPT_UNALIGNED64 1
2759 # endif
2760 # endif
2761 #elif (ACC_ARCH_SH)
2762 # define ACC_OPT_PREFER_POSTINC 1
2763 # define ACC_OPT_PREFER_PREDEC 1
2764 #endif
2765 #ifndef ACC_CFG_NO_INLINE_ASM
2766 #if (ACC_ABI_NEUTRAL_ENDIAN) || (ACC_ARCH_GENERIC)
2767 # define ACC_CFG_NO_INLINE_ASM 1
2768 #elif (ACC_CC_LLVM)
2769 # define ACC_CFG_NO_INLINE_ASM 1
2770 #endif
2771 #endif
2772 #if (ACC_CFG_NO_INLINE_ASM)
2773 # undef ACC_ASM_SYNTAX_MSC
2774 # undef ACC_ASM_SYNTAX_GNUC
2775 # undef __ACC_ASM_CLOBBER
2776 # undef __ACC_ASM_CLOBBER_LIST_CC
2777 # undef __ACC_ASM_CLOBBER_LIST_CC_MEMORY
2778 # undef __ACC_ASM_CLOBBER_LIST_EMPTY
2779 #endif
2780 #ifndef ACC_CFG_NO_UNALIGNED
2781 #if (ACC_ABI_NEUTRAL_ENDIAN) || (ACC_ARCH_GENERIC)
2782 # define ACC_CFG_NO_UNALIGNED 1
2783 #endif
2784 #endif
2785 #if (ACC_CFG_NO_UNALIGNED)
2786 # undef ACC_OPT_UNALIGNED16
2787 # undef ACC_OPT_UNALIGNED32
2788 # undef ACC_OPT_UNALIGNED64
2789 #endif
2790 #if defined(__ACC_INFOSTR_MM)
2791 #elif (ACC_MM_FLAT) && (defined(__ACC_INFOSTR_PM) || defined(ACC_INFO_ABI_PM))
2792 # define __ACC_INFOSTR_MM ""
2793 #elif defined(ACC_INFO_MM)
2794 # define __ACC_INFOSTR_MM "." ACC_INFO_MM
2795 #else
2796 # define __ACC_INFOSTR_MM ""
2797 #endif
2798 #if defined(__ACC_INFOSTR_PM)
2799 #elif defined(ACC_INFO_ABI_PM)
2800 # define __ACC_INFOSTR_PM "." ACC_INFO_ABI_PM
2801 #else
2802 # define __ACC_INFOSTR_PM ""
2803 #endif
2804 #if defined(__ACC_INFOSTR_ENDIAN)
2805 #elif defined(ACC_INFO_ABI_ENDIAN)
2806 # define __ACC_INFOSTR_ENDIAN "." ACC_INFO_ABI_ENDIAN
2807 #else
2808 # define __ACC_INFOSTR_ENDIAN ""
2809 #endif
2810 #if defined(__ACC_INFOSTR_OSNAME)
2811 #elif defined(ACC_INFO_OS_CONSOLE)
2812 # define __ACC_INFOSTR_OSNAME ACC_INFO_OS "." ACC_INFO_OS_CONSOLE
2813 #elif defined(ACC_INFO_OS_POSIX)
2814 # define __ACC_INFOSTR_OSNAME ACC_INFO_OS "." ACC_INFO_OS_POSIX
2815 #else
2816 # define __ACC_INFOSTR_OSNAME ACC_INFO_OS
2817 #endif
2818 #if defined(__ACC_INFOSTR_LIBC)
2819 #elif defined(ACC_INFO_LIBC)
2820 # define __ACC_INFOSTR_LIBC "." ACC_INFO_LIBC
2821 #else
2822 # define __ACC_INFOSTR_LIBC ""
2823 #endif
2824 #if defined(__ACC_INFOSTR_CCVER)
2825 #elif defined(ACC_INFO_CCVER)
2826 # define __ACC_INFOSTR_CCVER " " ACC_INFO_CCVER
2827 #else
2828 # define __ACC_INFOSTR_CCVER ""
2829 #endif
2830 #define ACC_INFO_STRING \
2831  ACC_INFO_ARCH __ACC_INFOSTR_MM __ACC_INFOSTR_PM __ACC_INFOSTR_ENDIAN \
2832  " " __ACC_INFOSTR_OSNAME __ACC_INFOSTR_LIBC " " ACC_INFO_CC __ACC_INFOSTR_CCVER
2833 #if !(ACC_CFG_SKIP_ACC_TYPES)
2834 #if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
2835 # error "missing defines for sizes"
2836 #endif
2837 #if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
2838 # error "missing defines for sizes"
2839 #endif
2840 #define ACC_TYPEOF_CHAR 1u
2841 #define ACC_TYPEOF_SHORT 2u
2842 #define ACC_TYPEOF_INT 3u
2843 #define ACC_TYPEOF_LONG 4u
2844 #define ACC_TYPEOF_LONG_LONG 5u
2845 #define ACC_TYPEOF___INT8 17u
2846 #define ACC_TYPEOF___INT16 18u
2847 #define ACC_TYPEOF___INT32 19u
2848 #define ACC_TYPEOF___INT64 20u
2849 #define ACC_TYPEOF___INT128 21u
2850 #define ACC_TYPEOF___INT256 22u
2851 #define ACC_TYPEOF___MODE_QI 33u
2852 #define ACC_TYPEOF___MODE_HI 34u
2853 #define ACC_TYPEOF___MODE_SI 35u
2854 #define ACC_TYPEOF___MODE_DI 36u
2855 #define ACC_TYPEOF___MODE_TI 37u
2856 #define ACC_TYPEOF_CHAR_P 129u
2857 #if !defined(acc_llong_t)
2858 #if (ACC_SIZEOF_LONG_LONG+0 > 0)
2859 # if !(ACC_LANG_ASSEMBLER)
2860  __acc_gnuc_extension__ typedef long long acc_llong_t__;
2861  __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t__;
2862 # endif
2863 # define acc_llong_t acc_llong_t__
2864 # define acc_ullong_t acc_ullong_t__
2865 #endif
2866 #endif
2867 #if !defined(acc_int16e_t)
2868 #if (ACC_SIZEOF_LONG == 2)
2869 # define acc_int16e_t long
2870 # define acc_uint16e_t unsigned long
2871 # define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_LONG
2872 #elif (ACC_SIZEOF_INT == 2)
2873 # define acc_int16e_t int
2874 # define acc_uint16e_t unsigned int
2875 # define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_INT
2876 #elif (ACC_SIZEOF_SHORT == 2)
2877 # define acc_int16e_t short int
2878 # define acc_uint16e_t unsigned short int
2879 # define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_SHORT
2880 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM)
2881 # if !(ACC_LANG_ASSEMBLER)
2882  typedef int acc_int16e_hi_t__ __attribute__((__mode__(__HI__)));
2883  typedef unsigned int acc_uint16e_hi_t__ __attribute__((__mode__(__HI__)));
2884 # endif
2885 # define acc_int16e_t acc_int16e_hi_t__
2886 # define acc_uint16e_t acc_uint16e_hi_t__
2887 # define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF___MODE_HI
2888 #elif (ACC_SIZEOF___INT16 == 2)
2889 # define acc_int16e_t __int16
2890 # define acc_uint16e_t unsigned __int16
2891 # define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF___INT16
2892 #else
2893 #endif
2894 #endif
2895 #if defined(acc_int16e_t)
2896 # define ACC_SIZEOF_ACC_INT16E_T 2
2897  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == 2)
2898  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == ACC_SIZEOF_ACC_INT16E_T)
2899 #endif
2900 #if !defined(acc_int32e_t)
2901 #if (ACC_SIZEOF_LONG == 4)
2902 # define acc_int32e_t long int
2903 # define acc_uint32e_t unsigned long int
2904 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG
2905 #elif (ACC_SIZEOF_INT == 4)
2906 # define acc_int32e_t int
2907 # define acc_uint32e_t unsigned int
2908 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_INT
2909 #elif (ACC_SIZEOF_SHORT == 4)
2910 # define acc_int32e_t short int
2911 # define acc_uint32e_t unsigned short int
2912 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_SHORT
2913 #elif (ACC_SIZEOF_LONG_LONG == 4)
2914 # define acc_int32e_t acc_llong_t
2915 # define acc_uint32e_t acc_ullong_t
2916 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG_LONG
2917 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
2918 # if !(ACC_LANG_ASSEMBLER)
2919  typedef int acc_int32e_si_t__ __attribute__((__mode__(__SI__)));
2920  typedef unsigned int acc_uint32e_si_t__ __attribute__((__mode__(__SI__)));
2921 # endif
2922 # define acc_int32e_t acc_int32e_si_t__
2923 # define acc_uint32e_t acc_uint32e_si_t__
2924 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___MODE_SI
2925 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
2926 # if !(ACC_LANG_ASSEMBLER)
2927  typedef int acc_int32e_si_t__ __attribute__((__mode__(__SI__)));
2928  typedef unsigned int acc_uint32e_si_t__ __attribute__((__mode__(__SI__)));
2929 # endif
2930 # define acc_int32e_t acc_int32e_si_t__
2931 # define acc_uint32e_t acc_uint32e_si_t__
2932 # define ACC_INT32_C(c) (c##LL)
2933 # define ACC_UINT32_C(c) (c##ULL)
2934 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___MODE_SI
2935 #elif (ACC_SIZEOF___INT32 == 4)
2936 # define acc_int32e_t __int32
2937 # define acc_uint32e_t unsigned __int32
2938 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___INT32
2939 #else
2940 #endif
2941 #endif
2942 #if defined(acc_int32e_t)
2943 # define ACC_SIZEOF_ACC_INT32E_T 4
2944  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32e_t) == 4)
2945  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32e_t) == ACC_SIZEOF_ACC_INT32E_T)
2946 #endif
2947 #if !defined(acc_int64e_t)
2948 #if (ACC_SIZEOF___INT64 == 8)
2949 # if (ACC_CC_BORLANDC) && !(ACC_CFG_TYPE_PREFER___INT64)
2950 # define ACC_CFG_TYPE_PREFER___INT64 1
2951 # endif
2952 #endif
2953 #if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
2954 # define acc_int64e_t int
2955 # define acc_uint64e_t unsigned int
2956 # define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_INT
2957 #elif (ACC_SIZEOF_LONG == 8)
2958 # define acc_int64e_t long int
2959 # define acc_uint64e_t unsigned long int
2960 # define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG
2961 #elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_TYPE_PREFER___INT64)
2962 # define acc_int64e_t acc_llong_t
2963 # define acc_uint64e_t acc_ullong_t
2964 # define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG_LONG
2965 # if (ACC_CC_BORLANDC)
2966 # define ACC_INT64_C(c) ((c) + 0ll)
2967 # define ACC_UINT64_C(c) ((c) + 0ull)
2968 # elif 0
2969 # define ACC_INT64_C(c) (__acc_gnuc_extension__ (c##LL))
2970 # define ACC_UINT64_C(c) (__acc_gnuc_extension__ (c##ULL))
2971 # else
2972 # define ACC_INT64_C(c) (c##LL)
2973 # define ACC_UINT64_C(c) (c##ULL)
2974 # endif
2975 #elif (ACC_SIZEOF___INT64 == 8)
2976 # define acc_int64e_t __int64
2977 # define acc_uint64e_t unsigned __int64
2978 # define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF___INT64
2979 # if (ACC_CC_BORLANDC)
2980 # define ACC_INT64_C(c) ((c) + 0i64)
2981 # define ACC_UINT64_C(c) ((c) + 0ui64)
2982 # else
2983 # define ACC_INT64_C(c) (c##i64)
2984 # define ACC_UINT64_C(c) (c##ui64)
2985 # endif
2986 #else
2987 #endif
2988 #endif
2989 #if defined(acc_int64e_t)
2990 # define ACC_SIZEOF_ACC_INT64E_T 8
2991  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64e_t) == 8)
2992  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64e_t) == ACC_SIZEOF_ACC_INT64E_T)
2993 #endif
2994 #if !defined(acc_int32l_t)
2995 #if defined(acc_int32e_t)
2996 # define acc_int32l_t acc_int32e_t
2997 # define acc_uint32l_t acc_uint32e_t
2998 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32E_T
2999 # define ACC_TYPEOF_ACC_INT32L_T ACC_TYPEOF_ACC_INT32E_T
3000 #elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
3001 # define acc_int32l_t int
3002 # define acc_uint32l_t unsigned int
3003 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_INT
3004 # define ACC_TYPEOF_ACC_INT32L_T ACC_SIZEOF_INT
3005 #elif (ACC_SIZEOF_LONG >= 4)
3006 # define acc_int32l_t long int
3007 # define acc_uint32l_t unsigned long int
3008 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_LONG
3009 # define ACC_TYPEOF_ACC_INT32L_T ACC_SIZEOF_LONG
3010 #else
3011 # error "acc_int32l_t"
3012 #endif
3013 #endif
3014 #if 1
3015  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32l_t) >= 4)
3016  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32l_t) == ACC_SIZEOF_ACC_INT32L_T)
3017 #endif
3018 #if !defined(acc_int64l_t)
3019 #if defined(acc_int64e_t)
3020 # define acc_int64l_t acc_int64e_t
3021 # define acc_uint64l_t acc_uint64e_t
3022 # define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64E_T
3023 # define ACC_TYPEOF_ACC_INT64L_T ACC_TYPEOF_ACC_INT64E_T
3024 #else
3025 #endif
3026 #endif
3027 #if defined(acc_int64l_t)
3028  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64l_t) >= 8)
3029  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64l_t) == ACC_SIZEOF_ACC_INT64L_T)
3030 #endif
3031 #if !defined(acc_int32f_t)
3032 #if (ACC_SIZEOF_SIZE_T >= 8)
3033 # define acc_int32f_t acc_int64l_t
3034 # define acc_uint32f_t acc_uint64l_t
3035 # define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT64L_T
3036 # define ACC_TYPEOF_ACC_INT32F_T ACC_TYPEOF_ACC_INT64L_T
3037 #else
3038 # define acc_int32f_t acc_int32l_t
3039 # define acc_uint32f_t acc_uint32l_t
3040 # define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32L_T
3041 # define ACC_TYPEOF_ACC_INT32F_T ACC_TYPEOF_ACC_INT32L_T
3042 #endif
3043 #endif
3044 #if 1
3045  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32f_t) >= 4)
3046  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32f_t) == ACC_SIZEOF_ACC_INT32F_T)
3047 #endif
3048 #if !defined(acc_int64f_t)
3049 #if defined(acc_int64l_t)
3050 # define acc_int64f_t acc_int64l_t
3051 # define acc_uint64f_t acc_uint64l_t
3052 # define ACC_SIZEOF_ACC_INT64F_T ACC_SIZEOF_ACC_INT64L_T
3053 # define ACC_TYPEOF_ACC_INT64F_T ACC_TYPEOF_ACC_INT64L_T
3054 #else
3055 #endif
3056 #endif
3057 #if defined(acc_int64f_t)
3058  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64f_t) >= 8)
3059  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64f_t) == ACC_SIZEOF_ACC_INT64F_T)
3060 #endif
3061 #if !defined(acc_intptr_t)
3062 #if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
3063 # define __ACC_INTPTR_T_IS_POINTER 1
3064 # if !(ACC_LANG_ASSEMBLER)
3065  typedef char * acc_intptr_t;
3066  typedef char * acc_uintptr_t;
3067 # endif
3068 # define acc_intptr_t acc_intptr_t
3069 # define acc_uintptr_t acc_uintptr_t
3070 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_VOID_P
3071 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_CHAR_P
3072 #elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
3073 # if !(ACC_LANG_ASSEMBLER)
3074  typedef __w64 int acc_intptr_t;
3075  typedef __w64 unsigned int acc_uintptr_t;
3076 # endif
3077 # define acc_intptr_t acc_intptr_t
3078 # define acc_uintptr_t acc_uintptr_t
3079 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
3080 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_INT
3081 #elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
3082 # define acc_intptr_t short
3083 # define acc_uintptr_t unsigned short
3084 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_SHORT
3085 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_SHORT
3086 #elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
3087 # define acc_intptr_t int
3088 # define acc_uintptr_t unsigned int
3089 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
3090 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_INT
3091 #elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
3092 # define acc_intptr_t long
3093 # define acc_uintptr_t unsigned long
3094 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_LONG
3095 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_LONG
3096 #elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
3097 # define acc_intptr_t acc_int64l_t
3098 # define acc_uintptr_t acc_uint64l_t
3099 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INT64L_T
3100 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_ACC_INT64L_T
3101 #else
3102 # error "acc_intptr_t"
3103 #endif
3104 #endif
3105 #if 1
3106  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_intptr_t) >= sizeof(void *))
3107  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_intptr_t) == sizeof(acc_uintptr_t))
3108 #endif
3109 #if !defined(acc_word_t)
3110 #if defined(ACC_WORDSIZE) && (ACC_WORDSIZE+0 > 0)
3111 #if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !(__ACC_INTPTR_T_IS_POINTER)
3112 # define acc_word_t acc_uintptr_t
3113 # define acc_sword_t acc_intptr_t
3114 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
3115 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_ACC_INTPTR_T
3116 #elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
3117 # define acc_word_t unsigned long
3118 # define acc_sword_t long
3119 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
3120 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_LONG
3121 #elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
3122 # define acc_word_t unsigned int
3123 # define acc_sword_t int
3124 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
3125 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_INT
3126 #elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
3127 # define acc_word_t unsigned short
3128 # define acc_sword_t short
3129 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
3130 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_SHORT
3131 #elif (ACC_WORDSIZE == 1)
3132 # define acc_word_t unsigned char
3133 # define acc_sword_t signed char
3134 # define ACC_SIZEOF_ACC_WORD_T 1
3135 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_CHAR
3136 #elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
3137 # define acc_word_t acc_uint64l_t
3138 # define acc_sword_t acc_int64l_t
3139 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
3140 # define ACC_TYPEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
3141 #elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
3142 #if 0
3143 # if !(ACC_LANG_ASSEMBLER)
3144  typedef unsigned acc_word_t __attribute__((__mode__(__V16QI__)));
3145  typedef int acc_sword_t __attribute__((__mode__(__V16QI__)));
3146 # endif
3147 # define acc_word_t acc_word_t
3148 # define acc_sword_t acc_sword_t
3149 # define ACC_SIZEOF_ACC_WORD_T 16
3150 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF___MODE_V16QI
3151 #endif
3152 #else
3153 # error "acc_word_t"
3154 #endif
3155 #endif
3156 #endif
3157 #if 1 && defined(acc_word_t)
3158  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_word_t) == ACC_WORDSIZE)
3159  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_sword_t) == ACC_WORDSIZE)
3160 #endif
3161 #if 1
3162 #define acc_int8_t signed char
3163 #define acc_uint8_t unsigned char
3164 #define ACC_SIZEOF_ACC_INT8_T 1
3165 #define ACC_TYPEOF_ACC_INT8_T ACC_TYPEOF_CHAR
3166 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int8_t) == 1)
3167 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int8_t) == sizeof(acc_uint8_t))
3168 #endif
3169 #if defined(acc_int16e_t)
3170 #define acc_int16_t acc_int16e_t
3171 #define acc_uint16_t acc_uint16e_t
3172 #define ACC_SIZEOF_ACC_INT16_T ACC_SIZEOF_ACC_INT16E_T
3173 #define ACC_TYPEOF_ACC_INT16_T ACC_TYPEOF_ACC_INT16E_T
3174 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16_t) == 2)
3175 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16_t) == sizeof(acc_uint16_t))
3176 #endif
3177 #if defined(acc_int32e_t)
3178 #define acc_int32_t acc_int32e_t
3179 #define acc_uint32_t acc_uint32e_t
3180 #define ACC_SIZEOF_ACC_INT32_T ACC_SIZEOF_ACC_INT32E_T
3181 #define ACC_TYPEOF_ACC_INT32_T ACC_TYPEOF_ACC_INT32E_T
3182 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32_t) == 4)
3183 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32_t) == sizeof(acc_uint32_t))
3184 #endif
3185 #if defined(acc_int64e_t)
3186 #define acc_int64_t acc_int64e_t
3187 #define acc_uint64_t acc_uint64e_t
3188 #define ACC_SIZEOF_ACC_INT64_T ACC_SIZEOF_ACC_INT64E_T
3189 #define ACC_TYPEOF_ACC_INT64_T ACC_TYPEOF_ACC_INT64E_T
3190 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64_t) == 8)
3191 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64_t) == sizeof(acc_uint64_t))
3192 #endif
3193 #if 1
3194 #define acc_int_least32_t acc_int32l_t
3195 #define acc_uint_least32_t acc_uint32l_t
3196 #define ACC_SIZEOF_ACC_INT_LEAST32_T ACC_SIZEOF_ACC_INT32L_T
3197 #define ACC_TYPEOF_ACC_INT_LEAST32_T ACC_TYPEOF_ACC_INT32L_T
3198 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least32_t) >= 4)
3199 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least32_t) == sizeof(acc_uint_least32_t))
3200 #endif
3201 #if defined(acc_int64l_t)
3202 #define acc_int_least64_t acc_int64l_t
3203 #define acc_uint_least64_t acc_uint64l_t
3204 #define ACC_SIZEOF_ACC_INT_LEAST64_T ACC_SIZEOF_ACC_INT64L_T
3205 #define ACC_TYPEOF_ACC_INT_LEAST64_T ACC_TYPEOF_ACC_INT64L_T
3206 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least64_t) >= 8)
3207 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least64_t) == sizeof(acc_uint_least64_t))
3208 #endif
3209 #if 1
3210 #define acc_int_fast32_t acc_int32f_t
3211 #define acc_uint_fast32_t acc_uint32f_t
3212 #define ACC_SIZEOF_ACC_INT_FAST32_T ACC_SIZEOF_ACC_INT32F_T
3213 #define ACC_TYPEOF_ACC_INT_FAST32_T ACC_TYPEOF_ACC_INT32F_T
3214 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast32_t) >= 4)
3215 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast32_t) == sizeof(acc_uint_fast32_t))
3216 #endif
3217 #if defined(acc_int64f_t)
3218 #define acc_int_fast64_t acc_int64f_t
3219 #define acc_uint_fast64_t acc_uint64f_t
3220 #define ACC_SIZEOF_ACC_INT_FAST64_T ACC_SIZEOF_ACC_INT64F_T
3221 #define ACC_TYPEOF_ACC_INT_FAST64_T ACC_TYPEOF_ACC_INT64F_T
3222 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast64_t) >= 8)
3223 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast64_t) == sizeof(acc_uint_fast64_t))
3224 #endif
3225 #if !defined(ACC_INT16_C)
3226 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
3227 # define ACC_INT16_C(c) ((c) + 0)
3228 # define ACC_UINT16_C(c) ((c) + 0U)
3229 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
3230 # define ACC_INT16_C(c) ((c) + 0L)
3231 # define ACC_UINT16_C(c) ((c) + 0UL)
3232 # elif (ACC_SIZEOF_INT >= 2)
3233 # define ACC_INT16_C(c) (c)
3234 # define ACC_UINT16_C(c) (c##U)
3235 # elif (ACC_SIZEOF_LONG >= 2)
3236 # define ACC_INT16_C(c) (c##L)
3237 # define ACC_UINT16_C(c) (c##UL)
3238 # else
3239 # error "ACC_INT16_C"
3240 # endif
3241 #endif
3242 #if !defined(ACC_INT32_C)
3243 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
3244 # define ACC_INT32_C(c) ((c) + 0)
3245 # define ACC_UINT32_C(c) ((c) + 0U)
3246 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
3247 # define ACC_INT32_C(c) ((c) + 0L)
3248 # define ACC_UINT32_C(c) ((c) + 0UL)
3249 # elif (ACC_SIZEOF_INT >= 4)
3250 # define ACC_INT32_C(c) (c)
3251 # define ACC_UINT32_C(c) (c##U)
3252 # elif (ACC_SIZEOF_LONG >= 4)
3253 # define ACC_INT32_C(c) (c##L)
3254 # define ACC_UINT32_C(c) (c##UL)
3255 # elif (ACC_SIZEOF_LONG_LONG >= 4)
3256 # define ACC_INT32_C(c) (c##LL)
3257 # define ACC_UINT32_C(c) (c##ULL)
3258 # else
3259 # error "ACC_INT32_C"
3260 # endif
3261 #endif
3262 #if !defined(ACC_INT64_C) && defined(acc_int64l_t)
3263 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
3264 # define ACC_INT64_C(c) ((c) + 0)
3265 # define ACC_UINT64_C(c) ((c) + 0U)
3266 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
3267 # define ACC_INT64_C(c) ((c) + 0L)
3268 # define ACC_UINT64_C(c) ((c) + 0UL)
3269 # elif (ACC_SIZEOF_INT >= 8)
3270 # define ACC_INT64_C(c) (c)
3271 # define ACC_UINT64_C(c) (c##U)
3272 # elif (ACC_SIZEOF_LONG >= 8)
3273 # define ACC_INT64_C(c) (c##L)
3274 # define ACC_UINT64_C(c) (c##UL)
3275 # else
3276 # error "ACC_INT64_C"
3277 # endif
3278 #endif
3279 #endif
3280 #if (ACC_CFG_NO_CONFIG_HEADER)
3281 #elif defined(ACC_CFG_CONFIG_HEADER)
3282 #else
3283 #if !(ACC_CFG_AUTO_NO_HEADERS)
3284 #if (ACC_LIBC_NAKED)
3285 #elif (ACC_LIBC_FREESTANDING)
3286 # define HAVE_LIMITS_H 1
3287 # define HAVE_STDARG_H 1
3288 # define HAVE_STDDEF_H 1
3289 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
3290 # define HAVE_LIMITS_H 1
3291 # define HAVE_SETJMP_H 1
3292 # define HAVE_STDARG_H 1
3293 # define HAVE_STDDEF_H 1
3294 # define HAVE_STDIO_H 1
3295 # define HAVE_STRING_H 1
3296 #else
3297 #define STDC_HEADERS 1
3298 #define HAVE_ASSERT_H 1
3299 #define HAVE_CTYPE_H 1
3300 #define HAVE_DIRENT_H 1
3301 #define HAVE_ERRNO_H 1
3302 #define HAVE_FCNTL_H 1
3303 #define HAVE_FLOAT_H 1
3304 #define HAVE_LIMITS_H 1
3305 #define HAVE_MALLOC_H 1
3306 #define HAVE_MEMORY_H 1
3307 #define HAVE_SETJMP_H 1
3308 #define HAVE_SIGNAL_H 1
3309 #define HAVE_STDARG_H 1
3310 #define HAVE_STDDEF_H 1
3311 #define HAVE_STDIO_H 1
3312 #define HAVE_STDLIB_H 1
3313 #define HAVE_STRING_H 1
3314 #define HAVE_TIME_H 1
3315 #define HAVE_UNISTD_H 1
3316 #define HAVE_UTIME_H 1
3317 #define HAVE_SYS_STAT_H 1
3318 #define HAVE_SYS_TIME_H 1
3319 #define HAVE_SYS_TYPES_H 1
3320 #if (ACC_OS_POSIX)
3321 # if (ACC_OS_POSIX_AIX)
3322 # define HAVE_SYS_RESOURCE_H 1
3323 # elif (ACC_OS_POSIX_FREEBSD || ACC_OS_POSIX_MACOSX || ACC_OS_POSIX_NETBSD || ACC_OS_POSIX_OPENBSD)
3324 # define HAVE_STRINGS_H 1
3325 # undef HAVE_MALLOC_H
3326 # elif (ACC_OS_POSIX_HPUX || ACC_OS_POSIX_INTERIX)
3327 # define HAVE_ALLOCA_H 1
3328 # elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
3329 # undef HAVE_SYS_TIME_H
3330 # undef HAVE_SYS_TYPES_H
3331 # elif (ACC_OS_POSIX_SOLARIS || ACC_OS_POSIX_SUNOS)
3332 # define HAVE_ALLOCA_H 1
3333 # endif
3334 # if (ACC_LIBC_DIETLIBC || ACC_LIBC_GLIBC || ACC_LIBC_UCLIBC)
3335 # define HAVE_STRINGS_H 1
3336 # define HAVE_SYS_MMAN_H 1
3337 # define HAVE_SYS_RESOURCE_H 1
3338 # define HAVE_SYS_WAIT_H 1
3339 # endif
3340 # if (ACC_LIBC_NEWLIB)
3341 # undef HAVE_STRINGS_H
3342 # endif
3343 #elif (ACC_OS_CYGWIN)
3344 # define HAVE_IO_H 1
3345 #elif (ACC_OS_EMX)
3346 # define HAVE_ALLOCA_H 1
3347 # define HAVE_IO_H 1
3348 #elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
3349 # if !defined(__MINT__)
3350 # undef HAVE_MALLOC_H
3351 # endif
3352 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
3353 # undef HAVE_DIRENT_H
3354 # undef HAVE_FCNTL_H
3355 # undef HAVE_MALLOC_H
3356 # undef HAVE_MEMORY_H
3357 # undef HAVE_UNISTD_H
3358 # undef HAVE_UTIME_H
3359 # undef HAVE_SYS_STAT_H
3360 # undef HAVE_SYS_TIME_H
3361 # undef HAVE_SYS_TYPES_H
3362 #endif
3363 #if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
3364 #define HAVE_CONIO_H 1
3365 #define HAVE_DIRECT_H 1
3366 #define HAVE_DOS_H 1
3367 #define HAVE_IO_H 1
3368 #define HAVE_SHARE_H 1
3369 #if (ACC_CC_AZTECC)
3370 # undef HAVE_CONIO_H
3371 # undef HAVE_DIRECT_H
3372 # undef HAVE_DIRENT_H
3373 # undef HAVE_MALLOC_H
3374 # undef HAVE_SHARE_H
3375 # undef HAVE_UNISTD_H
3376 # undef HAVE_UTIME_H
3377 # undef HAVE_SYS_STAT_H
3378 # undef HAVE_SYS_TIME_H
3379 # undef HAVE_SYS_TYPES_H
3380 #elif (ACC_CC_BORLANDC)
3381 # undef HAVE_UNISTD_H
3382 # undef HAVE_SYS_TIME_H
3383 # if (ACC_OS_WIN32 || ACC_OS_WIN64)
3384 # undef HAVE_DIRENT_H
3385 # endif
3386 # if (__BORLANDC__ < 0x0400)
3387 # undef HAVE_DIRENT_H
3388 # undef HAVE_UTIME_H
3389 # endif
3390 #elif (ACC_CC_DMC)
3391 # undef HAVE_DIRENT_H
3392 # undef HAVE_UNISTD_H
3393 # define HAVE_SYS_DIRENT_H 1
3394 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
3395 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
3396 # define HAVE_ALLOCA_H 1
3397 # undef HAVE_DIRENT_H
3398 # undef HAVE_UNISTD_H
3399 #elif (ACC_CC_IBMC && ACC_OS_OS2)
3400 # undef HAVE_DOS_H
3401 # undef HAVE_DIRENT_H
3402 # undef HAVE_UNISTD_H
3403 # undef HAVE_UTIME_H
3404 # undef HAVE_SYS_TIME_H
3405 # define HAVE_SYS_UTIME_H 1
3406 #elif (ACC_CC_CLANG_MSC || ACC_CC_GHS || ACC_CC_INTELC_MSC || ACC_CC_MSC)
3407 # undef HAVE_DIRENT_H
3408 # undef HAVE_UNISTD_H
3409 # undef HAVE_UTIME_H
3410 # undef HAVE_SYS_TIME_H
3411 # define HAVE_SYS_UTIME_H 1
3412 #elif (ACC_CC_LCCWIN32)
3413 # undef HAVE_DIRENT_H
3414 # undef HAVE_DOS_H
3415 # undef HAVE_UNISTD_H
3416 # undef HAVE_SYS_TIME_H
3417 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__MINGW32__)
3418 # undef HAVE_UTIME_H
3419 # define HAVE_SYS_UTIME_H 1
3420 #elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
3421 # define HAVE_ALLOCA_H 1
3422 # undef HAVE_DOS_H
3423 # undef HAVE_SHARE_H
3424 # undef HAVE_SYS_TIME_H
3425 #elif (ACC_CC_NDPC)
3426 # undef HAVE_DIRENT_H
3427 # undef HAVE_DOS_H
3428 # undef HAVE_UNISTD_H
3429 # undef HAVE_UTIME_H
3430 # undef HAVE_SYS_TIME_H
3431 #elif (ACC_CC_PACIFICC)
3432 # undef HAVE_DIRECT_H
3433 # undef HAVE_DIRENT_H
3434 # undef HAVE_FCNTL_H
3435 # undef HAVE_IO_H
3436 # undef HAVE_MALLOC_H
3437 # undef HAVE_MEMORY_H
3438 # undef HAVE_SHARE_H
3439 # undef HAVE_UNISTD_H
3440 # undef HAVE_UTIME_H
3441 # undef HAVE_SYS_STAT_H
3442 # undef HAVE_SYS_TIME_H
3443 # undef HAVE_SYS_TYPES_H
3444 #elif (ACC_OS_WIN32 && ACC_CC_PELLESC)
3445 # undef HAVE_DIRENT_H
3446 # undef HAVE_DOS_H
3447 # undef HAVE_MALLOC_H
3448 # undef HAVE_SHARE_H
3449 # undef HAVE_UNISTD_H
3450 # undef HAVE_UTIME_H
3451 # undef HAVE_SYS_TIME_H
3452 # if (__POCC__ < 280)
3453 # else
3454 # define HAVE_SYS_UTIME_H 1
3455 # endif
3456 #elif (ACC_OS_WIN32 && ACC_CC_PGI) && defined(__MINGW32__)
3457 # undef HAVE_UTIME_H
3458 # define HAVE_SYS_UTIME_H 1
3459 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
3460 #elif (ACC_CC_SYMANTECC)
3461 # undef HAVE_DIRENT_H
3462 # undef HAVE_UNISTD_H
3463 # if (__SC__ < 0x700)
3464 # undef HAVE_UTIME_H
3465 # undef HAVE_SYS_TIME_H
3466 # endif
3467 #elif (ACC_CC_TOPSPEEDC)
3468 # undef HAVE_DIRENT_H
3469 # undef HAVE_UNISTD_H
3470 # undef HAVE_UTIME_H
3471 # undef HAVE_SYS_STAT_H
3472 # undef HAVE_SYS_TIME_H
3473 # undef HAVE_SYS_TYPES_H
3474 #elif (ACC_CC_TURBOC)
3475 # undef HAVE_UNISTD_H
3476 # undef HAVE_SYS_TIME_H
3477 # undef HAVE_SYS_TYPES_H
3478 # if (ACC_OS_WIN32 || ACC_OS_WIN64)
3479 # undef HAVE_DIRENT_H
3480 # endif
3481 # if (__TURBOC__ < 0x0200)
3482 # undef HAVE_SIGNAL_H
3483 # endif
3484 # if (__TURBOC__ < 0x0400)
3485 # undef HAVE_DIRECT_H
3486 # undef HAVE_DIRENT_H
3487 # undef HAVE_MALLOC_H
3488 # undef HAVE_MEMORY_H
3489 # undef HAVE_UTIME_H
3490 # endif
3491 #elif (ACC_CC_WATCOMC)
3492 # undef HAVE_DIRENT_H
3493 # undef HAVE_UTIME_H
3494 # undef HAVE_SYS_TIME_H
3495 # define HAVE_SYS_UTIME_H 1
3496 # if (__WATCOMC__ < 950)
3497 # undef HAVE_UNISTD_H
3498 # endif
3499 #elif (ACC_CC_ZORTECHC)
3500 # undef HAVE_DIRENT_H
3501 # undef HAVE_MEMORY_H
3502 # undef HAVE_UNISTD_H
3503 # undef HAVE_UTIME_H
3504 # undef HAVE_SYS_TIME_H
3505 #endif
3506 #endif
3507 #if (ACC_OS_CONSOLE)
3508 # undef HAVE_DIRENT_H
3509 #endif
3510 #if (ACC_OS_EMBEDDED)
3511 # undef HAVE_DIRENT_H
3512 #endif
3513 #if (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99)
3514 # undef HAVE_DIRENT_H
3515 # undef HAVE_FCNTL_H
3516 # undef HAVE_MALLOC_H
3517 # undef HAVE_UNISTD_H
3518 # undef HAVE_UTIME_H
3519 # undef HAVE_SYS_STAT_H
3520 # undef HAVE_SYS_TIME_H
3521 # undef HAVE_SYS_TYPES_H
3522 #endif
3523 #if (ACC_LIBC_GLIBC >= 0x020100ul)
3524 # define HAVE_STDINT_H 1
3525 #elif (ACC_LIBC_DIETLIBC)
3526 # undef HAVE_STDINT_H
3527 #elif (ACC_LIBC_UCLIBC)
3528 # define HAVE_STDINT_H 1
3529 #elif (ACC_CC_BORLANDC) && (__BORLANDC__ >= 0x560)
3530 # undef HAVE_STDINT_H
3531 #elif (ACC_CC_DMC) && (__DMC__ >= 0x825)
3532 # define HAVE_STDINT_H 1
3533 #endif
3534 #if (HAVE_SYS_TIME_H && HAVE_TIME_H)
3535 # define TIME_WITH_SYS_TIME 1
3536 #endif
3537 #endif
3538 #endif
3539 #if !(ACC_CFG_AUTO_NO_FUNCTIONS)
3540 #if (ACC_LIBC_NAKED)
3541 #elif (ACC_LIBC_FREESTANDING)
3542 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
3543 # define HAVE_LONGJMP 1
3544 # define HAVE_MEMCMP 1
3545 # define HAVE_MEMCPY 1
3546 # define HAVE_MEMMOVE 1
3547 # define HAVE_MEMSET 1
3548 # define HAVE_SETJMP 1
3549 #else
3550 #define HAVE_ACCESS 1
3551 #define HAVE_ALLOCA 1
3552 #define HAVE_ATEXIT 1
3553 #define HAVE_ATOI 1
3554 #define HAVE_ATOL 1
3555 #define HAVE_CHMOD 1
3556 #define HAVE_CHOWN 1
3557 #define HAVE_CTIME 1
3558 #define HAVE_DIFFTIME 1
3559 #define HAVE_FILENO 1
3560 #define HAVE_FSTAT 1
3561 #define HAVE_GETENV 1
3562 #define HAVE_GETTIMEOFDAY 1
3563 #define HAVE_GMTIME 1
3564 #define HAVE_ISATTY 1
3565 #define HAVE_LOCALTIME 1
3566 #define HAVE_LONGJMP 1
3567 #define HAVE_LSTAT 1
3568 #define HAVE_MEMCMP 1
3569 #define HAVE_MEMCPY 1
3570 #define HAVE_MEMMOVE 1
3571 #define HAVE_MEMSET 1
3572 #define HAVE_MKDIR 1
3573 #define HAVE_MKTIME 1
3574 #define HAVE_QSORT 1
3575 #define HAVE_RAISE 1
3576 #define HAVE_RMDIR 1
3577 #define HAVE_SETJMP 1
3578 #define HAVE_SIGNAL 1
3579 #define HAVE_SNPRINTF 1
3580 #define HAVE_STAT 1
3581 #define HAVE_STRCHR 1
3582 #define HAVE_STRDUP 1
3583 #define HAVE_STRERROR 1
3584 #define HAVE_STRFTIME 1
3585 #define HAVE_STRRCHR 1
3586 #define HAVE_STRSTR 1
3587 #define HAVE_TIME 1
3588 #define HAVE_UMASK 1
3589 #define HAVE_UTIME 1
3590 #define HAVE_VSNPRINTF 1
3591 #if (ACC_OS_BEOS || ACC_OS_CYGWIN || ACC_OS_POSIX || ACC_OS_QNX || ACC_OS_VMS)
3592 # define HAVE_STRCASECMP 1
3593 # define HAVE_STRNCASECMP 1
3594 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
3595 # define HAVE_STRCASECMP 1
3596 # define HAVE_STRNCASECMP 1
3597 #else
3598 # define HAVE_STRICMP 1
3599 # define HAVE_STRNICMP 1
3600 #endif
3601 #if (ACC_OS_POSIX)
3602 # if (ACC_OS_POSIX_AIX)
3603 # define HAVE_GETRUSAGE 1
3604 # elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
3605 # undef HAVE_CHOWN
3606 # undef HAVE_LSTAT
3607 # elif (ACC_OS_POSIX_UNICOS)
3608 # undef HAVE_ALLOCA
3609 # undef HAVE_SNPRINTF
3610 # undef HAVE_VSNPRINTF
3611 # endif
3612 # if (ACC_CC_TINYC)
3613 # undef HAVE_ALLOCA
3614 # endif
3615 # if (ACC_LIBC_DIETLIBC || ACC_LIBC_GLIBC || ACC_LIBC_UCLIBC)
3616 # define HAVE_GETRUSAGE 1
3617 # define HAVE_GETPAGESIZE 1
3618 # define HAVE_MMAP 1
3619 # define HAVE_MPROTECT 1
3620 # define HAVE_MUNMAP 1
3621 # endif
3622 #elif (ACC_OS_CYGWIN)
3623 # if (ACC_CC_GNUC < 0x025a00ul)
3624 # undef HAVE_GETTIMEOFDAY
3625 # undef HAVE_LSTAT
3626 # endif
3627 # if (ACC_CC_GNUC < 0x025f00ul)
3628 # undef HAVE_SNPRINTF
3629 # undef HAVE_VSNPRINTF
3630 # endif
3631 #elif (ACC_OS_EMX)
3632 # undef HAVE_CHOWN
3633 # undef HAVE_LSTAT
3634 #elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
3635 # if !defined(__MINT__)
3636 # undef HAVE_SNPRINTF
3637 # undef HAVE_VSNPRINTF
3638 # endif
3639 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
3640 # undef HAVE_ALLOCA
3641 # undef HAVE_ACCESS
3642 # undef HAVE_CHMOD
3643 # undef HAVE_CHOWN
3644 # undef HAVE_FSTAT
3645 # undef HAVE_GETTIMEOFDAY
3646 # undef HAVE_LSTAT
3647 # undef HAVE_SNPRINTF
3648 # undef HAVE_UMASK
3649 # undef HAVE_UTIME
3650 # undef HAVE_VSNPRINTF
3651 #endif
3652 #if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
3653 #undef HAVE_CHOWN
3654 #undef HAVE_GETTIMEOFDAY
3655 #undef HAVE_LSTAT
3656 #undef HAVE_UMASK
3657 #if (ACC_CC_AZTECC)
3658 # undef HAVE_ALLOCA
3659 # undef HAVE_DIFFTIME
3660 # undef HAVE_FSTAT
3661 # undef HAVE_STRDUP
3662 # undef HAVE_SNPRINTF
3663 # undef HAVE_UTIME
3664 # undef HAVE_VSNPRINTF
3665 #elif (ACC_CC_BORLANDC)
3666 # if (__BORLANDC__ < 0x0400)
3667 # undef HAVE_ALLOCA
3668 # undef HAVE_UTIME
3669 # endif
3670 # if ((__BORLANDC__ < 0x0410) && ACC_OS_WIN16)
3671 # undef HAVE_ALLOCA
3672 # endif
3673 # if (__BORLANDC__ < 0x0550)
3674 # undef HAVE_SNPRINTF
3675 # undef HAVE_VSNPRINTF
3676 # endif
3677 #elif (ACC_CC_DMC)
3678 # if (ACC_OS_WIN16)
3679 # undef HAVE_ALLOCA
3680 # endif
3681 # define snprintf _snprintf
3682 # define vsnprintf _vsnprintf
3683 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
3684 # undef HAVE_SNPRINTF
3685 # undef HAVE_VSNPRINTF
3686 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
3687 # undef HAVE_SNPRINTF
3688 # undef HAVE_VSNPRINTF
3689 #elif (ACC_CC_GHS)
3690 # undef HAVE_ALLOCA
3691 # ifndef snprintf
3692 # define snprintf _snprintf
3693 # endif
3694 # ifndef vsnprintf
3695 # define vsnprintf _vsnprintf
3696 # endif
3697 #elif (ACC_CC_IBMC)
3698 # undef HAVE_SNPRINTF
3699 # undef HAVE_VSNPRINTF
3700 #elif (ACC_CC_CLANG_MSC || ACC_CC_INTELC_MSC)
3701 # ifndef snprintf
3702 # define snprintf _snprintf
3703 # endif
3704 # ifndef vsnprintf
3705 # define vsnprintf _vsnprintf
3706 # endif
3707 #elif (ACC_CC_LCCWIN32)
3708 # define utime _utime
3709 #elif (ACC_CC_MSC)
3710 # if (_MSC_VER < 600)
3711 # undef HAVE_STRFTIME
3712 # endif
3713 # if (_MSC_VER < 700)
3714 # undef HAVE_SNPRINTF
3715 # undef HAVE_VSNPRINTF
3716 # elif (_MSC_VER < 1500)
3717 # ifndef snprintf
3718 # define snprintf _snprintf
3719 # endif
3720 # ifndef vsnprintf
3721 # define vsnprintf _vsnprintf
3722 # endif
3723 # elif (_MSC_VER < 1900)
3724 # ifndef snprintf
3725 # define snprintf _snprintf
3726 # endif
3727 # endif
3728 # if ((_MSC_VER < 800) && ACC_OS_WIN16)
3729 # undef HAVE_ALLOCA
3730 # endif
3731 # if (ACC_ARCH_I086) && defined(__cplusplus)
3732 # undef HAVE_LONGJMP
3733 # undef HAVE_SETJMP
3734 # endif
3735 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__MINGW32__)
3736 # if (ACC_CC_GNUC < 0x025f00ul)
3737 # undef HAVE_SNPRINTF
3738 # undef HAVE_VSNPRINTF
3739 # else
3740 # define snprintf _snprintf
3741 # define vsnprintf _vsnprintf
3742 # endif
3743 #elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
3744 # if (__MSL__ < 0x8000ul)
3745 # undef HAVE_CHMOD
3746 # endif
3747 #elif (ACC_CC_NDPC)
3748 # undef HAVE_ALLOCA
3749 # undef HAVE_SNPRINTF
3750 # undef HAVE_STRNICMP
3751 # undef HAVE_UTIME
3752 # undef HAVE_VSNPRINTF
3753 # if defined(__cplusplus)
3754 # undef HAVE_STAT
3755 # endif
3756 #elif (ACC_CC_PACIFICC)
3757 # undef HAVE_ACCESS
3758 # undef HAVE_ALLOCA
3759 # undef HAVE_CHMOD
3760 # undef HAVE_DIFFTIME
3761 # undef HAVE_FSTAT
3762 # undef HAVE_MKTIME
3763 # undef HAVE_RAISE
3764 # undef HAVE_SNPRINTF
3765 # undef HAVE_STRFTIME
3766 # undef HAVE_UTIME
3767 # undef HAVE_VSNPRINTF
3768 #elif (ACC_OS_WIN32 && ACC_CC_PELLESC)
3769 # if (__POCC__ < 280)
3770 # define alloca _alloca
3771 # undef HAVE_UTIME
3772 # endif
3773 #elif (ACC_OS_WIN32 && ACC_CC_PGI) && defined(__MINGW32__)
3774 # define snprintf _snprintf
3775 # define vsnprintf _vsnprintf
3776 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
3777 # undef HAVE_SNPRINTF
3778 # undef HAVE_VSNPRINTF
3779 #elif (ACC_CC_SYMANTECC)
3780 # if (ACC_OS_WIN16 && (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE))
3781 # undef HAVE_ALLOCA
3782 # endif
3783 # if (__SC__ < 0x600)
3784 # undef HAVE_SNPRINTF
3785 # undef HAVE_VSNPRINTF
3786 # else
3787 # define snprintf _snprintf
3788 # define vsnprintf _vsnprintf
3789 # endif
3790 # if (__SC__ < 0x700)
3791 # undef HAVE_DIFFTIME
3792 # undef HAVE_UTIME
3793 # endif
3794 #elif (ACC_CC_TOPSPEEDC)
3795 # undef HAVE_SNPRINTF
3796 # undef HAVE_VSNPRINTF
3797 #elif (ACC_CC_TURBOC)
3798 # undef HAVE_ALLOCA
3799 # undef HAVE_SNPRINTF
3800 # undef HAVE_VSNPRINTF
3801 # if (__TURBOC__ < 0x0200)
3802 # undef HAVE_RAISE
3803 # undef HAVE_SIGNAL
3804 # endif
3805 # if (__TURBOC__ < 0x0295)
3806 # undef HAVE_MKTIME
3807 # undef HAVE_STRFTIME
3808 # endif
3809 # if (__TURBOC__ < 0x0400)
3810 # undef HAVE_UTIME
3811 # endif
3812 #elif (ACC_CC_WATCOMC)
3813 # if (__WATCOMC__ < 1100)
3814 # undef HAVE_SNPRINTF
3815 # undef HAVE_VSNPRINTF
3816 # elif (__WATCOMC__ < 1200)
3817 # define snprintf _snprintf
3818 # define vsnprintf _vsnprintf
3819 # endif
3820 #elif (ACC_CC_ZORTECHC)
3821 # if (ACC_OS_WIN16 && (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE))
3822 # undef HAVE_ALLOCA
3823 # endif
3824 # undef HAVE_DIFFTIME
3825 # undef HAVE_SNPRINTF
3826 # undef HAVE_UTIME
3827 # undef HAVE_VSNPRINTF
3828 #endif
3829 #endif
3830 #if (ACC_OS_CONSOLE)
3831 # undef HAVE_ACCESS
3832 # undef HAVE_CHMOD
3833 # undef HAVE_CHOWN
3834 # undef HAVE_GETTIMEOFDAY
3835 # undef HAVE_LSTAT
3836 # undef HAVE_TIME
3837 # undef HAVE_UMASK
3838 # undef HAVE_UTIME
3839 #endif
3840 #if (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99)
3841 # undef HAVE_ACCESS
3842 # undef HAVE_CHMOD
3843 # undef HAVE_CHOWN
3844 # undef HAVE_FILENO
3845 # undef HAVE_FSTAT
3846 # undef HAVE_GETTIMEOFDAY
3847 # undef HAVE_LSTAT
3848 # undef HAVE_STAT
3849 # undef HAVE_UMASK
3850 # undef HAVE_UTIME
3851 # if 1
3852 # undef HAVE_ALLOCA
3853 # undef HAVE_ISATTY
3854 # undef HAVE_MKDIR
3855 # undef HAVE_RMDIR
3856 # undef HAVE_STRDUP
3857 # undef HAVE_STRICMP
3858 # undef HAVE_STRNICMP
3859 # endif
3860 #endif
3861 #endif
3862 #endif
3863 #if !(ACC_CFG_AUTO_NO_SIZES)
3864 #if !defined(SIZEOF_SHORT) && defined(ACC_SIZEOF_SHORT)
3865 # define SIZEOF_SHORT ACC_SIZEOF_SHORT
3866 #endif
3867 #if !defined(SIZEOF_INT) && defined(ACC_SIZEOF_INT)
3868 # define SIZEOF_INT ACC_SIZEOF_INT
3869 #endif
3870 #if !defined(SIZEOF_LONG) && defined(ACC_SIZEOF_LONG)
3871 # define SIZEOF_LONG ACC_SIZEOF_LONG
3872 #endif
3873 #if !defined(SIZEOF_LONG_LONG) && defined(ACC_SIZEOF_LONG_LONG)
3874 # define SIZEOF_LONG_LONG ACC_SIZEOF_LONG_LONG
3875 #endif
3876 #if !defined(SIZEOF___INT32) && defined(ACC_SIZEOF___INT32)
3877 # define SIZEOF___INT32 ACC_SIZEOF___INT32
3878 #endif
3879 #if !defined(SIZEOF___INT64) && defined(ACC_SIZEOF___INT64)
3880 # define SIZEOF___INT64 ACC_SIZEOF___INT64
3881 #endif
3882 #if !defined(SIZEOF_VOID_P) && defined(ACC_SIZEOF_VOID_P)
3883 # define SIZEOF_VOID_P ACC_SIZEOF_VOID_P
3884 #endif
3885 #if !defined(SIZEOF_SIZE_T) && defined(ACC_SIZEOF_SIZE_T)
3886 # define SIZEOF_SIZE_T ACC_SIZEOF_SIZE_T
3887 #endif
3888 #if !defined(SIZEOF_PTRDIFF_T) && defined(ACC_SIZEOF_PTRDIFF_T)
3889 # define SIZEOF_PTRDIFF_T ACC_SIZEOF_PTRDIFF_T
3890 #endif
3891 #endif
3892 #if (HAVE_SIGNAL) && !defined(RETSIGTYPE)
3893 # define RETSIGTYPE void
3894 #endif
3895 #endif
3896 #if !(ACC_LANG_ASSEMBLER)
3897 #if !(ACC_CFG_SKIP_ACC_TYPES)
3898 #if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
3899 # define acc_signo_t acc_int32e_t
3900 #endif
3901 #if !defined(acc_signo_t)
3902 # define acc_signo_t int
3903 #endif
3904 #if defined(__cplusplus)
3905 extern "C" {
3906 #endif
3907 #if (ACC_BROKEN_CDECL_ALT_SYNTAX)
3908 typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(acc_signo_t);
3909 #elif defined(RETSIGTYPE)
3910 typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
3911 #else
3912 typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
3913 #endif
3914 #if defined(__cplusplus)
3915 }
3916 #endif
3917 # if !(ACC_CFG_SKIP_ACC_UA)
3918 #if !defined(__acc_ua_volatile)
3919 # define __acc_ua_volatile volatile
3920 #endif
3921 #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
3922 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
3923 #elif (ACC_CC_INTELC) && defined(_WIN32)
3924 #elif (ACC_CC_INTELC && (__INTEL_COMPILER < 700))
3925 #elif (ACC_CC_LLVM)
3926 #elif (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE)
3927 #if !defined(__acc_ua16_t) && (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
3928  typedef struct { __acc_ua_volatile acc_uint16e_t v __attribute__((__packed__)); } __acc_ua16_t;
3929 # define __acc_ua16_t __acc_ua16_t
3930 #endif
3931 #if !defined(__acc_ua32_t) && (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
3932  typedef struct { __acc_ua_volatile acc_uint32e_t v __attribute__((__packed__)); } __acc_ua32_t;
3933 # define __acc_ua32_t __acc_ua32_t
3934 #endif
3935 #if !defined(__acc_ua64_t) && (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
3936  typedef struct { __acc_ua_volatile acc_uint64l_t v __attribute__((__packed__)); } __acc_ua64_t;
3937 # define __acc_ua64_t __acc_ua64_t
3938 #endif
3939 #endif
3940 #if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
3941 #if 0
3942 #define ACC_UA_GET16(p) (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
3943 #define ACC_UA_SET16(p,v) ((* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint16e_t) (v))
3944 #else
3945 #define ACC_UA_GET16(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint16e_t*, __acc_ua_volatile const void*, p))
3946 #define ACC_UA_SET16(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint16e_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint16e_t, v))
3947 #endif
3948 #if (ACC_ABI_BIG_ENDIAN)
3949 # define ACC_UA_GET_BE16(p) ACC_UA_GET16(p)
3950 # define ACC_UA_SET_BE16(p,v) ACC_UA_SET16(p,v)
3951 #elif (ACC_ABI_LITTLE_ENDIAN)
3952 # define ACC_UA_GET_LE16(p) ACC_UA_GET16(p)
3953 # define ACC_UA_SET_LE16(p,v) ACC_UA_SET16(p,v)
3954 #endif
3955 #if (__acc_HAVE_forceinline)
3956 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
3957 #if !defined(ACC_UA_GET_LE16)
3958 __acc_static_forceinline
3959 #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
3960 __attribute__((__unused__))
3961 #endif
3962 unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
3963  __acc_ua_volatile const acc_uint16e_t* p = ACC_STATIC_CAST(__acc_ua_volatile const acc_uint16e_t*, pp);
3964  unsigned long v;
3965  __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
3966  return v;
3967 }
3968 #define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p)
3969 #endif
3970 #if !defined(ACC_UA_SET_LE16)
3971 __acc_static_forceinline
3972 #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
3973 __attribute__((__unused__))
3974 #endif
3975 void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
3976  __acc_ua_volatile acc_uint16e_t* p = ACC_STATIC_CAST(__acc_ua_volatile acc_uint16e_t*, pp);
3977  __asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
3978 }
3979 #define ACC_UA_SET_LE16(p,v) __ACC_UA_SET_LE16(p,v)
3980 #endif
3981 #endif
3982 #endif
3983 #if !defined(ACC_UA_COPY16)
3984 # define ACC_UA_COPY16(d,s) ACC_UA_SET16(d, ACC_UA_GET16(s))
3985 #endif
3986 #endif
3987 #if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
3988 #if 0
3989 #define ACC_UA_GET32(p) (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
3990 #define ACC_UA_SET32(p,v) ((* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint32e_t) (v))
3991 #else
3992 #define ACC_UA_GET32(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint32e_t*, __acc_ua_volatile const void*, p))
3993 #define ACC_UA_SET32(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint32e_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint32e_t, v))
3994 #endif
3995 #if (ACC_ABI_BIG_ENDIAN)
3996 # define ACC_UA_GET_BE32(p) ACC_UA_GET32(p)
3997 # define ACC_UA_SET_BE32(p,v) ACC_UA_SET32(p,v)
3998 #elif (ACC_ABI_LITTLE_ENDIAN)
3999 # define ACC_UA_GET_LE32(p) ACC_UA_GET32(p)
4000 # define ACC_UA_SET_LE32(p,v) ACC_UA_SET32(p,v)
4001 #endif
4002 #if (__acc_HAVE_forceinline)
4003 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
4004 #if !defined(ACC_UA_GET_LE32)
4005 __acc_static_forceinline
4006 #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
4007 __attribute__((__unused__))
4008 #endif
4009 unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
4010  __acc_ua_volatile const acc_uint32e_t* p = ACC_STATIC_CAST(__acc_ua_volatile const acc_uint32e_t*, pp);
4011  unsigned long v;
4012  __asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
4013  return v;
4014 }
4015 #define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p)
4016 #endif
4017 #if !defined(ACC_UA_SET_LE32)
4018 __acc_static_forceinline
4019 #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
4020 __attribute__((__unused__))
4021 #endif
4022 void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
4023  __acc_ua_volatile acc_uint32e_t* p = ACC_STATIC_CAST(__acc_ua_volatile acc_uint32e_t*, pp);
4024  __asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
4025 }
4026 #define ACC_UA_SET_LE32(p,v) __ACC_UA_SET_LE32(p,v)
4027 #endif
4028 #endif
4029 #endif
4030 #if !defined(ACC_UA_COPY32)
4031 # define ACC_UA_COPY32(d,s) ACC_UA_SET32(d, ACC_UA_GET32(s))
4032 #endif
4033 #endif
4034 #if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
4035 #if 0
4036 #define ACC_UA_GET64(p) (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
4037 #define ACC_UA_SET64(p,v) ((* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p)) = (acc_uint64l_t) (v))
4038 #else
4039 #define ACC_UA_GET64(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint64l_t*, __acc_ua_volatile const void*, p))
4040 #define ACC_UA_SET64(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint64l_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint64l_t, v))
4041 #endif
4042 #if (ACC_ABI_BIG_ENDIAN)
4043 # define ACC_UA_GET_BE64(p) ACC_UA_GET64(p)
4044 # define ACC_UA_SET_BE64(p,v) ACC_UA_SET64(p,v)
4045 #elif (ACC_ABI_LITTLE_ENDIAN)
4046 # define ACC_UA_GET_LE64(p) ACC_UA_GET64(p)
4047 # define ACC_UA_SET_LE64(p,v) ACC_UA_SET64(p,v)
4048 #endif
4049 #if !defined(ACC_UA_COPY64)
4050 # define ACC_UA_COPY64(d,s) ACC_UA_SET64(d, ACC_UA_GET64(s))
4051 #endif
4052 #endif
4053 # endif
4054 #endif
4055 #endif
4056 #endif
4057 #if defined(ACC_WANT_ACC_TYPE_H)
4058 # undef ACC_WANT_ACC_TYPE_H
4059 # if (ACC_CFG_SKIP_ACC_TYPES)
4060 # error "ACC_WANT_ACC_TYPE_H with ACC_CFG_SKIP_ACC_TYPES"
4061 # endif
4062 #if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
4063 # error "missing defines for sizes"
4064 #endif
4065 #if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
4066 # error "missing defines for sizes"
4067 #endif
4068 #define ACC_TYPEOF_CHAR 1u
4069 #define ACC_TYPEOF_SHORT 2u
4070 #define ACC_TYPEOF_INT 3u
4071 #define ACC_TYPEOF_LONG 4u
4072 #define ACC_TYPEOF_LONG_LONG 5u
4073 #define ACC_TYPEOF___INT8 17u
4074 #define ACC_TYPEOF___INT16 18u
4075 #define ACC_TYPEOF___INT32 19u
4076 #define ACC_TYPEOF___INT64 20u
4077 #define ACC_TYPEOF___INT128 21u
4078 #define ACC_TYPEOF___INT256 22u
4079 #define ACC_TYPEOF___MODE_QI 33u
4080 #define ACC_TYPEOF___MODE_HI 34u
4081 #define ACC_TYPEOF___MODE_SI 35u
4082 #define ACC_TYPEOF___MODE_DI 36u
4083 #define ACC_TYPEOF___MODE_TI 37u
4084 #define ACC_TYPEOF_CHAR_P 129u
4085 #if !defined(acc_llong_t)
4086 #if (ACC_SIZEOF_LONG_LONG+0 > 0)
4087 # if !(ACC_LANG_ASSEMBLER)
4088  __acc_gnuc_extension__ typedef long long acc_llong_t__;
4089  __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t__;
4090 # endif
4091 # define acc_llong_t acc_llong_t__
4092 # define acc_ullong_t acc_ullong_t__
4093 #endif
4094 #endif
4095 #if !defined(acc_int16e_t)
4096 #if (ACC_SIZEOF_LONG == 2)
4097 # define acc_int16e_t long
4098 # define acc_uint16e_t unsigned long
4099 # define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_LONG
4100 #elif (ACC_SIZEOF_INT == 2)
4101 # define acc_int16e_t int
4102 # define acc_uint16e_t unsigned int
4103 # define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_INT
4104 #elif (ACC_SIZEOF_SHORT == 2)
4105 # define acc_int16e_t short int
4106 # define acc_uint16e_t unsigned short int
4107 # define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_SHORT
4108 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM)
4109 # if !(ACC_LANG_ASSEMBLER)
4110  typedef int acc_int16e_hi_t__ __attribute__((__mode__(__HI__)));
4111  typedef unsigned int acc_uint16e_hi_t__ __attribute__((__mode__(__HI__)));
4112 # endif
4113 # define acc_int16e_t acc_int16e_hi_t__
4114 # define acc_uint16e_t acc_uint16e_hi_t__
4115 # define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF___MODE_HI
4116 #elif (ACC_SIZEOF___INT16 == 2)
4117 # define acc_int16e_t __int16
4118 # define acc_uint16e_t unsigned __int16
4119 # define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF___INT16
4120 #else
4121 #endif
4122 #endif
4123 #if defined(acc_int16e_t)
4124 # define ACC_SIZEOF_ACC_INT16E_T 2
4125  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == 2)
4126  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == ACC_SIZEOF_ACC_INT16E_T)
4127 #endif
4128 #if !defined(acc_int32e_t)
4129 #if (ACC_SIZEOF_LONG == 4)
4130 # define acc_int32e_t long int
4131 # define acc_uint32e_t unsigned long int
4132 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG
4133 #elif (ACC_SIZEOF_INT == 4)
4134 # define acc_int32e_t int
4135 # define acc_uint32e_t unsigned int
4136 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_INT
4137 #elif (ACC_SIZEOF_SHORT == 4)
4138 # define acc_int32e_t short int
4139 # define acc_uint32e_t unsigned short int
4140 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_SHORT
4141 #elif (ACC_SIZEOF_LONG_LONG == 4)
4142 # define acc_int32e_t acc_llong_t
4143 # define acc_uint32e_t acc_ullong_t
4144 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG_LONG
4145 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
4146 # if !(ACC_LANG_ASSEMBLER)
4147  typedef int acc_int32e_si_t__ __attribute__((__mode__(__SI__)));
4148  typedef unsigned int acc_uint32e_si_t__ __attribute__((__mode__(__SI__)));
4149 # endif
4150 # define acc_int32e_t acc_int32e_si_t__
4151 # define acc_uint32e_t acc_uint32e_si_t__
4152 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___MODE_SI
4153 #elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
4154 # if !(ACC_LANG_ASSEMBLER)
4155  typedef int acc_int32e_si_t__ __attribute__((__mode__(__SI__)));
4156  typedef unsigned int acc_uint32e_si_t__ __attribute__((__mode__(__SI__)));
4157 # endif
4158 # define acc_int32e_t acc_int32e_si_t__
4159 # define acc_uint32e_t acc_uint32e_si_t__
4160 # define ACC_INT32_C(c) (c##LL)
4161 # define ACC_UINT32_C(c) (c##ULL)
4162 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___MODE_SI
4163 #elif (ACC_SIZEOF___INT32 == 4)
4164 # define acc_int32e_t __int32
4165 # define acc_uint32e_t unsigned __int32
4166 # define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___INT32
4167 #else
4168 #endif
4169 #endif
4170 #if defined(acc_int32e_t)
4171 # define ACC_SIZEOF_ACC_INT32E_T 4
4172  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32e_t) == 4)
4173  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32e_t) == ACC_SIZEOF_ACC_INT32E_T)
4174 #endif
4175 #if !defined(acc_int64e_t)
4176 #if (ACC_SIZEOF___INT64 == 8)
4177 # if (ACC_CC_BORLANDC) && !(ACC_CFG_TYPE_PREFER___INT64)
4178 # define ACC_CFG_TYPE_PREFER___INT64 1
4179 # endif
4180 #endif
4181 #if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
4182 # define acc_int64e_t int
4183 # define acc_uint64e_t unsigned int
4184 # define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_INT
4185 #elif (ACC_SIZEOF_LONG == 8)
4186 # define acc_int64e_t long int
4187 # define acc_uint64e_t unsigned long int
4188 # define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG
4189 #elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_TYPE_PREFER___INT64)
4190 # define acc_int64e_t acc_llong_t
4191 # define acc_uint64e_t acc_ullong_t
4192 # define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG_LONG
4193 # if (ACC_CC_BORLANDC)
4194 # define ACC_INT64_C(c) ((c) + 0ll)
4195 # define ACC_UINT64_C(c) ((c) + 0ull)
4196 # elif 0
4197 # define ACC_INT64_C(c) (__acc_gnuc_extension__ (c##LL))
4198 # define ACC_UINT64_C(c) (__acc_gnuc_extension__ (c##ULL))
4199 # else
4200 # define ACC_INT64_C(c) (c##LL)
4201 # define ACC_UINT64_C(c) (c##ULL)
4202 # endif
4203 #elif (ACC_SIZEOF___INT64 == 8)
4204 # define acc_int64e_t __int64
4205 # define acc_uint64e_t unsigned __int64
4206 # define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF___INT64
4207 # if (ACC_CC_BORLANDC)
4208 # define ACC_INT64_C(c) ((c) + 0i64)
4209 # define ACC_UINT64_C(c) ((c) + 0ui64)
4210 # else
4211 # define ACC_INT64_C(c) (c##i64)
4212 # define ACC_UINT64_C(c) (c##ui64)
4213 # endif
4214 #else
4215 #endif
4216 #endif
4217 #if defined(acc_int64e_t)
4218 # define ACC_SIZEOF_ACC_INT64E_T 8
4219  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64e_t) == 8)
4220  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64e_t) == ACC_SIZEOF_ACC_INT64E_T)
4221 #endif
4222 #if !defined(acc_int32l_t)
4223 #if defined(acc_int32e_t)
4224 # define acc_int32l_t acc_int32e_t
4225 # define acc_uint32l_t acc_uint32e_t
4226 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32E_T
4227 # define ACC_TYPEOF_ACC_INT32L_T ACC_TYPEOF_ACC_INT32E_T
4228 #elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
4229 # define acc_int32l_t int
4230 # define acc_uint32l_t unsigned int
4231 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_INT
4232 # define ACC_TYPEOF_ACC_INT32L_T ACC_SIZEOF_INT
4233 #elif (ACC_SIZEOF_LONG >= 4)
4234 # define acc_int32l_t long int
4235 # define acc_uint32l_t unsigned long int
4236 # define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_LONG
4237 # define ACC_TYPEOF_ACC_INT32L_T ACC_SIZEOF_LONG
4238 #else
4239 # error "acc_int32l_t"
4240 #endif
4241 #endif
4242 #if 1
4243  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32l_t) >= 4)
4244  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32l_t) == ACC_SIZEOF_ACC_INT32L_T)
4245 #endif
4246 #if !defined(acc_int64l_t)
4247 #if defined(acc_int64e_t)
4248 # define acc_int64l_t acc_int64e_t
4249 # define acc_uint64l_t acc_uint64e_t
4250 # define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64E_T
4251 # define ACC_TYPEOF_ACC_INT64L_T ACC_TYPEOF_ACC_INT64E_T
4252 #else
4253 #endif
4254 #endif
4255 #if defined(acc_int64l_t)
4256  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64l_t) >= 8)
4257  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64l_t) == ACC_SIZEOF_ACC_INT64L_T)
4258 #endif
4259 #if !defined(acc_int32f_t)
4260 #if (ACC_SIZEOF_SIZE_T >= 8)
4261 # define acc_int32f_t acc_int64l_t
4262 # define acc_uint32f_t acc_uint64l_t
4263 # define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT64L_T
4264 # define ACC_TYPEOF_ACC_INT32F_T ACC_TYPEOF_ACC_INT64L_T
4265 #else
4266 # define acc_int32f_t acc_int32l_t
4267 # define acc_uint32f_t acc_uint32l_t
4268 # define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32L_T
4269 # define ACC_TYPEOF_ACC_INT32F_T ACC_TYPEOF_ACC_INT32L_T
4270 #endif
4271 #endif
4272 #if 1
4273  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32f_t) >= 4)
4274  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32f_t) == ACC_SIZEOF_ACC_INT32F_T)
4275 #endif
4276 #if !defined(acc_int64f_t)
4277 #if defined(acc_int64l_t)
4278 # define acc_int64f_t acc_int64l_t
4279 # define acc_uint64f_t acc_uint64l_t
4280 # define ACC_SIZEOF_ACC_INT64F_T ACC_SIZEOF_ACC_INT64L_T
4281 # define ACC_TYPEOF_ACC_INT64F_T ACC_TYPEOF_ACC_INT64L_T
4282 #else
4283 #endif
4284 #endif
4285 #if defined(acc_int64f_t)
4286  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64f_t) >= 8)
4287  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64f_t) == ACC_SIZEOF_ACC_INT64F_T)
4288 #endif
4289 #if !defined(acc_intptr_t)
4290 #if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
4291 # define __ACC_INTPTR_T_IS_POINTER 1
4292 # if !(ACC_LANG_ASSEMBLER)
4293  typedef char * acc_intptr_t;
4294  typedef char * acc_uintptr_t;
4295 # endif
4296 # define acc_intptr_t acc_intptr_t
4297 # define acc_uintptr_t acc_uintptr_t
4298 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_VOID_P
4299 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_CHAR_P
4300 #elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
4301 # if !(ACC_LANG_ASSEMBLER)
4302  typedef __w64 int acc_intptr_t;
4303  typedef __w64 unsigned int acc_uintptr_t;
4304 # endif
4305 # define acc_intptr_t acc_intptr_t
4306 # define acc_uintptr_t acc_uintptr_t
4307 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
4308 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_INT
4309 #elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
4310 # define acc_intptr_t short
4311 # define acc_uintptr_t unsigned short
4312 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_SHORT
4313 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_SHORT
4314 #elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
4315 # define acc_intptr_t int
4316 # define acc_uintptr_t unsigned int
4317 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
4318 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_INT
4319 #elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
4320 # define acc_intptr_t long
4321 # define acc_uintptr_t unsigned long
4322 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_LONG
4323 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_LONG
4324 #elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
4325 # define acc_intptr_t acc_int64l_t
4326 # define acc_uintptr_t acc_uint64l_t
4327 # define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INT64L_T
4328 # define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_ACC_INT64L_T
4329 #else
4330 # error "acc_intptr_t"
4331 #endif
4332 #endif
4333 #if 1
4334  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_intptr_t) >= sizeof(void *))
4335  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_intptr_t) == sizeof(acc_uintptr_t))
4336 #endif
4337 #if !defined(acc_word_t)
4338 #if defined(ACC_WORDSIZE) && (ACC_WORDSIZE+0 > 0)
4339 #if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !(__ACC_INTPTR_T_IS_POINTER)
4340 # define acc_word_t acc_uintptr_t
4341 # define acc_sword_t acc_intptr_t
4342 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
4343 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_ACC_INTPTR_T
4344 #elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
4345 # define acc_word_t unsigned long
4346 # define acc_sword_t long
4347 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
4348 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_LONG
4349 #elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
4350 # define acc_word_t unsigned int
4351 # define acc_sword_t int
4352 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
4353 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_INT
4354 #elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
4355 # define acc_word_t unsigned short
4356 # define acc_sword_t short
4357 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
4358 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_SHORT
4359 #elif (ACC_WORDSIZE == 1)
4360 # define acc_word_t unsigned char
4361 # define acc_sword_t signed char
4362 # define ACC_SIZEOF_ACC_WORD_T 1
4363 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_CHAR
4364 #elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
4365 # define acc_word_t acc_uint64l_t
4366 # define acc_sword_t acc_int64l_t
4367 # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
4368 # define ACC_TYPEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
4369 #elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
4370 #if 0
4371 # if !(ACC_LANG_ASSEMBLER)
4372  typedef unsigned acc_word_t __attribute__((__mode__(__V16QI__)));
4373  typedef int acc_sword_t __attribute__((__mode__(__V16QI__)));
4374 # endif
4375 # define acc_word_t acc_word_t
4376 # define acc_sword_t acc_sword_t
4377 # define ACC_SIZEOF_ACC_WORD_T 16
4378 # define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF___MODE_V16QI
4379 #endif
4380 #else
4381 # error "acc_word_t"
4382 #endif
4383 #endif
4384 #endif
4385 #if 1 && defined(acc_word_t)
4386  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_word_t) == ACC_WORDSIZE)
4387  ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_sword_t) == ACC_WORDSIZE)
4388 #endif
4389 #if 1
4390 #define acc_int8_t signed char
4391 #define acc_uint8_t unsigned char
4392 #define ACC_SIZEOF_ACC_INT8_T 1
4393 #define ACC_TYPEOF_ACC_INT8_T ACC_TYPEOF_CHAR
4394 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int8_t) == 1)
4395 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int8_t) == sizeof(acc_uint8_t))
4396 #endif
4397 #if defined(acc_int16e_t)
4398 #define acc_int16_t acc_int16e_t
4399 #define acc_uint16_t acc_uint16e_t
4400 #define ACC_SIZEOF_ACC_INT16_T ACC_SIZEOF_ACC_INT16E_T
4401 #define ACC_TYPEOF_ACC_INT16_T ACC_TYPEOF_ACC_INT16E_T
4402 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16_t) == 2)
4403 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16_t) == sizeof(acc_uint16_t))
4404 #endif
4405 #if defined(acc_int32e_t)
4406 #define acc_int32_t acc_int32e_t
4407 #define acc_uint32_t acc_uint32e_t
4408 #define ACC_SIZEOF_ACC_INT32_T ACC_SIZEOF_ACC_INT32E_T
4409 #define ACC_TYPEOF_ACC_INT32_T ACC_TYPEOF_ACC_INT32E_T
4410 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32_t) == 4)
4411 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32_t) == sizeof(acc_uint32_t))
4412 #endif
4413 #if defined(acc_int64e_t)
4414 #define acc_int64_t acc_int64e_t
4415 #define acc_uint64_t acc_uint64e_t
4416 #define ACC_SIZEOF_ACC_INT64_T ACC_SIZEOF_ACC_INT64E_T
4417 #define ACC_TYPEOF_ACC_INT64_T ACC_TYPEOF_ACC_INT64E_T
4418 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64_t) == 8)
4419 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64_t) == sizeof(acc_uint64_t))
4420 #endif
4421 #if 1
4422 #define acc_int_least32_t acc_int32l_t
4423 #define acc_uint_least32_t acc_uint32l_t
4424 #define ACC_SIZEOF_ACC_INT_LEAST32_T ACC_SIZEOF_ACC_INT32L_T
4425 #define ACC_TYPEOF_ACC_INT_LEAST32_T ACC_TYPEOF_ACC_INT32L_T
4426 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least32_t) >= 4)
4427 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least32_t) == sizeof(acc_uint_least32_t))
4428 #endif
4429 #if defined(acc_int64l_t)
4430 #define acc_int_least64_t acc_int64l_t
4431 #define acc_uint_least64_t acc_uint64l_t
4432 #define ACC_SIZEOF_ACC_INT_LEAST64_T ACC_SIZEOF_ACC_INT64L_T
4433 #define ACC_TYPEOF_ACC_INT_LEAST64_T ACC_TYPEOF_ACC_INT64L_T
4434 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least64_t) >= 8)
4435 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least64_t) == sizeof(acc_uint_least64_t))
4436 #endif
4437 #if 1
4438 #define acc_int_fast32_t acc_int32f_t
4439 #define acc_uint_fast32_t acc_uint32f_t
4440 #define ACC_SIZEOF_ACC_INT_FAST32_T ACC_SIZEOF_ACC_INT32F_T
4441 #define ACC_TYPEOF_ACC_INT_FAST32_T ACC_TYPEOF_ACC_INT32F_T
4442 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast32_t) >= 4)
4443 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast32_t) == sizeof(acc_uint_fast32_t))
4444 #endif
4445 #if defined(acc_int64f_t)
4446 #define acc_int_fast64_t acc_int64f_t
4447 #define acc_uint_fast64_t acc_uint64f_t
4448 #define ACC_SIZEOF_ACC_INT_FAST64_T ACC_SIZEOF_ACC_INT64F_T
4449 #define ACC_TYPEOF_ACC_INT_FAST64_T ACC_TYPEOF_ACC_INT64F_T
4450 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast64_t) >= 8)
4451 ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast64_t) == sizeof(acc_uint_fast64_t))
4452 #endif
4453 #if !defined(ACC_INT16_C)
4454 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
4455 # define ACC_INT16_C(c) ((c) + 0)
4456 # define ACC_UINT16_C(c) ((c) + 0U)
4457 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
4458 # define ACC_INT16_C(c) ((c) + 0L)
4459 # define ACC_UINT16_C(c) ((c) + 0UL)
4460 # elif (ACC_SIZEOF_INT >= 2)
4461 # define ACC_INT16_C(c) (c)
4462 # define ACC_UINT16_C(c) (c##U)
4463 # elif (ACC_SIZEOF_LONG >= 2)
4464 # define ACC_INT16_C(c) (c##L)
4465 # define ACC_UINT16_C(c) (c##UL)
4466 # else
4467 # error "ACC_INT16_C"
4468 # endif
4469 #endif
4470 #if !defined(ACC_INT32_C)
4471 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
4472 # define ACC_INT32_C(c) ((c) + 0)
4473 # define ACC_UINT32_C(c) ((c) + 0U)
4474 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
4475 # define ACC_INT32_C(c) ((c) + 0L)
4476 # define ACC_UINT32_C(c) ((c) + 0UL)
4477 # elif (ACC_SIZEOF_INT >= 4)
4478 # define ACC_INT32_C(c) (c)
4479 # define ACC_UINT32_C(c) (c##U)
4480 # elif (ACC_SIZEOF_LONG >= 4)
4481 # define ACC_INT32_C(c) (c##L)
4482 # define ACC_UINT32_C(c) (c##UL)
4483 # elif (ACC_SIZEOF_LONG_LONG >= 4)
4484 # define ACC_INT32_C(c) (c##LL)
4485 # define ACC_UINT32_C(c) (c##ULL)
4486 # else
4487 # error "ACC_INT32_C"
4488 # endif
4489 #endif
4490 #if !defined(ACC_INT64_C) && defined(acc_int64l_t)
4491 # if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
4492 # define ACC_INT64_C(c) ((c) + 0)
4493 # define ACC_UINT64_C(c) ((c) + 0U)
4494 # elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
4495 # define ACC_INT64_C(c) ((c) + 0L)
4496 # define ACC_UINT64_C(c) ((c) + 0UL)
4497 # elif (ACC_SIZEOF_INT >= 8)
4498 # define ACC_INT64_C(c) (c)
4499 # define ACC_UINT64_C(c) (c##U)
4500 # elif (ACC_SIZEOF_LONG >= 8)
4501 # define ACC_INT64_C(c) (c##L)
4502 # define ACC_UINT64_C(c) (c##UL)
4503 # else
4504 # error "ACC_INT64_C"
4505 # endif
4506 #endif
4507 #if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
4508 # define acc_signo_t acc_int32e_t
4509 #endif
4510 #if !defined(acc_signo_t)
4511 # define acc_signo_t int
4512 #endif
4513 #if defined(__cplusplus)
4514 extern "C" {
4515 #endif
4516 #if (ACC_BROKEN_CDECL_ALT_SYNTAX)
4517 typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(acc_signo_t);
4518 #elif defined(RETSIGTYPE)
4519 typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
4520 #else
4521 typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
4522 #endif
4523 #if defined(__cplusplus)
4524 }
4525 #endif
4526 # if !(ACC_CFG_SKIP_ACC_UA)
4527 #if !defined(__acc_ua_volatile)
4528 # define __acc_ua_volatile volatile
4529 #endif
4530 #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
4531 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
4532 #elif (ACC_CC_INTELC) && defined(_WIN32)
4533 #elif (ACC_CC_INTELC && (__INTEL_COMPILER < 700))
4534 #elif (ACC_CC_LLVM)
4535 #elif (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE)
4536 #if !defined(__acc_ua16_t) && (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
4537  typedef struct { __acc_ua_volatile acc_uint16e_t v __attribute__((__packed__)); } __acc_ua16_t;
4538 # define __acc_ua16_t __acc_ua16_t
4539 #endif
4540 #if !defined(__acc_ua32_t) && (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
4541  typedef struct { __acc_ua_volatile acc_uint32e_t v __attribute__((__packed__)); } __acc_ua32_t;
4542 # define __acc_ua32_t __acc_ua32_t
4543 #endif
4544 #if !defined(__acc_ua64_t) && (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
4545  typedef struct { __acc_ua_volatile acc_uint64l_t v __attribute__((__packed__)); } __acc_ua64_t;
4546 # define __acc_ua64_t __acc_ua64_t
4547 #endif
4548 #endif
4549 #if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
4550 #if 0
4551 #define ACC_UA_GET16(p) (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
4552 #define ACC_UA_SET16(p,v) ((* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint16e_t) (v))
4553 #else
4554 #define ACC_UA_GET16(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint16e_t*, __acc_ua_volatile const void*, p))
4555 #define ACC_UA_SET16(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint16e_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint16e_t, v))
4556 #endif
4557 #if (ACC_ABI_BIG_ENDIAN)
4558 # define ACC_UA_GET_BE16(p) ACC_UA_GET16(p)
4559 # define ACC_UA_SET_BE16(p,v) ACC_UA_SET16(p,v)
4560 #elif (ACC_ABI_LITTLE_ENDIAN)
4561 # define ACC_UA_GET_LE16(p) ACC_UA_GET16(p)
4562 # define ACC_UA_SET_LE16(p,v) ACC_UA_SET16(p,v)
4563 #endif
4564 #if (__acc_HAVE_forceinline)
4565 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
4566 #if !defined(ACC_UA_GET_LE16)
4567 __acc_static_forceinline
4568 #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
4569 __attribute__((__unused__))
4570 #endif
4571 unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
4572  __acc_ua_volatile const acc_uint16e_t* p = ACC_STATIC_CAST(__acc_ua_volatile const acc_uint16e_t*, pp);
4573  unsigned long v;
4574  __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
4575  return v;
4576 }
4577 #define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p)
4578 #endif
4579 #if !defined(ACC_UA_SET_LE16)
4580 __acc_static_forceinline
4581 #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
4582 __attribute__((__unused__))
4583 #endif
4584 void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
4585  __acc_ua_volatile acc_uint16e_t* p = ACC_STATIC_CAST(__acc_ua_volatile acc_uint16e_t*, pp);
4586  __asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
4587 }
4588 #define ACC_UA_SET_LE16(p,v) __ACC_UA_SET_LE16(p,v)
4589 #endif
4590 #endif
4591 #endif
4592 #if !defined(ACC_UA_COPY16)
4593 # define ACC_UA_COPY16(d,s) ACC_UA_SET16(d, ACC_UA_GET16(s))
4594 #endif
4595 #endif
4596 #if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
4597 #if 0
4598 #define ACC_UA_GET32(p) (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
4599 #define ACC_UA_SET32(p,v) ((* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint32e_t) (v))
4600 #else
4601 #define ACC_UA_GET32(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint32e_t*, __acc_ua_volatile const void*, p))
4602 #define ACC_UA_SET32(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint32e_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint32e_t, v))
4603 #endif
4604 #if (ACC_ABI_BIG_ENDIAN)
4605 # define ACC_UA_GET_BE32(p) ACC_UA_GET32(p)
4606 # define ACC_UA_SET_BE32(p,v) ACC_UA_SET32(p,v)
4607 #elif (ACC_ABI_LITTLE_ENDIAN)
4608 # define ACC_UA_GET_LE32(p) ACC_UA_GET32(p)
4609 # define ACC_UA_SET_LE32(p,v) ACC_UA_SET32(p,v)
4610 #endif
4611 #if (__acc_HAVE_forceinline)
4612 #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
4613 #if !defined(ACC_UA_GET_LE32)
4614 __acc_static_forceinline
4615 #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
4616 __attribute__((__unused__))
4617 #endif
4618 unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
4619  __acc_ua_volatile const acc_uint32e_t* p = ACC_STATIC_CAST(__acc_ua_volatile const acc_uint32e_t*, pp);
4620  unsigned long v;
4621  __asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
4622  return v;
4623 }
4624 #define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p)
4625 #endif
4626 #if !defined(ACC_UA_SET_LE32)
4627 __acc_static_forceinline
4628 #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
4629 __attribute__((__unused__))
4630 #endif
4631 void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
4632  __acc_ua_volatile acc_uint32e_t* p = ACC_STATIC_CAST(__acc_ua_volatile acc_uint32e_t*, pp);
4633  __asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
4634 }
4635 #define ACC_UA_SET_LE32(p,v) __ACC_UA_SET_LE32(p,v)
4636 #endif
4637 #endif
4638 #endif
4639 #if !defined(ACC_UA_COPY32)
4640 # define ACC_UA_COPY32(d,s) ACC_UA_SET32(d, ACC_UA_GET32(s))
4641 #endif
4642 #endif
4643 #if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
4644 #if 0
4645 #define ACC_UA_GET64(p) (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
4646 #define ACC_UA_SET64(p,v) ((* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p)) = (acc_uint64l_t) (v))
4647 #else
4648 #define ACC_UA_GET64(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint64l_t*, __acc_ua_volatile const void*, p))
4649 #define ACC_UA_SET64(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint64l_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint64l_t, v))
4650 #endif
4651 #if (ACC_ABI_BIG_ENDIAN)
4652 # define ACC_UA_GET_BE64(p) ACC_UA_GET64(p)
4653 # define ACC_UA_SET_BE64(p,v) ACC_UA_SET64(p,v)
4654 #elif (ACC_ABI_LITTLE_ENDIAN)
4655 # define ACC_UA_GET_LE64(p) ACC_UA_GET64(p)
4656 # define ACC_UA_SET_LE64(p,v) ACC_UA_SET64(p,v)
4657 #endif
4658 #if !defined(ACC_UA_COPY64)
4659 # define ACC_UA_COPY64(d,s) ACC_UA_SET64(d, ACC_UA_GET64(s))
4660 #endif
4661 #endif
4662 # endif
4663 #endif
4664 #if defined(ACC_WANT_ACC_INCD_H)
4665 # undef ACC_WANT_ACC_INCD_H
4666 #ifndef __ACC_INCD_H_INCLUDED
4667 #define __ACC_INCD_H_INCLUDED 1
4668 #if (ACC_LIBC_NAKED)
4669 #ifndef __ACC_FALLBACK_STDDEF_H_INCLUDED
4670 #define __ACC_FALLBACK_STDDEF_H_INCLUDED 1
4671 #if defined(__PTRDIFF_TYPE__)
4672 typedef __PTRDIFF_TYPE__ acc_fallback_ptrdiff_t;
4673 #elif defined(__MIPS_PSX2__)
4674 typedef int acc_fallback_ptrdiff_t;
4675 #else
4676 typedef long acc_fallback_ptrdiff_t;
4677 #endif
4678 #if defined(__SIZE_TYPE__)
4679 typedef __SIZE_TYPE__ acc_fallback_size_t;
4680 #elif defined(__MIPS_PSX2__)
4681 typedef unsigned int acc_fallback_size_t;
4682 #else
4683 typedef unsigned long acc_fallback_size_t;
4684 #endif
4685 #if !defined(ptrdiff_t)
4686 typedef acc_fallback_ptrdiff_t ptrdiff_t;
4687 #ifndef _PTRDIFF_T_DEFINED
4688 #define _PTRDIFF_T_DEFINED 1
4689 #endif
4690 #endif
4691 #if !defined(size_t)
4692 typedef acc_fallback_size_t size_t;
4693 #ifndef _SIZE_T_DEFINED
4694 #define _SIZE_T_DEFINED 1
4695 #endif
4696 #endif
4697 #if !defined(__cplusplus) && !defined(wchar_t)
4698 typedef unsigned short wchar_t;
4699 #ifndef _WCHAR_T_DEFINED
4700 #define _WCHAR_T_DEFINED 1
4701 #endif
4702 #endif
4703 #ifndef NULL
4704 #if defined(__cplusplus) && defined(__GNUC__) && (__GNUC__ >= 4)
4705 #define NULL __null
4706 #elif defined(__cplusplus)
4707 #define NULL 0
4708 #else
4709 #define NULL ((void*)0)
4710 #endif
4711 #endif
4712 #ifndef offsetof
4713 #define offsetof(s,m) ((size_t)((ptrdiff_t)&(((s*)0)->m)))
4714 #endif
4715 #endif
4716 #elif (ACC_LIBC_FREESTANDING)
4717 # if defined(HAVE_STDDEF_H) && (HAVE_STDDEF_H+0)
4718 # include <stddef.h>
4719 # endif
4720 # if defined(HAVE_STDINT_H) && (HAVE_STDINT_H+0)
4721 # include <stdint.h>
4722 # endif
4723 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
4724 # if defined(HAVE_STDIO_H) && (HAVE_STDIO_H+0)
4725 # include <stdio.h>
4726 # endif
4727 # if defined(HAVE_STDDEF_H) && (HAVE_STDDEF_H+0)
4728 # include <stddef.h>
4729 # endif
4730 # if defined(HAVE_STDINT_H) && (HAVE_STDINT_H+0)
4731 # include <stdint.h>
4732 # endif
4733 #else
4734 #include <stdio.h>
4735 #if defined(HAVE_TIME_H) && (HAVE_TIME_H+0) && defined(__MSL__) && defined(__cplusplus)
4736 # include <time.h>
4737 #endif
4738 #if defined(HAVE_SYS_TYPES_H) && (HAVE_SYS_TYPES_H+0)
4739 # include <sys/types.h>
4740 #endif
4741 #if defined(HAVE_SYS_STAT_H) && (HAVE_SYS_STAT_H+0)
4742 # include <sys/stat.h>
4743 #endif
4744 #if defined(STDC_HEADERS) && (STDC_HEADERS+0)
4745 # include <stdlib.h>
4746 #elif defined(HAVE_STDLIB_H) && (HAVE_STDLIB_H+0)
4747 # include <stdlib.h>
4748 #endif
4749 #include <stddef.h>
4750 #if defined(HAVE_STRING_H) && (HAVE_STRING_H+0)
4751 # if defined(STDC_HEADERS) && (STDC_HEADERS+0)
4752 # elif defined(HAVE_MEMORY_H) && (HAVE_MEMORY_H+0)
4753 # include <memory.h>
4754 # endif
4755 # include <string.h>
4756 #endif
4757 #if defined(HAVE_STRINGS_H) && (HAVE_STRINGS_H+0)
4758 # include <strings.h>
4759 #endif
4760 #if defined(HAVE_INTTYPES_H) && (HAVE_INTTYPES_H+0)
4761 # include <inttypes.h>
4762 #endif
4763 #if defined(HAVE_STDINT_H) && (HAVE_STDINT_H+0)
4764 # include <stdint.h>
4765 #endif
4766 #if defined(HAVE_UNISTD_H) && (HAVE_UNISTD_H+0)
4767 # include <unistd.h>
4768 #endif
4769 #endif
4770 #endif
4771 #endif
4772 #if defined(ACC_WANT_ACC_INCE_H)
4773 # undef ACC_WANT_ACC_INCE_H
4774 #ifndef __ACC_INCE_H_INCLUDED
4775 #define __ACC_INCE_H_INCLUDED 1
4776 #if (ACC_LIBC_NAKED)
4777 #elif (ACC_LIBC_FREESTANDING)
4778 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
4779 # if (HAVE_SETJMP_H)
4780 # include <setjmp.h>
4781 # endif
4782 #else
4783 #if (HAVE_STDARG_H)
4784 # include <stdarg.h>
4785 #endif
4786 #if (HAVE_CTYPE_H)
4787 # include <ctype.h>
4788 #endif
4789 #if (HAVE_ERRNO_H)
4790 # include <errno.h>
4791 #endif
4792 #if (HAVE_MALLOC_H)
4793 # include <malloc.h>
4794 #endif
4795 #if (HAVE_ALLOCA_H)
4796 # include <alloca.h>
4797 #endif
4798 #if (HAVE_FCNTL_H)
4799 # include <fcntl.h>
4800 #endif
4801 #if (HAVE_DIRENT_H)
4802 # include <dirent.h>
4803 #endif
4804 #if (HAVE_SETJMP_H)
4805 # include <setjmp.h>
4806 #endif
4807 #if (HAVE_SIGNAL_H)
4808 # include <signal.h>
4809 #endif
4810 #if (TIME_WITH_SYS_TIME)
4811 # include <sys/time.h>
4812 # include <time.h>
4813 #elif (HAVE_TIME_H)
4814 # include <time.h>
4815 #endif
4816 #if (HAVE_UTIME_H)
4817 # include <utime.h>
4818 #elif (HAVE_SYS_UTIME_H)
4819 # include <sys/utime.h>
4820 #endif
4821 #if (HAVE_IO_H)
4822 # include <io.h>
4823 #endif
4824 #if (HAVE_DOS_H)
4825 # include <dos.h>
4826 #endif
4827 #if (HAVE_DIRECT_H)
4828 # include <direct.h>
4829 #endif
4830 #if (HAVE_SHARE_H)
4831 # include <share.h>
4832 #endif
4833 #if (ACC_CC_NDPC)
4834 # include <os.h>
4835 #endif
4836 #if defined(__TOS__) && (defined(__PUREC__) || defined(__TURBOC__))
4837 # include <ext.h>
4838 #endif
4839 #endif
4840 #endif
4841 #endif
4842 #if defined(ACC_WANT_ACC_INCI_H)
4843 # undef ACC_WANT_ACC_INCI_H
4844 #ifndef __ACC_INCI_H_INCLUDED
4845 #define __ACC_INCI_H_INCLUDED 1
4846 #if (ACC_LIBC_NAKED)
4847 #elif (ACC_LIBC_FREESTANDING)
4848 #elif (ACC_LIBC_MOSTLY_FREESTANDING)
4849 #else
4850 #if (ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
4851 # include <tos.h>
4852 #elif (ACC_HAVE_WINDOWS_H)
4853 # if 1 && !defined(WIN32_LEAN_AND_MEAN)
4854 # define WIN32_LEAN_AND_MEAN 1
4855 # endif
4856 # if 1 && !defined(_WIN32_WINNT)
4857 # define _WIN32_WINNT 0x0400
4858 # endif
4859 # include <windows.h>
4860 # if (ACC_CC_BORLANDC || ACC_CC_TURBOC)
4861 # include <dir.h>
4862 # endif
4863 #elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_WIN16)
4864 # if (ACC_CC_AZTECC)
4865 # include <model.h>
4866 # include <stat.h>
4867 # elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
4868 # include <alloc.h>
4869 # include <dir.h>
4870 # elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
4871 # include <sys/exceptn.h>
4872 # elif (ACC_CC_PACIFICC)
4873 # include <unixio.h>
4874 # include <stat.h>
4875 # include <sys.h>
4876 # elif (ACC_CC_WATCOMC)
4877 # include <i86.h>
4878 # endif
4879 #elif (ACC_OS_OS216)
4880 # if (ACC_CC_WATCOMC)
4881 # include <i86.h>
4882 # endif
4883 #endif
4884 #if (HAVE_SYS_MMAN_H)
4885 # include <sys/mman.h>
4886 #endif
4887 #if (HAVE_SYS_RESOURCE_H)
4888 # include <sys/resource.h>
4889 #endif
4890 #if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
4891 # if defined(FP_OFF)
4892 # define ACC_PTR_FP_OFF(x) FP_OFF(x)
4893 # elif defined(_FP_OFF)
4894 # define ACC_PTR_FP_OFF(x) _FP_OFF(x)
4895 # else
4896 # define ACC_PTR_FP_OFF(x) (((const unsigned __far*)&(x))[0])
4897 # endif
4898 # if defined(FP_SEG)
4899 # define ACC_PTR_FP_SEG(x) FP_SEG(x)
4900 # elif defined(_FP_SEG)
4901 # define ACC_PTR_FP_SEG(x) _FP_SEG(x)
4902 # else
4903 # define ACC_PTR_FP_SEG(x) (((const unsigned __far*)&(x))[1])
4904 # endif
4905 # if defined(MK_FP)
4906 # define ACC_PTR_MK_FP(s,o) MK_FP(s,o)
4907 # elif defined(_MK_FP)
4908 # define ACC_PTR_MK_FP(s,o) _MK_FP(s,o)
4909 # else
4910 # define ACC_PTR_MK_FP(s,o) ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
4911 # endif
4912 # if 0
4913 # undef ACC_PTR_FP_OFF
4914 # undef ACC_PTR_FP_SEG
4915 # undef ACC_PTR_MK_FP
4916 # define ACC_PTR_FP_OFF(x) (((const unsigned __far*)&(x))[0])
4917 # define ACC_PTR_FP_SEG(x) (((const unsigned __far*)&(x))[1])
4918 # define ACC_PTR_MK_FP(s,o) ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
4919 # endif
4920 #endif
4921 #endif
4922 #endif
4923 #endif
4924 #if defined(ACC_WANT_ACC_LIB_H)
4925 # undef ACC_WANT_ACC_LIB_H
4926 #ifndef __ACC_LIB_H_INCLUDED
4927 #define __ACC_LIB_H_INCLUDED 1
4928 #if !defined(__ACCLIB_FUNCNAME)
4929 # define __ACCLIB_FUNCNAME(f) f
4930 #endif
4931 #if !defined(ACCLIB_EXTERN)
4932 # define ACCLIB_EXTERN(r,f) extern r __ACCLIB_FUNCNAME(f)
4933 #endif
4934 #if !defined(ACCLIB_EXTERN_NOINLINE)
4935 # if defined(__acc_noinline)
4936 # define ACCLIB_EXTERN_NOINLINE(r,f) extern __acc_noinline r __ACCLIB_FUNCNAME(f)
4937 # else
4938 # define ACCLIB_EXTERN_NOINLINE(r,f) extern r __ACCLIB_FUNCNAME(f)
4939 # endif
4940 #endif
4941 #if (ACC_SIZEOF_LONG > ACC_SIZEOF_VOID_P)
4942 # define acclib_handle_t long
4943 #else
4944 # define acclib_handle_t acc_intptr_t
4945 #endif
4946 #if 0
4947 ACCLIB_EXTERN(int, acc_ascii_digit) (int);
4948 ACCLIB_EXTERN(int, acc_ascii_islower) (int);
4949 ACCLIB_EXTERN(int, acc_ascii_isupper) (int);
4950 ACCLIB_EXTERN(int, acc_ascii_tolower) (int);
4951 ACCLIB_EXTERN(int, acc_ascii_toupper) (int);
4952 ACCLIB_EXTERN(int, acc_ascii_utolower) (int);
4953 ACCLIB_EXTERN(int, acc_ascii_utoupper) (int);
4954 #endif
4955 #define acc_ascii_isdigit(c) ((ACC_ICAST(unsigned, c) - 48) < 10)
4956 #define acc_ascii_islower(c) ((ACC_ICAST(unsigned, c) - 97) < 26)
4957 #define acc_ascii_isupper(c) ((ACC_ICAST(unsigned, c) - 65) < 26)
4958 #define acc_ascii_tolower(c) (ACC_ICAST(int, c) + (acc_ascii_isupper(c) << 5))
4959 #define acc_ascii_toupper(c) (ACC_ICAST(int, c) - (acc_ascii_islower(c) << 5))
4960 #define acc_ascii_utolower(c) acc_ascii_tolower(ACC_ITRUNC(unsigned char, c))
4961 #define acc_ascii_utoupper(c) acc_ascii_toupper(ACC_ITRUNC(unsigned char, c))
4962 #ifndef acc_hsize_t
4963 #if (ACC_HAVE_MM_HUGE_PTR)
4964 # define acc_hsize_t unsigned long
4965 # define acc_hvoid_p void __huge *
4966 # define acc_hchar_p char __huge *
4967 # define acc_hchar_pp char __huge * __huge *
4968 # define acc_hbyte_p unsigned char __huge *
4969 #else
4970 # define acc_hsize_t size_t
4971 # define acc_hvoid_p void *
4972 # define acc_hchar_p char *
4973 # define acc_hchar_pp char **
4974 # define acc_hbyte_p unsigned char *
4975 #endif
4976 #endif
4977 ACCLIB_EXTERN(acc_hvoid_p, acc_halloc) (acc_hsize_t);
4978 ACCLIB_EXTERN(void, acc_hfree) (acc_hvoid_p);
4979 #if (ACC_OS_DOS16 || ACC_OS_OS216)
4980 ACCLIB_EXTERN(void __far*, acc_dos_alloc) (unsigned long);
4981 ACCLIB_EXTERN(int, acc_dos_free) (void __far*);
4982 #endif
4983 ACCLIB_EXTERN(int, acc_hmemcmp) (const acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
4984 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemcpy) (acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
4985 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemmove) (acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
4986 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemset) (acc_hvoid_p, int, acc_hsize_t);
4987 ACCLIB_EXTERN(acc_hsize_t, acc_hstrlen) (const acc_hchar_p);
4988 ACCLIB_EXTERN(int, acc_hstrcmp) (const acc_hchar_p, const acc_hchar_p);
4989 ACCLIB_EXTERN(int, acc_hstrncmp)(const acc_hchar_p, const acc_hchar_p, acc_hsize_t);
4990 ACCLIB_EXTERN(int, acc_ascii_hstricmp) (const acc_hchar_p, const acc_hchar_p);
4991 ACCLIB_EXTERN(int, acc_ascii_hstrnicmp)(const acc_hchar_p, const acc_hchar_p, acc_hsize_t);
4992 ACCLIB_EXTERN(int, acc_ascii_hmemicmp) (const acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
4993 ACCLIB_EXTERN(acc_hchar_p, acc_hstrstr) (const acc_hchar_p, const acc_hchar_p);
4994 ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstristr) (const acc_hchar_p, const acc_hchar_p);
4995 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemmem) (const acc_hvoid_p, acc_hsize_t, const acc_hvoid_p, acc_hsize_t);
4996 ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemimem) (const acc_hvoid_p, acc_hsize_t, const acc_hvoid_p, acc_hsize_t);
4997 ACCLIB_EXTERN(acc_hchar_p, acc_hstrcpy) (acc_hchar_p, const acc_hchar_p);
4998 ACCLIB_EXTERN(acc_hchar_p, acc_hstrcat) (acc_hchar_p, const acc_hchar_p);
4999 ACCLIB_EXTERN(acc_hsize_t, acc_hstrlcpy) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
5000 ACCLIB_EXTERN(acc_hsize_t, acc_hstrlcat) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
5001 ACCLIB_EXTERN(int, acc_hstrscpy) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
5002 ACCLIB_EXTERN(int, acc_hstrscat) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
5003 ACCLIB_EXTERN(acc_hchar_p, acc_hstrccpy) (acc_hchar_p, const acc_hchar_p, int);
5004 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemccpy) (acc_hvoid_p, const acc_hvoid_p, int, acc_hsize_t);
5005 ACCLIB_EXTERN(acc_hchar_p, acc_hstrchr) (const acc_hchar_p, int);
5006 ACCLIB_EXTERN(acc_hchar_p, acc_hstrrchr) (const acc_hchar_p, int);
5007 ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrichr) (const acc_hchar_p, int);
5008 ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrrichr) (const acc_hchar_p, int);
5009 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemchr) (const acc_hvoid_p, int, acc_hsize_t);
5010 ACCLIB_EXTERN(acc_hvoid_p, acc_hmemrchr) (const acc_hvoid_p, int, acc_hsize_t);
5011 ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemichr) (const acc_hvoid_p, int, acc_hsize_t);
5012 ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemrichr) (const acc_hvoid_p, int, acc_hsize_t);
5013 ACCLIB_EXTERN(acc_hsize_t, acc_hstrspn) (const acc_hchar_p, const acc_hchar_p);
5014 ACCLIB_EXTERN(acc_hsize_t, acc_hstrrspn) (const acc_hchar_p, const acc_hchar_p);
5015 ACCLIB_EXTERN(acc_hsize_t, acc_hstrcspn) (const acc_hchar_p, const acc_hchar_p);
5016 ACCLIB_EXTERN(acc_hsize_t, acc_hstrrcspn) (const acc_hchar_p, const acc_hchar_p);
5017 ACCLIB_EXTERN(acc_hchar_p, acc_hstrpbrk) (const acc_hchar_p, const acc_hchar_p);
5018 ACCLIB_EXTERN(acc_hchar_p, acc_hstrrpbrk) (const acc_hchar_p, const acc_hchar_p);
5019 ACCLIB_EXTERN(acc_hchar_p, acc_hstrsep) (acc_hchar_pp, const acc_hchar_p);
5020 ACCLIB_EXTERN(acc_hchar_p, acc_hstrrsep) (acc_hchar_pp, const acc_hchar_p);
5021 ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrlwr) (acc_hchar_p);
5022 ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrupr) (acc_hchar_p);
5023 ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemlwr) (acc_hvoid_p, acc_hsize_t);
5024 ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemupr) (acc_hvoid_p, acc_hsize_t);
5025 ACCLIB_EXTERN(acc_hsize_t, acc_hfread) (void *, acc_hvoid_p, acc_hsize_t);
5026 ACCLIB_EXTERN(acc_hsize_t, acc_hfwrite) (void *, const acc_hvoid_p, acc_hsize_t);
5027 #if (ACC_HAVE_MM_HUGE_PTR)
5028 ACCLIB_EXTERN(long, acc_hread) (int, acc_hvoid_p, long);
5029 ACCLIB_EXTERN(long, acc_hwrite) (int, const acc_hvoid_p, long);
5030 #endif
5031 ACCLIB_EXTERN(long, acc_safe_hread) (int, acc_hvoid_p, long);
5032 ACCLIB_EXTERN(long, acc_safe_hwrite) (int, const acc_hvoid_p, long);
5033 ACCLIB_EXTERN(unsigned, acc_ua_get_be16) (const acc_hvoid_p);
5034 ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_be24) (const acc_hvoid_p);
5035 ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_be32) (const acc_hvoid_p);
5036 ACCLIB_EXTERN(void, acc_ua_set_be16) (acc_hvoid_p, unsigned);
5037 ACCLIB_EXTERN(void, acc_ua_set_be24) (acc_hvoid_p, acc_uint32l_t);
5038 ACCLIB_EXTERN(void, acc_ua_set_be32) (acc_hvoid_p, acc_uint32l_t);
5039 ACCLIB_EXTERN(unsigned, acc_ua_get_le16) (const acc_hvoid_p);
5040 ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_le24) (const acc_hvoid_p);
5041 ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_le32) (const acc_hvoid_p);
5042 ACCLIB_EXTERN(void, acc_ua_set_le16) (acc_hvoid_p, unsigned);
5043 ACCLIB_EXTERN(void, acc_ua_set_le24) (acc_hvoid_p, acc_uint32l_t);
5044 ACCLIB_EXTERN(void, acc_ua_set_le32) (acc_hvoid_p, acc_uint32l_t);
5045 #if defined(acc_int64l_t)
5046 ACCLIB_EXTERN(acc_uint64l_t, acc_ua_get_be64) (const acc_hvoid_p);
5047 ACCLIB_EXTERN(void, acc_ua_set_be64) (acc_hvoid_p, acc_uint64l_t);
5048 ACCLIB_EXTERN(acc_uint64l_t, acc_ua_get_le64) (const acc_hvoid_p);
5049 ACCLIB_EXTERN(void, acc_ua_set_le64) (acc_hvoid_p, acc_uint64l_t);
5050 #endif
5051 ACCLIB_EXTERN_NOINLINE(short, acc_vget_short) (short, int);
5052 ACCLIB_EXTERN_NOINLINE(int, acc_vget_int) (int, int);
5053 ACCLIB_EXTERN_NOINLINE(long, acc_vget_long) (long, int);
5054 #if defined(acc_int64l_t)
5055 ACCLIB_EXTERN_NOINLINE(acc_int64l_t, acc_vget_acc_int64l_t) (acc_int64l_t, int);
5056 #endif
5057 ACCLIB_EXTERN_NOINLINE(acc_hsize_t, acc_vget_acc_hsize_t) (acc_hsize_t, int);
5058 #if !(ACC_CFG_NO_FLOAT)
5059 ACCLIB_EXTERN_NOINLINE(float, acc_vget_float) (float, int);
5060 #endif
5061 #if !(ACC_CFG_NO_DOUBLE)
5062 ACCLIB_EXTERN_NOINLINE(double, acc_vget_double) (double, int);
5063 #endif
5064 ACCLIB_EXTERN_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_p) (acc_hvoid_p, int);
5065 ACCLIB_EXTERN_NOINLINE(const acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p, int);
5066 #if !defined(ACC_FN_PATH_MAX)
5067 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
5068 # define ACC_FN_PATH_MAX 143
5069 #elif (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN32 || ACC_OS_WIN64)
5070 # define ACC_FN_PATH_MAX 259
5071 #elif (ACC_OS_TOS)
5072 # define ACC_FN_PATH_MAX 259
5073 #endif
5074 #endif
5075 #if !defined(ACC_FN_PATH_MAX)
5076 # define ACC_FN_PATH_MAX 1023
5077 #endif
5078 #if !defined(ACC_FN_NAME_MAX)
5079 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
5080 # define ACC_FN_NAME_MAX 12
5081 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
5082 # define ACC_FN_NAME_MAX 12
5083 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
5084 #elif (ACC_OS_DOS32)
5085 # define ACC_FN_NAME_MAX 12
5086 #endif
5087 #endif
5088 #if !defined(ACC_FN_NAME_MAX)
5089 # define ACC_FN_NAME_MAX ACC_FN_PATH_MAX
5090 #endif
5091 #define ACC_FNMATCH_NOESCAPE 1
5092 #define ACC_FNMATCH_PATHNAME 2
5093 #define ACC_FNMATCH_PATHSTAR 4
5094 #define ACC_FNMATCH_PERIOD 8
5095 #define ACC_FNMATCH_ASCII_CASEFOLD 16
5096 ACCLIB_EXTERN(int, acc_fnmatch) (const acc_hchar_p, const acc_hchar_p, int);
5097 #undef __ACCLIB_USE_OPENDIR
5098 #if (HAVE_DIRENT_H || ACC_CC_WATCOMC)
5099 # define __ACCLIB_USE_OPENDIR 1
5100 # if (ACC_OS_DOS32 && defined(__BORLANDC__))
5101 # elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
5102 # elif (ACC_OS_OS2 || ACC_OS_OS216)
5103 # elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
5104 # elif (ACC_OS_WIN32 && !(ACC_HAVE_WINDOWS_H))
5105 # elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_TOS || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
5106 # undef __ACCLIB_USE_OPENDIR
5107 # endif
5108 #endif
5109 typedef struct
5110 {
5111 #if defined(__ACCLIB_USE_OPENDIR)
5112  void* u_dirp;
5113 # if (ACC_CC_WATCOMC)
5114  unsigned short f_time;
5115  unsigned short f_date;
5116  unsigned long f_size;
5117 # endif
5118  char f_name[ACC_FN_NAME_MAX+1];
5119 #elif (ACC_OS_WIN32 || ACC_OS_WIN64)
5120  acclib_handle_t u_handle;
5121  unsigned f_attr;
5122  unsigned f_size_low;
5123  unsigned f_size_high;
5124  char f_name[ACC_FN_NAME_MAX+1];
5125 #elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_TOS || ACC_OS_WIN16)
5126  char u_dta[21];
5127  unsigned char f_attr;
5128  unsigned short f_time;
5129  unsigned short f_date;
5130  unsigned short f_size_low;
5131  unsigned short f_size_high;
5132  char f_name[ACC_FN_NAME_MAX+1];
5133  char u_dirp;
5134 #else
5135  void* u_dirp;
5136  char f_name[ACC_FN_NAME_MAX+1];
5137 #endif
5138 } acc_dir_t;
5139 #ifndef acc_dir_p
5140 #define acc_dir_p acc_dir_t *
5141 #endif
5142 ACCLIB_EXTERN(int, acc_opendir) (acc_dir_p, const char*);
5143 ACCLIB_EXTERN(int, acc_readdir) (acc_dir_p);
5144 ACCLIB_EXTERN(int, acc_closedir) (acc_dir_p);
5145 #if (ACC_CC_GNUC) && (defined(__CYGWIN__) || defined(__MINGW32__))
5146 # define acc_alloca(x) __builtin_alloca((x))
5147 #elif (ACC_CC_GNUC) && (ACC_OS_CONSOLE_PS2)
5148 # define acc_alloca(x) __builtin_alloca((x))
5149 #elif (ACC_CC_BORLANDC || ACC_CC_LCC) && defined(__linux__)
5150 #elif (HAVE_ALLOCA)
5151 # define acc_alloca(x) ACC_STATIC_CAST(void *, alloca((x)))
5152 #endif
5153 #if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
5154 # define acc_stackavail() stackavail()
5155 #elif (ACC_ARCH_I086 && ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0410))
5156 # define acc_stackavail() stackavail()
5157 #elif (ACC_ARCH_I086 && ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0400))
5158 # if (ACC_OS_WIN16) && (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
5159 # else
5160 # define acc_stackavail() stackavail()
5161 # endif
5162 #elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_CC_DMC || ACC_CC_SYMANTECC))
5163 # define acc_stackavail() stackavail()
5164 #elif ((ACC_ARCH_I086) && ACC_CC_MSC && (_MSC_VER >= 700))
5165 # define acc_stackavail() _stackavail()
5166 #elif ((ACC_ARCH_I086) && ACC_CC_MSC)
5167 # define acc_stackavail() stackavail()
5168 #elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && ACC_CC_TURBOC && (__TURBOC__ >= 0x0450))
5169 # define acc_stackavail() stackavail()
5170 #elif (ACC_ARCH_I086 && ACC_CC_TURBOC && (__TURBOC__ >= 0x0400))
5171  ACC_EXTERN_C size_t __cdecl stackavail(void);
5172 # define acc_stackavail() stackavail()
5173 #elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_CC_WATCOMC))
5174 # define acc_stackavail() stackavail()
5175 #elif (ACC_ARCH_I086 && ACC_CC_ZORTECHC)
5176 # define acc_stackavail() _chkstack()
5177 #endif
5178 ACCLIB_EXTERN(acc_intptr_t, acc_get_osfhandle) (int);
5179 ACCLIB_EXTERN(const char *, acc_getenv) (const char *);
5180 ACCLIB_EXTERN(int, acc_isatty) (int);
5181 ACCLIB_EXTERN(int, acc_mkdir) (const char*, unsigned);
5182 ACCLIB_EXTERN(int, acc_rmdir) (const char*);
5183 ACCLIB_EXTERN(int, acc_response) (int*, char***);
5184 ACCLIB_EXTERN(int, acc_set_binmode) (int, int);
5185 #if defined(acc_int32e_t)
5186 ACCLIB_EXTERN(acc_int32e_t, acc_muldiv32s) (acc_int32e_t, acc_int32e_t, acc_int32e_t);
5187 ACCLIB_EXTERN(acc_uint32e_t, acc_muldiv32u) (acc_uint32e_t, acc_uint32e_t, acc_uint32e_t);
5188 #endif
5189 ACCLIB_EXTERN(void, acc_wildargv) (int*, char***);
5190 ACCLIB_EXTERN_NOINLINE(void, acc_debug_break) (void);
5191 ACCLIB_EXTERN_NOINLINE(void, acc_debug_nop) (void);
5192 ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_query) (void);
5193 ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_enable) (int);
5194 ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_qemu) (void);
5195 ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_valgrind) (void);
5196 #if defined(acc_int32e_t)
5197 ACCLIB_EXTERN(int, acc_tsc_read) (acc_uint32e_t*);
5198 #endif
5199 struct acc_pclock_handle_t;
5200 struct acc_pclock_t;
5201 typedef struct acc_pclock_handle_t acc_pclock_handle_t;
5202 typedef struct acc_pclock_t acc_pclock_t;
5203 #ifndef acc_pclock_handle_p
5204 #define acc_pclock_handle_p acc_pclock_handle_t *
5205 #endif
5206 #ifndef acc_pclock_p
5207 #define acc_pclock_p acc_pclock_t *
5208 #endif
5209 #define ACC_PCLOCK_REALTIME 0
5210 #define ACC_PCLOCK_MONOTONIC 1
5211 #define ACC_PCLOCK_PROCESS_CPUTIME_ID 2
5212 #define ACC_PCLOCK_THREAD_CPUTIME_ID 3
5213 typedef int (*acc_pclock_gettime_t) (acc_pclock_handle_p, acc_pclock_p);
5214 struct acc_pclock_handle_t {
5215  acclib_handle_t h;
5216  int mode;
5217  int read_error;
5218  const char* name;
5219  acc_pclock_gettime_t gettime;
5220 #if defined(acc_int64l_t)
5221  acc_uint64l_t ticks_base;
5222 #endif
5223 };
5224 struct acc_pclock_t {
5225 #if defined(acc_int64l_t)
5226  acc_int64l_t tv_sec;
5227 #else
5228  acc_int32l_t tv_sec_high;
5229  acc_uint32l_t tv_sec_low;
5230 #endif
5231  acc_uint32l_t tv_nsec;
5232 };
5233 ACCLIB_EXTERN(int, acc_pclock_open) (acc_pclock_handle_p, int);
5234 ACCLIB_EXTERN(int, acc_pclock_open_default) (acc_pclock_handle_p);
5235 ACCLIB_EXTERN(int, acc_pclock_close) (acc_pclock_handle_p);
5236 ACCLIB_EXTERN(void, acc_pclock_read) (acc_pclock_handle_p, acc_pclock_p);
5237 #if !(ACC_CFG_NO_DOUBLE)
5238 ACCLIB_EXTERN(double, acc_pclock_get_elapsed) (acc_pclock_handle_p, const acc_pclock_p, const acc_pclock_p);
5239 #endif
5240 ACCLIB_EXTERN(int, acc_pclock_flush_cpu_cache) (acc_pclock_handle_p, unsigned);
5241 struct acc_getopt_t;
5242 typedef struct acc_getopt_t acc_getopt_t;
5243 #ifndef acc_getopt_p
5244 #define acc_getopt_p acc_getopt_t *
5245 #endif
5246 struct acc_getopt_longopt_t;
5247 typedef struct acc_getopt_longopt_t acc_getopt_longopt_t;
5248 #ifndef acc_getopt_longopt_p
5249 #define acc_getopt_longopt_p acc_getopt_longopt_t *
5250 #endif
5251 struct acc_getopt_longopt_t {
5252  const char* name;
5253  int has_arg;
5254  int* flag;
5255  int val;
5256 };
5257 typedef void (*acc_getopt_opterr_t)(acc_getopt_p, const char*, void *);
5258 struct acc_getopt_t {
5259  void *user;
5260  const char *progname;
5261  int bad_option;
5262  char *optarg;
5263  acc_getopt_opterr_t opterr;
5264  int optind;
5265  int optopt;
5266  int errcount;
5267  int argc; char** argv;
5268  int eof; int shortpos;
5269  int pending_rotate_first, pending_rotate_middle;
5270 };
5271 enum { ACC_GETOPT_NO_ARG, ACC_GETOPT_REQUIRED_ARG, ACC_GETOPT_OPTIONAL_ARG, ACC_GETOPT_EXACT_ARG = 0x10 };
5272 enum { ACC_GETOPT_PERMUTE, ACC_GETOPT_RETURN_IN_ORDER, ACC_GETOPT_REQUIRE_ORDER };
5273 ACCLIB_EXTERN(void, acc_getopt_init) (acc_getopt_p g,
5274  int start_argc, int argc, char** argv);
5275 ACCLIB_EXTERN(int, acc_getopt) (acc_getopt_p g,
5276  const char* shortopts,
5277  const acc_getopt_longopt_p longopts,
5278  int* longind);
5279 typedef struct {
5280  acc_uint32l_t seed;
5281 } acc_rand31_t;
5282 #ifndef acc_rand31_p
5283 #define acc_rand31_p acc_rand31_t *
5284 #endif
5285 ACCLIB_EXTERN(void, acc_srand31) (acc_rand31_p, acc_uint32l_t);
5286 ACCLIB_EXTERN(acc_uint32l_t, acc_rand31) (acc_rand31_p);
5287 #if defined(acc_int64l_t)
5288 typedef struct {
5289  acc_uint64l_t seed;
5290 } acc_rand48_t;
5291 #ifndef acc_rand48_p
5292 #define acc_rand48_p acc_rand48_t *
5293 #endif
5294 ACCLIB_EXTERN(void, acc_srand48) (acc_rand48_p, acc_uint32l_t);
5295 ACCLIB_EXTERN(acc_uint32l_t, acc_rand48) (acc_rand48_p);
5296 ACCLIB_EXTERN(acc_uint32l_t, acc_rand48_r32) (acc_rand48_p);
5297 #endif
5298 #if defined(acc_int64l_t)
5299 typedef struct {
5300  acc_uint64l_t seed;
5301 } acc_rand64_t;
5302 #ifndef acc_rand64_p
5303 #define acc_rand64_p acc_rand64_t *
5304 #endif
5305 ACCLIB_EXTERN(void, acc_srand64) (acc_rand64_p, acc_uint64l_t);
5306 ACCLIB_EXTERN(acc_uint32l_t, acc_rand64) (acc_rand64_p);
5307 ACCLIB_EXTERN(acc_uint32l_t, acc_rand64_r32) (acc_rand64_p);
5308 #endif
5309 typedef struct {
5310  unsigned n;
5311  acc_uint32l_t s[624];
5312 } acc_randmt_t;
5313 #ifndef acc_randmt_p
5314 #define acc_randmt_p acc_randmt_t *
5315 #endif
5316 ACCLIB_EXTERN(void, acc_srandmt) (acc_randmt_p, acc_uint32l_t);
5317 ACCLIB_EXTERN(acc_uint32l_t, acc_randmt) (acc_randmt_p);
5318 ACCLIB_EXTERN(acc_uint32l_t, acc_randmt_r32) (acc_randmt_p);
5319 #if defined(acc_int64l_t)
5320 typedef struct {
5321  unsigned n;
5322  acc_uint64l_t s[312];
5323 } acc_randmt64_t;
5324 #ifndef acc_randmt64_p
5325 #define acc_randmt64_p acc_randmt64_t *
5326 #endif
5327 ACCLIB_EXTERN(void, acc_srandmt64) (acc_randmt64_p, acc_uint64l_t);
5328 ACCLIB_EXTERN(acc_uint64l_t, acc_randmt64_r64) (acc_randmt64_p);
5329 #endif
5330 #define ACC_SPAWN_P_WAIT 0
5331 #define ACC_SPAWN_P_NOWAIT 1
5332 ACCLIB_EXTERN(int, acc_spawnv) (int mode, const char* fn, const char* const * argv);
5333 ACCLIB_EXTERN(int, acc_spawnvp) (int mode, const char* fn, const char* const * argv);
5334 ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * argv, const char * const envp);
5335 #endif
5336 #endif
5337 #if defined(ACC_WANT_ACC_CXX_H)
5338 # undef ACC_WANT_ACC_CXX_H
5339 #ifndef __ACC_CXX_H_INCLUDED
5340 #define __ACC_CXX_H_INCLUDED 1
5341 #if defined(__cplusplus)
5342 #if defined(ACC_CXX_NOTHROW)
5343 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul))
5344 #elif (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
5345 #elif (ACC_CC_GHS && !defined(__EXCEPTIONS))
5346 #elif (ACC_CC_HIGHC)
5347 #elif (ACC_CC_MSC && (_MSC_VER < 1100))
5348 #elif (ACC_CC_NDPC)
5349 #elif (ACC_CC_TURBOC)
5350 #elif (ACC_CC_WATCOMC && !defined(_CPPUNWIND))
5351 #elif (ACC_CC_ZORTECHC)
5352 #else
5353 # define ACC_CXX_NOTHROW throw()
5354 #endif
5355 #if !defined(ACC_CXX_NOTHROW)
5356 # define ACC_CXX_NOTHROW /*empty*/
5357 #endif
5358 #if defined(__ACC_CXX_DO_NEW)
5359 #elif (ACC_CC_GHS || ACC_CC_NDPC || ACC_CC_PGI)
5360 # define __ACC_CXX_DO_NEW { return 0; }
5361 #elif ((ACC_CC_BORLANDC || ACC_CC_TURBOC) && ACC_ARCH_I086)
5362 # define __ACC_CXX_DO_NEW { return 0; }
5363 #else
5364 # define __ACC_CXX_DO_NEW ;
5365 #endif
5366 #if defined(__ACC_CXX_DO_DELETE)
5367 #elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
5368 # define __ACC_CXX_DO_DELETE { }
5369 #else
5370 # define __ACC_CXX_DO_DELETE ACC_CXX_NOTHROW { }
5371 #endif
5372 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
5373 #elif (ACC_CC_MSC && ACC_MM_HUGE)
5374 # define ACC_CXX_DISABLE_NEW_DELETE private:
5375 #elif (ACC_CC_MSC && (_MSC_VER < 1100))
5376 #elif (ACC_CC_NDPC)
5377 #elif (ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
5378 #elif (ACC_CC_TURBOC)
5379 #elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))
5380 #else
5381 # define __ACC_CXX_HAVE_ARRAY_NEW 1
5382 #endif
5383 #if (__ACC_CXX_HAVE_ARRAY_NEW)
5384 # define __ACC_CXX_HAVE_PLACEMENT_NEW 1
5385 #endif
5386 #if (__ACC_CXX_HAVE_PLACEMENT_NEW)
5387 # if (ACC_CC_GNUC >= 0x030000ul)
5388 # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
5389 # elif (ACC_CC_INTELC)
5390 # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
5391 # elif (ACC_CC_MSC && (_MSC_VER >= 1200))
5392 # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
5393 # elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
5394 # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
5395 # elif (ACC_CC_PGI)
5396 # define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
5397 # endif
5398 #endif
5399 #if defined(ACC_CXX_DISABLE_NEW_DELETE)
5400 #elif defined(new) || defined(delete)
5401 # define ACC_CXX_DISABLE_NEW_DELETE private:
5402 #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025b00ul))
5403 # define ACC_CXX_DISABLE_NEW_DELETE private:
5404 #elif (ACC_CC_HIGHC)
5405 # define ACC_CXX_DISABLE_NEW_DELETE private:
5406 #elif !(__ACC_CXX_HAVE_ARRAY_NEW)
5407 # define ACC_CXX_DISABLE_NEW_DELETE \
5408  protected: static void operator delete(void*) __ACC_CXX_DO_DELETE \
5409  protected: static void* operator new(size_t) __ACC_CXX_DO_NEW \
5410  private:
5411 #else
5412 # define ACC_CXX_DISABLE_NEW_DELETE \
5413  protected: static void operator delete(void*) __ACC_CXX_DO_DELETE \
5414  static void operator delete[](void*) __ACC_CXX_DO_DELETE \
5415  private: static void* operator new(size_t) __ACC_CXX_DO_NEW \
5416  static void* operator new[](size_t) __ACC_CXX_DO_NEW
5417 #endif
5418 #if defined(ACC_CXX_TRIGGER_FUNCTION)
5419 #else
5420 # define ACC_CXX_TRIGGER_FUNCTION \
5421  protected: virtual const void* acc_cxx_trigger_function() const; \
5422  private:
5423 #endif
5424 #if defined(ACC_CXX_TRIGGER_FUNCTION_IMPL)
5425 #else
5426 # define ACC_CXX_TRIGGER_FUNCTION_IMPL(klass) \
5427  const void* klass::acc_cxx_trigger_function() const { return ACC_STATIC_CAST(const void *, 0); }
5428 #endif
5429 #endif
5430 #endif
5431 #endif
5432 #if defined(ACC_WANT_ACC_CHK_CH)
5433 # undef ACC_WANT_ACC_CHK_CH
5434 #if !defined(ACCCHK_ASSERT)
5435 # define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr)
5436 #endif
5437 #if !defined(ACCCHK_ASSERT_SIGN_T)
5438 # define ACCCHK_ASSERT_SIGN_T(type,relop) \
5439  ACCCHK_ASSERT( ACC_STATIC_CAST(type, -1) relop ACC_STATIC_CAST(type, 0)) \
5440  ACCCHK_ASSERT( ACC_STATIC_CAST(type, ~ACC_STATIC_CAST(type, 0)) relop ACC_STATIC_CAST(type, 0)) \
5441  ACCCHK_ASSERT( ACC_STATIC_CAST(type, ~ACC_STATIC_CAST(type, 0)) == ACC_STATIC_CAST(type, -1))
5442 #endif
5443 #if !defined(ACCCHK_ASSERT_IS_SIGNED_T)
5444 # define ACCCHK_ASSERT_IS_SIGNED_T(type) ACCCHK_ASSERT_SIGN_T(type,<)
5445 #endif
5446 #if !defined(ACCCHK_ASSERT_IS_UNSIGNED_T)
5447 # if (ACC_BROKEN_INTEGRAL_PROMOTION)
5448 # define ACCCHK_ASSERT_IS_UNSIGNED_T(type) \
5449  ACCCHK_ASSERT( ACC_STATIC_CAST(type, -1) > ACC_STATIC_CAST(type, 0) )
5450 # else
5451 # define ACCCHK_ASSERT_IS_UNSIGNED_T(type) ACCCHK_ASSERT_SIGN_T(type,>)
5452 # endif
5453 #endif
5454 #if defined(ACCCHK_CFG_PEDANTIC)
5455 #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550) && (__BORLANDC__ < 0x0560))
5456 # pragma option push -w-8055
5457 #elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0550))
5458 # pragma option push -w-osh
5459 #endif
5460 #endif
5461 #if (ACC_0xffffffffL - ACC_UINT32_C(4294967294) != 1)
5462 # error "preprocessor error"
5463 #endif
5464 #if (ACC_0xffffffffL - ACC_UINT32_C(0xfffffffd) != 2)
5465 # error "preprocessor error"
5466 #endif
5467 #if +0
5468 # error "preprocessor error"
5469 #endif
5470 #if -0
5471 # error "preprocessor error"
5472 #endif
5473 #if +0 != 0
5474 # error "preprocessor error"
5475 #endif
5476 #if -0 != 0
5477 # error "preprocessor error"
5478 #endif
5479 #define ACCCHK_VAL 1
5480 #define ACCCHK_TMP1 ACCCHK_VAL
5481 #undef ACCCHK_VAL
5482 #define ACCCHK_VAL 2
5483 #define ACCCHK_TMP2 ACCCHK_VAL
5484 #if (ACCCHK_TMP1 != 2)
5485 # error "preprocessor error 3a"
5486 #endif
5487 #if (ACCCHK_TMP2 != 2)
5488 # error "preprocessor error 3b"
5489 #endif
5490 #undef ACCCHK_VAL
5491 #if (ACCCHK_TMP2)
5492 # error "preprocessor error 3c"
5493 #endif
5494 #if (ACCCHK_TMP2 + 0 != 0)
5495 # error "preprocessor error 3d"
5496 #endif
5497 #undef ACCCHK_TMP1
5498 #undef ACCCHK_TMP2
5499 #if 0 || defined(ACCCHK_CFG_PEDANTIC)
5500 # if (ACC_ARCH_MIPS) && defined(_MIPS_SZINT)
5501  ACCCHK_ASSERT((_MIPS_SZINT) == 8 * sizeof(int))
5502 # endif
5503 # if (ACC_ARCH_MIPS) && defined(_MIPS_SZLONG)
5504  ACCCHK_ASSERT((_MIPS_SZLONG) == 8 * sizeof(long))
5505 # endif
5506 # if (ACC_ARCH_MIPS) && defined(_MIPS_SZPTR)
5507  ACCCHK_ASSERT((_MIPS_SZPTR) == 8 * sizeof(void *))
5508 # endif
5509 #endif
5510  ACCCHK_ASSERT(1 == 1)
5511  ACCCHK_ASSERT(__ACC_MASK_GEN(1u,1) == 1)
5512  ACCCHK_ASSERT(__ACC_MASK_GEN(1u,2) == 3)
5513  ACCCHK_ASSERT(__ACC_MASK_GEN(1u,3) == 7)
5514  ACCCHK_ASSERT(__ACC_MASK_GEN(1u,8) == 255)
5515 #if (ACC_SIZEOF_INT >= 2)
5516  ACCCHK_ASSERT(__ACC_MASK_GEN(1,15) == 32767)
5517  ACCCHK_ASSERT(__ACC_MASK_GEN(1u,16) == 0xffffU)
5518  ACCCHK_ASSERT(__ACC_MASK_GEN(0u,16) == 0u)
5519 #else
5520  ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,16) == 0xffffUL)
5521  ACCCHK_ASSERT(__ACC_MASK_GEN(0ul,16) == 0ul)
5522 #endif
5523 #if (ACC_SIZEOF_INT >= 4)
5524  ACCCHK_ASSERT(__ACC_MASK_GEN(1,31) == 2147483647)
5525  ACCCHK_ASSERT(__ACC_MASK_GEN(1u,32) == 0xffffffffU)
5526  ACCCHK_ASSERT(__ACC_MASK_GEN(0u,32) == 0u)
5527 #endif
5528 #if (ACC_SIZEOF_LONG >= 4)
5529  ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,32) == 0xffffffffUL)
5530  ACCCHK_ASSERT(__ACC_MASK_GEN(0ul,32) == 0ul)
5531 #endif
5532 #if (ACC_SIZEOF_LONG >= 8)
5533  ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,64) == 0xffffffffffffffffUL)
5534  ACCCHK_ASSERT(__ACC_MASK_GEN(0ul,64) == 0ul)
5535 #endif
5536 #if !(ACC_BROKEN_INTEGRAL_PROMOTION)
5537  ACCCHK_ASSERT(__ACC_MASK_GEN(1u,ACC_SIZEOF_INT*8) == ~0u)
5538  ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,ACC_SIZEOF_LONG*8) == ~0ul)
5539 #endif
5540 #if 1
5541  ACCCHK_ASSERT(__ACC_MASK_GEN(0,0) == 0)
5542  ACCCHK_ASSERT(__ACC_MASK_GEN(1,0) == 0)
5543  ACCCHK_ASSERT(__ACC_MASK_GEN(2,0) == 0)
5544  ACCCHK_ASSERT(__ACC_MASK_GEN(4,0) == 0)
5545 #endif
5546 #if 1
5547  ACCCHK_ASSERT(__ACC_MASK_GEN(2,1) == 2)
5548  ACCCHK_ASSERT(__ACC_MASK_GEN(4,1) == 4)
5549  ACCCHK_ASSERT(__ACC_MASK_GEN(8,1) == 8)
5550  ACCCHK_ASSERT(__ACC_MASK_GEN(2,2) == 2+4)
5551  ACCCHK_ASSERT(__ACC_MASK_GEN(4,2) == 4+8)
5552  ACCCHK_ASSERT(__ACC_MASK_GEN(8,2) == 8+16)
5553  ACCCHK_ASSERT(__ACC_MASK_GEN(2,3) == 2+4+8)
5554  ACCCHK_ASSERT(__ACC_MASK_GEN(4,3) == 4+8+16)
5555  ACCCHK_ASSERT(__ACC_MASK_GEN(8,3) == 8+16+32)
5556  ACCCHK_ASSERT(__ACC_MASK_GEN(7,1) == 7)
5557  ACCCHK_ASSERT(__ACC_MASK_GEN(7,2) == 7+14)
5558  ACCCHK_ASSERT(__ACC_MASK_GEN(7,3) == 7+14+28)
5559 #endif
5560 #if !(ACC_BROKEN_SIGNED_RIGHT_SHIFT)
5561  ACCCHK_ASSERT(((-1) >> 7) == -1)
5562 #endif
5563  ACCCHK_ASSERT(((1) >> 7) == 0)
5564 #if (ACC_CC_INTELC && (__INTEL_COMPILER >= 900))
5565 # pragma warning(push)
5566 # pragma warning(disable: 1025)
5567 #endif
5568  ACCCHK_ASSERT((~0l & ~0) == ~0l)
5569  ACCCHK_ASSERT((~0l & ~0u) == ~0u)
5570  ACCCHK_ASSERT((~0ul & ~0) == ~0ul)
5571  ACCCHK_ASSERT((~0ul & ~0u) == ~0u)
5572 #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
5573 #elif (ACC_SIZEOF_INT == 2)
5574  ACCCHK_ASSERT((~0l & ~0u) == 0xffffU)
5575  ACCCHK_ASSERT((~0ul & ~0u) == 0xffffU)
5576 #elif (ACC_SIZEOF_INT == 4)
5577  ACCCHK_ASSERT((~0l & ~0u) == 0xffffffffU)
5578  ACCCHK_ASSERT((~0ul & ~0u) == 0xffffffffU)
5579 #endif
5580 #if (ACC_CC_INTELC && (__INTEL_COMPILER >= 900))
5581 # pragma warning(pop)
5582 #endif
5583  ACCCHK_ASSERT_IS_SIGNED_T(signed char)
5584  ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned char)
5585  ACCCHK_ASSERT(sizeof(signed char) == sizeof(char))
5586  ACCCHK_ASSERT(sizeof(unsigned char) == sizeof(char))
5587  ACCCHK_ASSERT(sizeof(char) == 1)
5588 #if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
5589 #else
5590  ACCCHK_ASSERT(sizeof(char) == sizeof(ACC_STATIC_CAST(char, 0)))
5591 #endif
5592 #if defined(__cplusplus)
5593  ACCCHK_ASSERT(sizeof('\0') == sizeof(char))
5594 #else
5595 # if (ACC_CC_DMC)
5596 # else
5597  ACCCHK_ASSERT(sizeof('\0') == sizeof(int))
5598 # endif
5599 #endif
5600 #if defined(__acc_alignof)
5601  ACCCHK_ASSERT(__acc_alignof(char) == 1)
5602  ACCCHK_ASSERT(__acc_alignof(signed char) == 1)
5603  ACCCHK_ASSERT(__acc_alignof(unsigned char) == 1)
5604 #if defined(acc_int16e_t)
5605  ACCCHK_ASSERT(__acc_alignof(acc_int16e_t) >= 1)
5606  ACCCHK_ASSERT(__acc_alignof(acc_int16e_t) <= 2)
5607 #endif
5608 #if defined(acc_int32e_t)
5609  ACCCHK_ASSERT(__acc_alignof(acc_int32e_t) >= 1)
5610  ACCCHK_ASSERT(__acc_alignof(acc_int32e_t) <= 4)
5611 #endif
5612 #endif
5613  ACCCHK_ASSERT_IS_SIGNED_T(short)
5614  ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned short)
5615  ACCCHK_ASSERT(sizeof(short) == sizeof(unsigned short))
5616 #if !(ACC_ABI_I8LP16)
5617  ACCCHK_ASSERT(sizeof(short) >= 2)
5618 #endif
5619  ACCCHK_ASSERT(sizeof(short) >= sizeof(char))
5620 #if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
5621 #else
5622  ACCCHK_ASSERT(sizeof(short) == sizeof(ACC_STATIC_CAST(short, 0)))
5623 #endif
5624 #if (ACC_SIZEOF_SHORT > 0)
5625  ACCCHK_ASSERT(sizeof(short) == ACC_SIZEOF_SHORT)
5626 #endif
5627  ACCCHK_ASSERT_IS_SIGNED_T(int)
5628  ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned int)
5629  ACCCHK_ASSERT(sizeof(int) == sizeof(unsigned int))
5630 #if !(ACC_ABI_I8LP16)
5631  ACCCHK_ASSERT(sizeof(int) >= 2)
5632 #endif
5633  ACCCHK_ASSERT(sizeof(int) >= sizeof(short))
5634  ACCCHK_ASSERT(sizeof(int) == sizeof(0))
5635  ACCCHK_ASSERT(sizeof(int) == sizeof(ACC_STATIC_CAST(int, 0)))
5636 #if (ACC_SIZEOF_INT > 0)
5637  ACCCHK_ASSERT(sizeof(int) == ACC_SIZEOF_INT)
5638 #endif
5639  ACCCHK_ASSERT(sizeof(0) == sizeof(int))
5640  ACCCHK_ASSERT_IS_SIGNED_T(long)
5641  ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned long)
5642  ACCCHK_ASSERT(sizeof(long) == sizeof(unsigned long))
5643 #if !(ACC_ABI_I8LP16)
5644  ACCCHK_ASSERT(sizeof(long) >= 4)
5645 #endif
5646  ACCCHK_ASSERT(sizeof(long) >= sizeof(int))
5647  ACCCHK_ASSERT(sizeof(long) == sizeof(0L))
5648  ACCCHK_ASSERT(sizeof(long) == sizeof(ACC_STATIC_CAST(long, 0)))
5649 #if (ACC_SIZEOF_LONG > 0)
5650  ACCCHK_ASSERT(sizeof(long) == ACC_SIZEOF_LONG)
5651 #endif
5652  ACCCHK_ASSERT(sizeof(0L) == sizeof(long))
5653  ACCCHK_ASSERT_IS_UNSIGNED_T(size_t)
5654  ACCCHK_ASSERT(sizeof(size_t) >= sizeof(int))
5655  ACCCHK_ASSERT(sizeof(size_t) == sizeof(sizeof(0)))
5656 #if (ACC_SIZEOF_SIZE_T > 0)
5657  ACCCHK_ASSERT(sizeof(size_t) == ACC_SIZEOF_SIZE_T)
5658 #endif
5659  ACCCHK_ASSERT_IS_SIGNED_T(ptrdiff_t)
5660  ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(int))
5661  ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(size_t))
5662 #if !(ACC_BROKEN_SIZEOF)
5663  ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(ACC_STATIC_CAST(char*, 0) - ACC_STATIC_CAST(char*, 0)))
5664 # if (ACC_HAVE_MM_HUGE_PTR)
5665  ACCCHK_ASSERT(4 == sizeof(ACC_STATIC_CAST(char __huge*, 0) - ACC_STATIC_CAST(char __huge*, 0)))
5666 # endif
5667 #endif
5668 #if (ACC_SIZEOF_PTRDIFF_T > 0)
5669  ACCCHK_ASSERT(sizeof(ptrdiff_t) == ACC_SIZEOF_PTRDIFF_T)
5670 #endif
5671  ACCCHK_ASSERT(sizeof(void*) >= sizeof(char*))
5672 #if (ACC_SIZEOF_VOID_P > 0)
5673  ACCCHK_ASSERT(sizeof(void*) == ACC_SIZEOF_VOID_P)
5674  ACCCHK_ASSERT(sizeof(char*) == ACC_SIZEOF_VOID_P)
5675 #endif
5676 #if (ACC_HAVE_MM_HUGE_PTR)
5677  ACCCHK_ASSERT(4 == sizeof(void __huge*))
5678  ACCCHK_ASSERT(4 == sizeof(char __huge*))
5679 #endif
5680 #if (ACC_ABI_I8LP16)
5681  ACCCHK_ASSERT((((1u << 7) + 1) >> 7) == 1)
5682  ACCCHK_ASSERT((((1ul << 15) + 1) >> 15) == 1)
5683 #else
5684  ACCCHK_ASSERT((((1u << 15) + 1) >> 15) == 1)
5685  ACCCHK_ASSERT((((1ul << 31) + 1) >> 31) == 1)
5686 #endif
5687 #if defined(ACCCHK_CFG_PEDANTIC)
5688 #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
5689 #else
5690  ACCCHK_ASSERT((1 << (8*ACC_SIZEOF_INT-1)) < 0)
5691 #endif
5692 #endif
5693  ACCCHK_ASSERT((1u << (8*ACC_SIZEOF_INT-1)) > 0)
5694 #if defined(ACCCHK_CFG_PEDANTIC)
5695  ACCCHK_ASSERT((1l << (8*ACC_SIZEOF_LONG-1)) < 0)
5696 #endif
5697  ACCCHK_ASSERT((1ul << (8*ACC_SIZEOF_LONG-1)) > 0)
5698 #if defined(acc_int16e_t)
5699  ACCCHK_ASSERT(sizeof(acc_int16e_t) == 2)
5700  ACCCHK_ASSERT(sizeof(acc_int16e_t) == ACC_SIZEOF_ACC_INT16E_T)
5701  ACCCHK_ASSERT(sizeof(acc_uint16e_t) == 2)
5702  ACCCHK_ASSERT(sizeof(acc_int16e_t) == sizeof(acc_uint16e_t))
5703  ACCCHK_ASSERT_IS_SIGNED_T(acc_int16e_t)
5704  ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint16e_t)
5705 #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
5706 #else
5707  ACCCHK_ASSERT((ACC_STATIC_CAST(acc_uint16e_t, (~ACC_STATIC_CAST(acc_uint16e_t,0ul))) >> 15) == 1)
5708 #endif
5709  ACCCHK_ASSERT( ACC_STATIC_CAST(acc_int16e_t, (1 + ~ACC_STATIC_CAST(acc_int16e_t, 0))) == 0)
5710 #if defined(ACCCHK_CFG_PEDANTIC)
5711  ACCCHK_ASSERT( ACC_STATIC_CAST(acc_uint16e_t, (1 + ~ACC_STATIC_CAST(acc_uint16e_t, 0))) == 0)
5712 #endif
5713 #endif
5714 #if defined(acc_int32e_t)
5715  ACCCHK_ASSERT(sizeof(acc_int32e_t) == 4)
5716  ACCCHK_ASSERT(sizeof(acc_int32e_t) == ACC_SIZEOF_ACC_INT32E_T)
5717  ACCCHK_ASSERT(sizeof(acc_uint32e_t) == 4)
5718  ACCCHK_ASSERT(sizeof(acc_int32e_t) == sizeof(acc_uint32e_t))
5719  ACCCHK_ASSERT_IS_SIGNED_T(acc_int32e_t)
5720  ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_int32e_t, 1) << 30) + 1) >> 30) == 1)
5721  ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32e_t)
5722  ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_uint32e_t, 1) << 31) + 1) >> 31) == 1)
5723  ACCCHK_ASSERT((ACC_STATIC_CAST(acc_uint32e_t, (~ACC_STATIC_CAST(acc_uint32e_t, 0ul))) >> 31) == 1)
5724  ACCCHK_ASSERT( ACC_STATIC_CAST(acc_int32e_t, (1 + ~ACC_STATIC_CAST(acc_int32e_t, 0))) == 0)
5725 #if defined(ACCCHK_CFG_PEDANTIC)
5726  ACCCHK_ASSERT( ACC_STATIC_CAST(acc_uint32e_t, (1 + ~ACC_STATIC_CAST(acc_uint32e_t, 0))) == 0)
5727 #endif
5728 #endif
5729 #if defined(acc_int32e_t)
5730  ACCCHK_ASSERT(sizeof(acc_int32l_t) >= sizeof(acc_int32e_t))
5731 #endif
5732  ACCCHK_ASSERT(sizeof(acc_int32l_t) >= 4)
5733  ACCCHK_ASSERT(sizeof(acc_int32l_t) == ACC_SIZEOF_ACC_INT32L_T)
5734  ACCCHK_ASSERT(sizeof(acc_uint32l_t) >= 4)
5735  ACCCHK_ASSERT(sizeof(acc_int32l_t) == sizeof(acc_uint32l_t))
5736  ACCCHK_ASSERT_IS_SIGNED_T(acc_int32l_t)
5737  ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_int32l_t, 1) << 30) + 1) >> 30) == 1)
5738  ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32l_t)
5739  ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_uint32l_t, 1) << 31) + 1) >> 31) == 1)
5740  ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(int))
5741 #if defined(acc_int32e_t)
5742  ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32e_t))
5743 #endif
5744  ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
5745  ACCCHK_ASSERT(sizeof(acc_int32f_t) >= 4)
5746  ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
5747  ACCCHK_ASSERT(sizeof(acc_int32f_t) == ACC_SIZEOF_ACC_INT32F_T)
5748  ACCCHK_ASSERT(sizeof(acc_uint32f_t) >= 4)
5749  ACCCHK_ASSERT(sizeof(acc_uint32f_t) >= sizeof(acc_uint32l_t))
5750  ACCCHK_ASSERT(sizeof(acc_int32f_t) == sizeof(acc_uint32f_t))
5751  ACCCHK_ASSERT_IS_SIGNED_T(acc_int32f_t)
5752  ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_int32f_t, 1) << 30) + 1) >> 30) == 1)
5753  ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32f_t)
5754  ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_uint32f_t, 1) << 31) + 1) >> 31) == 1)
5755 #if defined(acc_int64e_t)
5756  ACCCHK_ASSERT(sizeof(acc_int64e_t) == 8)
5757  ACCCHK_ASSERT(sizeof(acc_int64e_t) == ACC_SIZEOF_ACC_INT64E_T)
5758  ACCCHK_ASSERT(sizeof(acc_uint64e_t) == 8)
5759  ACCCHK_ASSERT(sizeof(acc_int64e_t) == sizeof(acc_uint64e_t))
5760  ACCCHK_ASSERT_IS_SIGNED_T(acc_int64e_t)
5761 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
5762 #else
5763  ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64e_t)
5764 #endif
5765 #endif
5766 #if defined(acc_int64l_t)
5767 #if defined(acc_int64e_t)
5768  ACCCHK_ASSERT(sizeof(acc_int64l_t) >= sizeof(acc_int64e_t))
5769 #endif
5770  ACCCHK_ASSERT(sizeof(acc_int64l_t) >= 8)
5771  ACCCHK_ASSERT(sizeof(acc_int64l_t) == ACC_SIZEOF_ACC_INT64L_T)
5772  ACCCHK_ASSERT(sizeof(acc_uint64l_t) >= 8)
5773  ACCCHK_ASSERT(sizeof(acc_int64l_t) == sizeof(acc_uint64l_t))
5774  ACCCHK_ASSERT_IS_SIGNED_T(acc_int64l_t)
5775  ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_int64l_t, 1) << 62) + 1) >> 62) == 1)
5776  ACCCHK_ASSERT(((( ACC_INT64_C(1) << 62) + 1) >> 62) == 1)
5777 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
5778 #else
5779  ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64l_t)
5780  ACCCHK_ASSERT(ACC_UINT64_C(18446744073709551615) > 0)
5781 #endif
5782  ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_uint64l_t, 1) << 63) + 1) >> 63) == 1)
5783  ACCCHK_ASSERT(((( ACC_UINT64_C(1) << 63) + 1) >> 63) == 1)
5784 #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020600ul))
5785  ACCCHK_ASSERT(ACC_INT64_C(9223372036854775807) > ACC_INT64_C(0))
5786 #else
5787  ACCCHK_ASSERT(ACC_INT64_C(9223372036854775807) > 0)
5788 #endif
5789  ACCCHK_ASSERT(ACC_INT64_C(-9223372036854775807) - 1 < 0)
5790  ACCCHK_ASSERT( ACC_INT64_C(9223372036854775807) % ACC_INT32_C(2147483629) == 721)
5791  ACCCHK_ASSERT( ACC_INT64_C(9223372036854775807) % ACC_INT32_C(2147483647) == 1)
5792  ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483629) == 721)
5793  ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483647) == 1)
5794 #endif
5795 #if defined(acc_int64f_t)
5796 #if defined(acc_int64e_t)
5797  ACCCHK_ASSERT(sizeof(acc_int64f_t) >= sizeof(acc_int64e_t))
5798 #endif
5799  ACCCHK_ASSERT(sizeof(acc_int64f_t) >= sizeof(acc_int64l_t))
5800  ACCCHK_ASSERT(sizeof(acc_int64f_t) >= 8)
5801  ACCCHK_ASSERT(sizeof(acc_int64f_t) >= sizeof(acc_int64l_t))
5802  ACCCHK_ASSERT(sizeof(acc_int64f_t) == ACC_SIZEOF_ACC_INT64F_T)
5803  ACCCHK_ASSERT(sizeof(acc_uint64f_t) >= 8)
5804  ACCCHK_ASSERT(sizeof(acc_uint64f_t) >= sizeof(acc_uint64l_t))
5805  ACCCHK_ASSERT(sizeof(acc_int64f_t) == sizeof(acc_uint64f_t))
5806  ACCCHK_ASSERT_IS_SIGNED_T(acc_int64f_t)
5807 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
5808 #else
5809  ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64f_t)
5810 #endif
5811 #endif
5812 #if !defined(__ACC_INTPTR_T_IS_POINTER)
5813  ACCCHK_ASSERT_IS_SIGNED_T(acc_intptr_t)
5814  ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uintptr_t)
5815 #endif
5816  ACCCHK_ASSERT(sizeof(acc_intptr_t) >= sizeof(void *))
5817  ACCCHK_ASSERT(sizeof(acc_intptr_t) == ACC_SIZEOF_ACC_INTPTR_T)
5818  ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(acc_uintptr_t))
5819 #if defined(acc_word_t)
5820  ACCCHK_ASSERT(ACC_WORDSIZE == ACC_SIZEOF_ACC_WORD_T)
5821  ACCCHK_ASSERT_IS_UNSIGNED_T(acc_word_t)
5822  ACCCHK_ASSERT_IS_SIGNED_T(acc_sword_t)
5823  ACCCHK_ASSERT(sizeof(acc_word_t) == ACC_SIZEOF_ACC_WORD_T)
5824  ACCCHK_ASSERT(sizeof(acc_word_t) == sizeof(acc_sword_t))
5825 #endif
5826  ACCCHK_ASSERT(sizeof(acc_int8_t) == 1)
5827  ACCCHK_ASSERT(sizeof(acc_uint8_t) == 1)
5828  ACCCHK_ASSERT(sizeof(acc_int8_t) == sizeof(acc_uint8_t))
5829  ACCCHK_ASSERT_IS_SIGNED_T(acc_int8_t)
5830  ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint8_t)
5831 #if defined(ACC_INT16_C)
5832  ACCCHK_ASSERT(sizeof(ACC_INT16_C(0)) >= 2)
5833  ACCCHK_ASSERT(sizeof(ACC_UINT16_C(0)) >= 2)
5834  ACCCHK_ASSERT((ACC_UINT16_C(0xffff) >> 15) == 1)
5835 #endif
5836 #if defined(ACC_INT32_C)
5837  ACCCHK_ASSERT(sizeof(ACC_INT32_C(0)) >= 4)
5838  ACCCHK_ASSERT(sizeof(ACC_UINT32_C(0)) >= 4)
5839  ACCCHK_ASSERT((ACC_UINT32_C(0xffffffff) >> 31) == 1)
5840 #endif
5841 #if defined(ACC_INT64_C)
5842 #if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0560))
5843 #else
5844  ACCCHK_ASSERT(sizeof(ACC_INT64_C(0)) >= 8)
5845  ACCCHK_ASSERT(sizeof(ACC_UINT64_C(0)) >= 8)
5846 #endif
5847  ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) >> 63) == 1)
5848  ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0) == ACC_UINT64_C(0xffffffffffffffff))
5849  ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0l) == ACC_UINT64_C(0xffffffffffffffff))
5850 #if (ACC_SIZEOF_INT == 4)
5851 # if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
5852 # else
5853  ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & (~0u+0u)) == 0xffffffffu)
5854 # endif
5855 #endif
5856 #if (ACC_SIZEOF_LONG == 4)
5857 # if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
5858 # else
5859  ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & (~0ul+0ul)) == 0xfffffffful)
5860 # endif
5861 #endif
5862 #endif
5863 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
5864  ACCCHK_ASSERT(sizeof(void*) == 2)
5865  ACCCHK_ASSERT(sizeof(ptrdiff_t) == 2)
5866 #elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
5867  ACCCHK_ASSERT(sizeof(void*) == 4)
5868 #endif
5869 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_COMPACT)
5870  ACCCHK_ASSERT(sizeof(void (*)(void)) == 2)
5871 #elif (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE)
5872  ACCCHK_ASSERT(sizeof(void (*)(void)) == 4)
5873 #endif
5874 #if (ACC_ABI_ILP32)
5875  ACCCHK_ASSERT(sizeof(int) == 4)
5876  ACCCHK_ASSERT(sizeof(long) == 4)
5877  ACCCHK_ASSERT(sizeof(void*) == 4)
5878  ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
5879  ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
5880  ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
5881 #endif
5882 #if (ACC_ABI_ILP64)
5883  ACCCHK_ASSERT(sizeof(int) == 8)
5884  ACCCHK_ASSERT(sizeof(long) == 8)
5885  ACCCHK_ASSERT(sizeof(void*) == 8)
5886  ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
5887  ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
5888  ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
5889 #endif
5890 #if (ACC_ABI_IP32L64)
5891  ACCCHK_ASSERT(sizeof(int) == 4)
5892  ACCCHK_ASSERT(sizeof(long) == 8)
5893  ACCCHK_ASSERT(sizeof(void*) == 4)
5894  ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
5895  ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
5896  ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
5897 #endif
5898 #if (ACC_ABI_LLP64)
5899  ACCCHK_ASSERT(sizeof(int) == 4)
5900  ACCCHK_ASSERT(sizeof(long) == 4)
5901  ACCCHK_ASSERT(sizeof(void*) == 8)
5902  ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
5903  ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
5904  ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
5905 #endif
5906 #if (ACC_ABI_LP32)
5907  ACCCHK_ASSERT(sizeof(int) == 2)
5908  ACCCHK_ASSERT(sizeof(long) == 4)
5909  ACCCHK_ASSERT(sizeof(void*) == 4)
5910  ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
5911 #endif
5912 #if (ACC_ABI_LP64)
5913  ACCCHK_ASSERT(sizeof(int) == 4)
5914  ACCCHK_ASSERT(sizeof(long) == 8)
5915  ACCCHK_ASSERT(sizeof(void*) == 8)
5916  ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
5917  ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
5918  ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
5919 #endif
5920 #if (ACC_ABI_IP32W64)
5921  ACCCHK_ASSERT(sizeof(int) == 4)
5922  ACCCHK_ASSERT(sizeof(void*) == 4)
5923  ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
5924  ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
5925  ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
5926  ACCCHK_ASSERT(ACC_WORDSIZE == 8)
5927 #endif
5928 #if (ACC_ARCH_I086)
5929  ACCCHK_ASSERT(sizeof(size_t) == 2)
5930  ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
5931 #elif (ACC_ARCH_I386 || ACC_ARCH_M68K)
5932  ACCCHK_ASSERT(sizeof(size_t) == 4)
5933  ACCCHK_ASSERT(sizeof(ptrdiff_t) == 4)
5934  ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
5935 #endif
5936 #if (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_WIN32)
5937  ACCCHK_ASSERT(sizeof(size_t) == 4)
5938  ACCCHK_ASSERT(sizeof(ptrdiff_t) == 4)
5939  ACCCHK_ASSERT(sizeof(void (*)(void)) == 4)
5940 #elif (ACC_OS_WIN64)
5941  ACCCHK_ASSERT(sizeof(size_t) == 8)
5942  ACCCHK_ASSERT(sizeof(ptrdiff_t) == 8)
5943  ACCCHK_ASSERT(sizeof(void (*)(void)) == 8)
5944 #endif
5945 #if (ACC_CC_NDPC)
5946 #elif (ACC_SIZEOF_INT > 1)
5947  ACCCHK_ASSERT( ACC_STATIC_CAST(int, ACC_STATIC_CAST(unsigned char, ACC_STATIC_CAST(signed char, -1))) == 255)
5948 #endif
5949 #if defined(ACCCHK_CFG_PEDANTIC)
5950 #if (ACC_CC_KEILC)
5951 #elif (ACC_CC_NDPC)
5952 #elif !(ACC_BROKEN_INTEGRAL_PROMOTION) && (ACC_SIZEOF_INT > 1)
5953  ACCCHK_ASSERT( ((ACC_STATIC_CAST(unsigned char, 128)) << ACC_STATIC_CAST(int, (8*sizeof(int)-8))) < 0)
5954 #endif
5955 #endif
5956 #if defined(ACCCHK_CFG_PEDANTIC)
5957 #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560))
5958 # pragma option pop
5959 #endif
5960 #endif
5961 #endif
5962 #if defined(ACC_WANT_ACCLIB_UA)
5963 # undef ACC_WANT_ACCLIB_UA
5964 #define __ACCLIB_UA_CH_INCLUDED 1
5965 #if !defined(ACCLIB_PUBLIC)
5966 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5967 #endif
5968 ACCLIB_PUBLIC(unsigned, acc_ua_get_be16) (const acc_hvoid_p p)
5969 {
5970 #if defined(ACC_UA_GET_BE16)
5971  return ACC_UA_GET_BE16(p);
5972 #else
5973  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
5974  return ACC_ICONV(unsigned, b[1]) | (ACC_ICONV(unsigned, b[0]) << 8);
5975 #endif
5976 }
5977 ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_be24) (const acc_hvoid_p p)
5978 {
5979  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
5980  return ACC_ICONV(acc_uint32l_t, b[2]) | (ACC_ICONV(acc_uint32l_t, b[1]) << 8) | (ACC_ICONV(acc_uint32l_t, b[0]) << 16);
5981 }
5982 ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_be32) (const acc_hvoid_p p)
5983 {
5984 #if defined(ACC_UA_GET_BE32)
5985  return ACC_UA_GET_BE32(p);
5986 #else
5987  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
5988  return ACC_ICONV(acc_uint32l_t, b[3]) | (ACC_ICONV(acc_uint32l_t, b[2]) << 8) | (ACC_ICONV(acc_uint32l_t, b[1]) << 16) | (ACC_ICONV(acc_uint32l_t, b[0]) << 24);
5989 #endif
5990 }
5991 ACCLIB_PUBLIC(void, acc_ua_set_be16) (acc_hvoid_p p, unsigned v)
5992 {
5993 #if defined(ACC_UA_SET_BE16)
5994  ACC_UA_SET_BE16(p, v);
5995 #else
5996  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
5997  b[1] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
5998  b[0] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
5999 #endif
6000 }
6001 ACCLIB_PUBLIC(void, acc_ua_set_be24) (acc_hvoid_p p, acc_uint32l_t v)
6002 {
6003  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
6004  b[2] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
6005  b[1] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
6006  b[0] = ACC_ICONV(unsigned char, (v >> 16) & 0xff);
6007 }
6008 ACCLIB_PUBLIC(void, acc_ua_set_be32) (acc_hvoid_p p, acc_uint32l_t v)
6009 {
6010 #if defined(ACC_UA_SET_BE32)
6011  ACC_UA_SET_BE32(p, v);
6012 #else
6013  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
6014  b[3] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
6015  b[2] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
6016  b[1] = ACC_ICONV(unsigned char, (v >> 16) & 0xff);
6017  b[0] = ACC_ICONV(unsigned char, (v >> 24) & 0xff);
6018 #endif
6019 }
6020 ACCLIB_PUBLIC(unsigned, acc_ua_get_le16) (const acc_hvoid_p p)
6021 {
6022 #if defined(ACC_UA_GET_LE16)
6023  return ACC_UA_GET_LE16(p);
6024 #else
6025  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
6026  return ACC_ICONV(unsigned, b[0]) | (ACC_ICONV(unsigned, b[1]) << 8);
6027 #endif
6028 }
6029 ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le24) (const acc_hvoid_p p)
6030 {
6031  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
6032  return ACC_ICONV(acc_uint32l_t, b[0]) | (ACC_ICONV(acc_uint32l_t, b[1]) << 8) | (ACC_ICONV(acc_uint32l_t, b[2]) << 16);
6033 }
6034 ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le32) (const acc_hvoid_p p)
6035 {
6036 #if defined(ACC_UA_GET_LE32)
6037  return ACC_UA_GET_LE32(p);
6038 #else
6039  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
6040  return ACC_ICONV(acc_uint32l_t, b[0]) | (ACC_ICONV(acc_uint32l_t, b[1]) << 8) | (ACC_ICONV(acc_uint32l_t, b[2]) << 16) | (ACC_ICONV(acc_uint32l_t, b[3]) << 24);
6041 #endif
6042 }
6043 ACCLIB_PUBLIC(void, acc_ua_set_le16) (acc_hvoid_p p, unsigned v)
6044 {
6045 #if defined(ACC_UA_SET_LE16)
6046  ACC_UA_SET_LE16(p, v);
6047 #else
6048  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
6049  b[0] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
6050  b[1] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
6051 #endif
6052 }
6053 ACCLIB_PUBLIC(void, acc_ua_set_le24) (acc_hvoid_p p, acc_uint32l_t v)
6054 {
6055  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
6056  b[0] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
6057  b[1] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
6058  b[2] = ACC_ICONV(unsigned char, (v >> 16) & 0xff);
6059 }
6060 ACCLIB_PUBLIC(void, acc_ua_set_le32) (acc_hvoid_p p, acc_uint32l_t v)
6061 {
6062 #if defined(ACC_UA_SET_LE32)
6063  ACC_UA_SET_LE32(p, v);
6064 #else
6065  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
6066  b[0] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
6067  b[1] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
6068  b[2] = ACC_ICONV(unsigned char, (v >> 16) & 0xff);
6069  b[3] = ACC_ICONV(unsigned char, (v >> 24) & 0xff);
6070 #endif
6071 }
6072 #if defined(acc_int64l_t)
6073 ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_be64) (const acc_hvoid_p p)
6074 {
6075 #if defined(ACC_UA_GET_BE64)
6076  return ACC_UA_GET_BE64(p);
6077 #elif defined(ACC_UA_GET_BE32)
6078  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
6079  acc_uint32e_t v0, v1;
6080  v1 = ACC_UA_GET_BE32(b + 0);
6081  v0 = ACC_UA_GET_BE32(b + 4);
6082  return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
6083 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
6084  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
6085  return (ACC_ICONV(acc_uint64l_t, b[7])) | (ACC_ICONV(acc_uint64l_t, b[6]) << 8) | (ACC_ICONV(acc_uint64l_t, b[5]) << 16) | (ACC_ICONV(acc_uint64l_t, b[4]) << 24) | (ACC_ICONV(acc_uint64l_t, b[3]) << 32) | (ACC_ICONV(acc_uint64l_t, b[2]) << 40) | (ACC_ICONV(acc_uint64l_t, b[1]) << 48) | (ACC_ICONV(acc_uint64l_t, b[0]) << 56);
6086 #else
6087  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
6088  acc_uint32l_t v0, v1;
6089  v1 = ACC_ICONV(acc_uint32l_t, b[3]) | (ACC_ICONV(acc_uint32l_t, b[2]) << 8) | (ACC_ICONV(acc_uint32l_t, b[1]) << 16) | (ACC_ICONV(acc_uint32l_t, b[0]) << 24);
6090  b += 4;
6091  v0 = ACC_ICONV(acc_uint32l_t, b[3]) | (ACC_ICONV(acc_uint32l_t, b[2]) << 8) | (ACC_ICONV(acc_uint32l_t, b[1]) << 16) | (ACC_ICONV(acc_uint32l_t, b[0]) << 24);
6092  return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
6093 #endif
6094 }
6095 ACCLIB_PUBLIC(void, acc_ua_set_be64) (acc_hvoid_p p, acc_uint64l_t v)
6096 {
6097 #if defined(ACC_UA_SET_BE64)
6098  ACC_UA_SET_BE64(p, v);
6099 #elif defined(ACC_UA_SET_BE32)
6100  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
6101  ACC_UA_SET_BE32(b + 4, v);
6102  v >>= 32;
6103  ACC_UA_SET_BE32(b + 0, v);
6104 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
6105  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
6106  b[7] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6107  b[6] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6108  b[5] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6109  b[4] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6110  b[3] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6111  b[2] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6112  b[1] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6113  b[0] = ACC_ITRUNC(unsigned char, v);
6114 #else
6115  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
6116  acc_uint32l_t x;
6117  x = ACC_ITRUNC(acc_uint32l_t, v);
6118  b[7] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6119  b[6] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6120  b[5] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6121  b[4] = ACC_ITRUNC(unsigned char, x);
6122  v >>= 32;
6123  x = ACC_ITRUNC(acc_uint32l_t, v);
6124  b[3] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6125  b[2] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6126  b[1] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6127  b[0] = ACC_ITRUNC(unsigned char, x);
6128 #endif
6129 }
6130 #endif
6131 #if defined(acc_int64l_t)
6132 ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_le64) (const acc_hvoid_p p)
6133 {
6134 #if defined(ACC_UA_GET_LE64)
6135  return ACC_UA_GET_LE64(p);
6136 #elif defined(ACC_UA_GET_LE32)
6137  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
6138  acc_uint32e_t v0, v1;
6139  v0 = ACC_UA_GET_LE32(b + 0);
6140  v1 = ACC_UA_GET_LE32(b + 4);
6141  return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
6142 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
6143  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
6144  return ACC_ICONV(acc_uint64l_t, b[0]) | (ACC_ICONV(acc_uint64l_t, b[1]) << 8) | (ACC_ICONV(acc_uint64l_t, b[2]) << 16) | (ACC_ICONV(acc_uint64l_t, b[3]) << 24) | (ACC_ICONV(acc_uint64l_t, b[4]) << 32) | (ACC_ICONV(acc_uint64l_t, b[5]) << 40) | (ACC_ICONV(acc_uint64l_t, b[6]) << 48) | (ACC_ICONV(acc_uint64l_t, b[7]) << 56);
6145 #else
6146  const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
6147  acc_uint32l_t v0, v1;
6148  v0 = ACC_ICONV(acc_uint32l_t, b[0]) | (ACC_ICONV(acc_uint32l_t, b[1]) << 8) | (ACC_ICONV(acc_uint32l_t, b[2]) << 16) | (ACC_ICONV(acc_uint32l_t, b[3]) << 24);
6149  b += 4;
6150  v1 = ACC_ICONV(acc_uint32l_t, b[0]) | (ACC_ICONV(acc_uint32l_t, b[1]) << 8) | (ACC_ICONV(acc_uint32l_t, b[2]) << 16) | (ACC_ICONV(acc_uint32l_t, b[3]) << 24);
6151  return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
6152 #endif
6153 }
6154 ACCLIB_PUBLIC(void, acc_ua_set_le64) (acc_hvoid_p p, acc_uint64l_t v)
6155 {
6156 #if defined(ACC_UA_SET_LE64)
6157  ACC_UA_SET_LE64(p, v);
6158 #elif defined(ACC_UA_SET_LE32)
6159  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
6160  ACC_UA_SET_LE32(b + 0, v);
6161  v >>= 32;
6162  ACC_UA_SET_LE32(b + 4, v);
6163 #elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
6164  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
6165  b[0] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6166  b[1] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6167  b[2] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6168  b[3] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6169  b[4] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6170  b[5] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6171  b[6] = ACC_ITRUNC(unsigned char, v); v >>= 8;
6172  b[7] = ACC_ITRUNC(unsigned char, v);
6173 #else
6174  acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
6175  acc_uint32l_t x;
6176  x = ACC_ITRUNC(acc_uint32l_t, v);
6177  b[0] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6178  b[1] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6179  b[2] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6180  b[3] = ACC_ITRUNC(unsigned char, x);
6181  v >>= 32;
6182  x = ACC_ITRUNC(acc_uint32l_t, v);
6183  b[4] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6184  b[5] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6185  b[6] = ACC_ITRUNC(unsigned char, x); x >>= 8;
6186  b[7] = ACC_ITRUNC(unsigned char, x);
6187 #endif
6188 }
6189 #endif
6190 #endif
6191 #if defined(ACC_WANT_ACCLIB_VGET)
6192 # undef ACC_WANT_ACCLIB_VGET
6193 #define __ACCLIB_VGET_CH_INCLUDED 1
6194 #if !defined(ACCLIB_PUBLIC)
6195 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
6196 #endif
6197 #if !defined(ACCLIB_PUBLIC_NOINLINE)
6198 # if !defined(__acc_noinline)
6199 # define ACCLIB_PUBLIC_NOINLINE(r,f) r __ACCLIB_FUNCNAME(f)
6200 # elif (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x030400ul) || ACC_CC_LLVM)
6201 # define ACCLIB_PUBLIC_NOINLINE(r,f) __acc_noinline __attribute__((__used__)) r __ACCLIB_FUNCNAME(f)
6202 # else
6203 # define ACCLIB_PUBLIC_NOINLINE(r,f) __acc_noinline r __ACCLIB_FUNCNAME(f)
6204 # endif
6205 #endif
6206 extern void* volatile acc_vget_ptr__;
6207 #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x030400ul) || ACC_CC_LLVM)
6208 void* volatile __attribute__((__used__)) acc_vget_ptr__ = ACC_STATIC_CAST(void *, 0);
6209 #else
6210 void* volatile acc_vget_ptr__ = ACC_STATIC_CAST(void *, 0);
6211 #endif
6212 #ifndef __ACCLIB_VGET_BODY
6213 #define __ACCLIB_VGET_BODY(T) \
6214  if __acc_unlikely(acc_vget_ptr__) { \
6215  typedef T __acc_may_alias TT; \
6216  unsigned char e; expr &= 255; e = ACC_STATIC_CAST(unsigned char, expr); \
6217  * ACC_STATIC_CAST(TT *, acc_vget_ptr__) = v; \
6218  * ACC_STATIC_CAST(unsigned char *, acc_vget_ptr__) = e; \
6219  v = * ACC_STATIC_CAST(TT *, acc_vget_ptr__); \
6220  } \
6221  return v;
6222 #endif
6223 ACCLIB_PUBLIC_NOINLINE(short, acc_vget_short) (short v, int expr)
6224 {
6225  __ACCLIB_VGET_BODY(short)
6226 }
6227 ACCLIB_PUBLIC_NOINLINE(int, acc_vget_int) (int v, int expr)
6228 {
6229  __ACCLIB_VGET_BODY(int)
6230 }
6231 ACCLIB_PUBLIC_NOINLINE(long, acc_vget_long) (long v, int expr)
6232 {
6233  __ACCLIB_VGET_BODY(long)
6234 }
6235 #if defined(acc_int64l_t)
6236 ACCLIB_PUBLIC_NOINLINE(acc_int64l_t, acc_vget_acc_int64l_t) (acc_int64l_t v, int expr)
6237 {
6238  __ACCLIB_VGET_BODY(acc_int64l_t)
6239 }
6240 #endif
6241 ACCLIB_PUBLIC_NOINLINE(acc_hsize_t, acc_vget_acc_hsize_t) (acc_hsize_t v, int expr)
6242 {
6243  __ACCLIB_VGET_BODY(acc_hsize_t)
6244 }
6245 #if !(ACC_CFG_NO_DOUBLE)
6246 ACCLIB_PUBLIC_NOINLINE(double, acc_vget_double) (double v, int expr)
6247 {
6248  __ACCLIB_VGET_BODY(double)
6249 }
6250 #endif
6251 ACCLIB_PUBLIC_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_p) (acc_hvoid_p v, int expr)
6252 {
6253  __ACCLIB_VGET_BODY(acc_hvoid_p)
6254 }
6255 #if (ACC_ARCH_I086 && ACC_CC_TURBOC && (__TURBOC__ == 0x0295)) && !defined(__cplusplus)
6256 ACCLIB_PUBLIC_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p vv, int expr)
6257 {
6258  acc_hvoid_p v = (acc_hvoid_p) vv;
6259  __ACCLIB_VGET_BODY(acc_hvoid_p)
6260 }
6261 #else
6262 ACCLIB_PUBLIC_NOINLINE(const acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p v, int expr)
6263 {
6264  __ACCLIB_VGET_BODY(const acc_hvoid_p)
6265 }
6266 #endif
6267 #endif
6268 #if defined(ACC_WANT_ACCLIB_HMEMCPY)
6269 # undef ACC_WANT_ACCLIB_HMEMCPY
6270 #define __ACCLIB_HMEMCPY_CH_INCLUDED 1
6271 #if !defined(ACCLIB_PUBLIC)
6272 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
6273 #endif
6274 ACCLIB_PUBLIC(int, acc_hmemcmp) (const acc_hvoid_p s1, const acc_hvoid_p s2, acc_hsize_t len)
6275 {
6276 #if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCMP)
6277  const acc_hbyte_p p1 = ACC_STATIC_CAST(const acc_hbyte_p, s1);
6278  const acc_hbyte_p p2 = ACC_STATIC_CAST(const acc_hbyte_p, s2);
6279  if __acc_likely(len > 0) do
6280  {
6281  int d = *p1 - *p2;
6282  if (d != 0)
6283  return d;
6284  p1++; p2++;
6285  } while __acc_likely(--len > 0);
6286  return 0;
6287 #else
6288  return memcmp(s1, s2, len);
6289 #endif
6290 }
6291 ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemcpy) (acc_hvoid_p dest, const acc_hvoid_p src, acc_hsize_t len)
6292 {
6293 #if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCPY)
6294  acc_hbyte_p p1 = ACC_STATIC_CAST(acc_hbyte_p, dest);
6295  const acc_hbyte_p p2 = ACC_STATIC_CAST(const acc_hbyte_p, src);
6296  if (!(len > 0) || p1 == p2)
6297  return dest;
6298  do
6299  *p1++ = *p2++;
6300  while __acc_likely(--len > 0);
6301  return dest;
6302 #else
6303  return memcpy(dest, src, len);
6304 #endif
6305 }
6306 ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemmove) (acc_hvoid_p dest, const acc_hvoid_p src, acc_hsize_t len)
6307 {
6308 #if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMMOVE)
6309  acc_hbyte_p p1 = ACC_STATIC_CAST(acc_hbyte_p, dest);
6310  const acc_hbyte_p p2 = ACC_STATIC_CAST(const acc_hbyte_p, src);
6311  if (!(len > 0) || p1 == p2)
6312  return dest;
6313  if (p1 < p2)
6314  {
6315  do
6316  *p1++ = *p2++;
6317  while __acc_likely(--len > 0);
6318  }
6319  else
6320  {
6321  p1 += len;
6322  p2 += len;
6323  do
6324  *--p1 = *--p2;
6325  while __acc_likely(--len > 0);
6326  }
6327  return dest;
6328 #else
6329  return memmove(dest, src, len);
6330 #endif
6331 }
6332 ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemset) (acc_hvoid_p s, int cc, acc_hsize_t len)
6333 {
6334 #if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMSET)
6335  acc_hbyte_p p = ACC_STATIC_CAST(acc_hbyte_p, s);
6336  unsigned char c = ACC_ITRUNC(unsigned char, cc);
6337  if __acc_likely(len > 0) do
6338  *p++ = c;
6339  while __acc_likely(--len > 0);
6340  return s;
6341 #else
6342  return memset(s, cc, len);
6343 #endif
6344 }
6345 #endif
6346 #if defined(ACC_WANT_ACCLIB_RAND)
6347 # undef ACC_WANT_ACCLIB_RAND
6348 #define __ACCLIB_RAND_CH_INCLUDED 1
6349 #if !defined(ACCLIB_PUBLIC)
6350 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
6351 #endif
6352 ACCLIB_PUBLIC(void, acc_srand31) (acc_rand31_p r, acc_uint32l_t seed)
6353 {
6354  r->seed = seed & ACC_UINT32_C(0xffffffff);
6355 }
6356 ACCLIB_PUBLIC(acc_uint32l_t, acc_rand31) (acc_rand31_p r)
6357 {
6358  r->seed = r->seed * ACC_UINT32_C(1103515245) + 12345;
6359  r->seed &= ACC_UINT32_C(0x7fffffff);
6360  return r->seed;
6361 }
6362 #if defined(acc_int64l_t)
6363 ACCLIB_PUBLIC(void, acc_srand48) (acc_rand48_p r, acc_uint32l_t seed)
6364 {
6365  r->seed = seed & ACC_UINT32_C(0xffffffff);
6366  r->seed <<= 16; r->seed |= 0x330e;
6367 }
6368 ACCLIB_PUBLIC(acc_uint32l_t, acc_rand48) (acc_rand48_p r)
6369 {
6370  acc_uint64l_t a;
6371  r->seed = r->seed * ACC_UINT64_C(25214903917) + 11;
6372  r->seed &= ACC_UINT64_C(0xffffffffffff);
6373  a = r->seed >> 17;
6374  return ACC_STATIC_CAST(acc_uint32l_t, a);
6375 }
6376 ACCLIB_PUBLIC(acc_uint32l_t, acc_rand48_r32) (acc_rand48_p r)
6377 {
6378  acc_uint64l_t a;
6379  r->seed = r->seed * ACC_UINT64_C(25214903917) + 11;
6380  r->seed &= ACC_UINT64_C(0xffffffffffff);
6381  a = r->seed >> 16;
6382  return ACC_STATIC_CAST(acc_uint32l_t, a);
6383 }
6384 #endif
6385 #if defined(acc_int64l_t)
6386 ACCLIB_PUBLIC(void, acc_srand64) (acc_rand64_p r, acc_uint64l_t seed)
6387 {
6388  r->seed = seed & ACC_UINT64_C(0xffffffffffffffff);
6389 }
6390 ACCLIB_PUBLIC(acc_uint32l_t, acc_rand64) (acc_rand64_p r)
6391 {
6392  acc_uint64l_t a;
6393  r->seed = r->seed * ACC_UINT64_C(6364136223846793005) + 1;
6394 #if (ACC_SIZEOF_ACC_INT64L_T > 8)
6395  r->seed &= ACC_UINT64_C(0xffffffffffffffff);
6396 #endif
6397  a = r->seed >> 33;
6398  return ACC_STATIC_CAST(acc_uint32l_t, a);
6399 }
6400 ACCLIB_PUBLIC(acc_uint32l_t, acc_rand64_r32) (acc_rand64_p r)
6401 {
6402  acc_uint64l_t a;
6403  r->seed = r->seed * ACC_UINT64_C(6364136223846793005) + 1;
6404 #if (ACC_SIZEOF_ACC_INT64L_T > 8)
6405  r->seed &= ACC_UINT64_C(0xffffffffffffffff);
6406 #endif
6407  a = r->seed >> 32;
6408  return ACC_STATIC_CAST(acc_uint32l_t, a);
6409 }
6410 #endif
6411 ACCLIB_PUBLIC(void, acc_srandmt) (acc_randmt_p r, acc_uint32l_t seed)
6412 {
6413  unsigned i = 0;
6414  do {
6415  r->s[i++] = (seed &= ACC_UINT32_C(0xffffffff));
6416  seed ^= seed >> 30;
6417  seed = seed * ACC_UINT32_C(0x6c078965) + i;
6418  } while (i != 624);
6419  r->n = i;
6420 }
6421 ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt) (acc_randmt_p r)
6422 {
6423  return (__ACCLIB_FUNCNAME(acc_randmt_r32)(r)) >> 1;
6424 }
6425 ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt_r32) (acc_randmt_p r)
6426 {
6427  acc_uint32l_t v;
6428  if __acc_unlikely(r->n == 624) {
6429  unsigned i = 0, j;
6430  r->n = 0;
6431  do {
6432  j = i - 623; if (ACC_STATIC_CAST(int, j) < 0) j += 624;
6433  v = (r->s[i] & ACC_UINT32_C(0x80000000)) ^ (r->s[j] & ACC_UINT32_C(0x7fffffff));
6434  j = i - 227; if (ACC_STATIC_CAST(int, j) < 0) j += 624;
6435  r->s[i] = r->s[j] ^ (v >> 1);
6436  if (v & 1) r->s[i] ^= ACC_UINT32_C(0x9908b0df);
6437  } while (++i != 624);
6438  }
6439  { unsigned i = r->n++; v = r->s[i]; }
6440  v ^= v >> 11; v ^= (v & ACC_UINT32_C(0x013a58ad)) << 7;
6441  v ^= (v & ACC_UINT32_C(0x0001df8c)) << 15; v ^= v >> 18;
6442  return v;
6443 }
6444 #if defined(acc_int64l_t)
6445 ACCLIB_PUBLIC(void, acc_srandmt64) (acc_randmt64_p r, acc_uint64l_t seed)
6446 {
6447  unsigned i = 0;
6448  do {
6449  r->s[i++] = (seed &= ACC_UINT64_C(0xffffffffffffffff));
6450  seed ^= seed >> 62;
6451  seed = seed * ACC_UINT64_C(0x5851f42d4c957f2d) + i;
6452  } while (i != 312);
6453  r->n = i;
6454 }
6455 #if 0
6456 ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt64) (acc_randmt64_p r)
6457 {
6458  acc_uint64l_t v;
6459  v = (__ACCLIB_FUNCNAME(acc_randmt64_r64)(r)) >> 33;
6460  return ACC_STATIC_CAST(acc_uint32l_t, v);
6461 }
6462 #endif
6463 ACCLIB_PUBLIC(acc_uint64l_t, acc_randmt64_r64) (acc_randmt64_p r)
6464 {
6465  acc_uint64l_t v;
6466  if __acc_unlikely(r->n == 312) {
6467  unsigned i = 0, j;
6468  r->n = 0;
6469  do {
6470  j = i - 311; if (ACC_STATIC_CAST(int, j) < 0) j += 312;
6471  v = (r->s[i] & ACC_UINT64_C(0xffffffff80000000)) ^ (r->s[j] & ACC_UINT64_C(0x7fffffff));
6472  j = i - 156; if (ACC_STATIC_CAST(int, j) < 0) j += 312;
6473  r->s[i] = r->s[j] ^ (v >> 1);
6474  if (v & 1) r->s[i] ^= ACC_UINT64_C(0xb5026f5aa96619e9);
6475  } while (++i != 312);
6476  }
6477  { unsigned i = r->n++; v = r->s[i]; }
6478  v ^= (v & ACC_UINT64_C(0xaaaaaaaaa0000000)) >> 29;
6479  v ^= (v & ACC_UINT64_C(0x38eb3ffff6d3)) << 17;
6480  v ^= (v & ACC_UINT64_C(0x7ffbf77)) << 37;
6481  return v ^ (v >> 43);
6482 }
6483 #endif
6484 #endif
6485 #if defined(ACC_WANT_ACCLIB_RDTSC)
6486 # undef ACC_WANT_ACCLIB_RDTSC
6487 #define __ACCLIB_RDTSC_CH_INCLUDED 1
6488 #if !defined(ACCLIB_PUBLIC)
6489 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
6490 #endif
6491 #if defined(acc_int32e_t)
6492 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
6493 # pragma warn(push)
6494 # pragma warn(disable:2007)
6495 #endif
6496 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
6497 #if (ACC_ARCH_AMD64 && ACC_CC_INTELC)
6498 # define __ACCLIB_RDTSC_REGS : : "c" (t) : "memory", "rax", "rdx"
6499 #elif (ACC_ARCH_AMD64)
6500 # define __ACCLIB_RDTSC_REGS : : "c" (t) : "cc", "memory", "rax", "rdx"
6501 #elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
6502 # define __ACCLIB_RDTSC_REGS : : "c" (t) : "ax", "dx"
6503 #elif (ACC_ARCH_I386 && ACC_CC_INTELC)
6504 # define __ACCLIB_RDTSC_REGS : : "c" (t) : "memory", "eax", "edx"
6505 #else
6506 # define __ACCLIB_RDTSC_REGS : : "c" (t) : "cc", "memory", "eax", "edx"
6507 #endif
6508 #endif
6509 ACCLIB_PUBLIC(int, acc_tsc_read) (acc_uint32e_t* t)
6510 {
6511 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
6512  __asm__ __volatile__(
6513  "clc \n" ".byte 0x0f,0x31\n"
6514  "movl %%eax,(%0)\n" "movl %%edx,4(%0)\n"
6515  __ACCLIB_RDTSC_REGS
6516  );
6517  return 0;
6518 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
6519  ACC_UNUSED(t);
6520  __asm {
6521  mov ecx, t
6522  clc
6523 # if (ACC_CC_MSC && (_MSC_VER < 1200))
6524  _emit 0x0f
6525  _emit 0x31
6526 # else
6527  rdtsc
6528 # endif
6529  mov [ecx], eax
6530  mov [ecx+4], edx
6531  }
6532  return 0;
6533 #else
6534  t[0] = t[1] = 0; return -1;
6535 #endif
6536 }
6537 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
6538 # pragma warn(pop)
6539 #endif
6540 #endif
6541 #endif
6542 #if defined(ACC_WANT_ACCLIB_DOSALLOC)
6543 # undef ACC_WANT_ACCLIB_DOSALLOC
6544 #define __ACCLIB_DOSALLOC_CH_INCLUDED 1
6545 #if !defined(ACCLIB_PUBLIC)
6546 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
6547 #endif
6548 #if (ACC_OS_OS216)
6549 ACC_EXTERN_C unsigned short __far __pascal DosAllocHuge(unsigned short, unsigned short, unsigned short __far *, unsigned short, unsigned short);
6550 ACC_EXTERN_C unsigned short __far __pascal DosFreeSeg(unsigned short);
6551 #endif
6552 #if (ACC_OS_DOS16 || ACC_OS_WIN16)
6553 #if !(ACC_CC_AZTECC)
6554 ACCLIB_PUBLIC(void __far*, acc_dos_alloc) (unsigned long size)
6555 {
6556  void __far* p = 0;
6557  union REGS ri, ro;
6558  if ((long)size <= 0)
6559  return p;
6560  size = (size + 15) >> 4;
6561  if (size > 0xffffu)
6562  return p;
6563  ri.x.ax = 0x4800;
6564  ri.x.bx = (unsigned short) size;
6565  int86(0x21, &ri, &ro);
6566  if ((ro.x.cflag & 1) == 0)
6567  p = (void __far*) ACC_PTR_MK_FP(ro.x.ax, 0);
6568  return p;
6569 }
6570 ACCLIB_PUBLIC(int, acc_dos_free) (void __far* p)
6571 {
6572  union REGS ri, ro;
6573  struct SREGS rs;
6574  if (!p)
6575  return 0;
6576  if (ACC_PTR_FP_OFF(p) != 0)
6577  return -1;
6578  segread(&rs);
6579  ri.x.ax = 0x4900;
6580  rs.es = ACC_PTR_FP_SEG(p);
6581  int86x(0x21, &ri, &ro, &rs);
6582  if (ro.x.cflag & 1)
6583  return -1;
6584  return 0;
6585 }
6586 #endif
6587 #endif
6588 #if (ACC_OS_OS216)
6589 ACCLIB_PUBLIC(void __far*, acc_dos_alloc) (unsigned long size)
6590 {
6591  void __far* p = 0;
6592  unsigned short sel = 0;
6593  if ((long)size <= 0)
6594  return p;
6595  if (DosAllocHuge((unsigned short)(size >> 16), (unsigned short)size, &sel, 0, 0) == 0)
6596  p = (void __far*) ACC_PTR_MK_FP(sel, 0);
6597  return p;
6598 }
6599 ACCLIB_PUBLIC(int, acc_dos_free) (void __far* p)
6600 {
6601  if (!p)
6602  return 0;
6603  if (ACC_PTR_FP_OFF(p) != 0)
6604  return -1;
6605  if (DosFreeSeg(ACC_PTR_FP_SEG(p)) != 0)
6606  return -1;
6607  return 0;
6608 }
6609 #endif
6610 #endif
6611 #if defined(ACC_WANT_ACCLIB_GETOPT)
6612 # undef ACC_WANT_ACCLIB_GETOPT
6613 #define __ACCLIB_GETOPT_CH_INCLUDED 1
6614 #if !defined(ACCLIB_PUBLIC)
6615 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
6616 #endif
6617 ACCLIB_PUBLIC(void, acc_getopt_init) (acc_getopt_p g,
6618  int start_argc, int argc, char** argv)
6619 {
6620  memset(g, 0, sizeof(*g));
6621  g->optind = start_argc;
6622  g->argc = argc; g->argv = argv;
6623  g->optopt = -1;
6624 }
6625 static int __ACCLIB_FUNCNAME(acc_getopt_rotate) (char** p, int first, int middle, int last)
6626 {
6627  int i = middle, n = middle - first;
6628  if (first >= middle || middle >= last) return 0;
6629  for (;;)
6630  {
6631  char* t = p[first]; p[first] = p[i]; p[i] = t;
6632  if (++first == middle)
6633  {
6634  if (++i == last) break;
6635  middle = i;
6636  }
6637  else if (++i == last)
6638  i = middle;
6639  }
6640  return n;
6641 }
6642 static int __ACCLIB_FUNCNAME(acc_getopt_perror) (acc_getopt_p g, int ret, const char* f, ...)
6643 {
6644  if (g->opterr)
6645  {
6646 #if (HAVE_STDARG_H)
6647  struct { va_list ap; } s;
6648  va_start(s.ap, f);
6649  g->opterr(g, f, &s);
6650  va_end(s.ap);
6651 #else
6652  g->opterr(g, f, NULL);
6653 #endif
6654  }
6655  ++g->errcount;
6656  return ret;
6657 }
6658 ACCLIB_PUBLIC(int, acc_getopt) (acc_getopt_p g,
6659  const char* shortopts,
6660  const acc_getopt_longopt_p longopts,
6661  int* longind)
6662 {
6663 #define pe __ACCLIB_FUNCNAME(acc_getopt_perror)
6664  int ordering = ACC_GETOPT_PERMUTE;
6665  int missing_arg_ret = g->bad_option;
6666  char* a;
6667  if (shortopts)
6668  {
6669  if (*shortopts == '-' || *shortopts == '+')
6670  ordering = *shortopts++ == '-' ? ACC_GETOPT_RETURN_IN_ORDER : ACC_GETOPT_REQUIRE_ORDER;
6671  if (*shortopts == ':')
6672  missing_arg_ret = *shortopts++;
6673  }
6674  g->optarg = NULL;
6675  if (g->optopt == -1)
6676  g->optopt = g->bad_option;
6677  if (longind)
6678  *longind = -1;
6679  if (g->eof)
6680  return -1;
6681  if (g->shortpos)
6682  goto acc_label_next_shortopt;
6683  g->optind -= __ACCLIB_FUNCNAME(acc_getopt_rotate)(g->argv, g->pending_rotate_first, g->pending_rotate_middle, g->optind);
6684  g->pending_rotate_first = g->pending_rotate_middle = g->optind;
6685  if (ordering == ACC_GETOPT_PERMUTE)
6686  {
6687  while (g->optind < g->argc && !(g->argv[g->optind][0] == '-' && g->argv[g->optind][1]))
6688  ++g->optind;
6689  g->pending_rotate_middle = g->optind;
6690  }
6691  if (g->optind >= g->argc)
6692  {
6693  g->optind = g->pending_rotate_first;
6694  goto acc_label_eof;
6695  }
6696  a = g->argv[g->optind];
6697  if (a[0] == '-' && a[1] == '-')
6698  {
6699  size_t l = 0;
6700  const acc_getopt_longopt_p o;
6701  const acc_getopt_longopt_p o1 = NULL;
6702  const acc_getopt_longopt_p o2 = NULL;
6703  int need_exact = 0;
6704  ++g->optind;
6705  if (!a[2])
6706  goto acc_label_eof;
6707  for (a += 2; a[l] && a[l] != '=' && a[l] != '#'; )
6708  ++l;
6709  for (o = longopts; l && o && o->name; ++o)
6710  {
6711  if (strncmp(a, o->name, l) != 0)
6712  continue;
6713  if (!o->name[l])
6714  goto acc_label_found_o;
6715  need_exact |= o->has_arg & ACC_GETOPT_EXACT_ARG;
6716  if (o1) o2 = o;
6717  else o1 = o;
6718  }
6719  if (!o1 || need_exact)
6720  return pe(g, g->bad_option, "unrecognized option '--%s'", a);
6721  if (o2)
6722  return pe(g, g->bad_option, "option '--%s' is ambiguous (could be '--%s' or '--%s')", a, o1->name, o2->name);
6723  o = o1;
6724  acc_label_found_o:
6725  a += l;
6726  switch (o->has_arg & 0x2f)
6727  {
6728  case ACC_GETOPT_OPTIONAL_ARG:
6729  if (a[0])
6730  g->optarg = a + 1;
6731  break;
6732  case ACC_GETOPT_REQUIRED_ARG:
6733  if (a[0])
6734  g->optarg = a + 1;
6735  else if (g->optind < g->argc)
6736  g->optarg = g->argv[g->optind++];
6737  if (!g->optarg)
6738  return pe(g, missing_arg_ret, "option '--%s' requires an argument", o->name);
6739  break;
6740  case ACC_GETOPT_REQUIRED_ARG | 0x20:
6741  if (a[0] && a[1])
6742  g->optarg = a + 1;
6743  if (!g->optarg)
6744  return pe(g, missing_arg_ret, "option '--%s=' requires an argument", o->name);
6745  break;
6746  default:
6747  if (a[0])
6748  return pe(g, g->bad_option, "option '--%s' doesn't allow an argument", o->name);
6749  break;
6750  }
6751  if (longind)
6752  *longind = (int) (o - longopts);
6753  if (o->flag)
6754  {
6755  *o->flag = o->val;
6756  return 0;
6757  }
6758  return o->val;
6759  }
6760  if (a[0] == '-' && a[1])
6761  {
6762  unsigned char c;
6763  const char* s;
6764  acc_label_next_shortopt:
6765  a = g->argv[g->optind] + ++g->shortpos;
6766  c = (unsigned char) *a++; s = NULL;
6767  if (c != ':' && shortopts)
6768  s = strchr(shortopts, c);
6769  if (!s || s[1] != ':')
6770  {
6771  if (!a[0])
6772  { ++g->optind; g->shortpos = 0; }
6773  if (!s)
6774  {
6775  g->optopt = c;
6776  return pe(g, g->bad_option, "invalid option '-%c'", c);
6777  }
6778  }
6779  else
6780  {
6781  ++g->optind; g->shortpos = 0;
6782  if (a[0])
6783  g->optarg = a;
6784  else if (s[2] != ':')
6785  {
6786  if (g->optind < g->argc)
6787  g->optarg = g->argv[g->optind++];
6788  else
6789  {
6790  g->optopt = c;
6791  return pe(g, missing_arg_ret, "option '-%c' requires an argument", c);
6792  }
6793  }
6794  }
6795  return c;
6796  }
6797  if (ordering == ACC_GETOPT_RETURN_IN_ORDER)
6798  {
6799  ++g->optind;
6800  g->optarg = a;
6801  return 1;
6802  }
6803 acc_label_eof:
6804  g->optind -= __ACCLIB_FUNCNAME(acc_getopt_rotate)(g->argv, g->pending_rotate_first, g->pending_rotate_middle, g->optind);
6805  g->pending_rotate_first = g->pending_rotate_middle = g->optind;
6806  g->eof = 1;
6807  return -1;
6808 #undef pe
6809 }
6810 #endif
6811 #if defined(ACC_WANT_ACCLIB_HALLOC)
6812 # undef ACC_WANT_ACCLIB_HALLOC
6813 #define __ACCLIB_HALLOC_CH_INCLUDED 1
6814 #if !defined(ACCLIB_PUBLIC)
6815 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
6816 #endif
6817 #if (ACC_HAVE_MM_HUGE_PTR)
6818 #if 1 && (ACC_OS_DOS16 && defined(BLX286))
6819 # define __ACCLIB_HALLOC_USE_DAH 1
6820 #elif 1 && (ACC_OS_DOS16 && defined(DOSX286))
6821 # define __ACCLIB_HALLOC_USE_DAH 1
6822 #elif 1 && (ACC_OS_OS216)
6823 # define __ACCLIB_HALLOC_USE_DAH 1
6824 #elif 1 && (ACC_OS_WIN16)
6825 # define __ACCLIB_HALLOC_USE_GA 1
6826 #elif 1 && (ACC_OS_DOS16) && (ACC_CC_BORLANDC) && defined(__DPMI16__)
6827 # define __ACCLIB_HALLOC_USE_GA 1
6828 #endif
6829 #endif
6830 #if (__ACCLIB_HALLOC_USE_DAH)
6831 #if 0 && (ACC_OS_OS216)
6832 #include <os2.h>
6833 #else
6834 ACC_EXTERN_C unsigned short __far __pascal DosAllocHuge(unsigned short, unsigned short, unsigned short __far *, unsigned short, unsigned short);
6835 ACC_EXTERN_C unsigned short __far __pascal DosFreeSeg(unsigned short);
6836 #endif
6837 #endif
6838 #if (__ACCLIB_HALLOC_USE_GA)
6839 #if 0
6840 #define STRICT 1
6841 #include <windows.h>
6842 #else
6843 ACC_EXTERN_C const void __near* __far __pascal GlobalAlloc(unsigned, unsigned long);
6844 ACC_EXTERN_C const void __near* __far __pascal GlobalFree(const void __near*);
6845 ACC_EXTERN_C unsigned long __far __pascal GlobalHandle(unsigned);
6846 ACC_EXTERN_C void __far* __far __pascal GlobalLock(const void __near*);
6847 ACC_EXTERN_C int __far __pascal GlobalUnlock(const void __near*);
6848 #endif
6849 #endif
6850 ACCLIB_PUBLIC(acc_hvoid_p, acc_halloc) (acc_hsize_t size)
6851 {
6852  acc_hvoid_p p = ACC_STATIC_CAST(acc_hvoid_p, 0);
6853  if (!(size > 0))
6854  return p;
6855 #if 0 && defined(__palmos__)
6856  p = MemPtrNew(size);
6857 #elif !(ACC_HAVE_MM_HUGE_PTR)
6858  if (size < ACC_STATIC_CAST(size_t, -1))
6859  p = malloc(ACC_STATIC_CAST(size_t, size));
6860 #else
6861  if (ACC_STATIC_CAST(long, size) <= 0)
6862  return p;
6863 {
6864 #if (__ACCLIB_HALLOC_USE_DAH)
6865  unsigned short sel = 0;
6866  if (DosAllocHuge((unsigned short)(size >> 16), (unsigned short)size, &sel, 0, 0) == 0)
6867  p = (acc_hvoid_p) ACC_PTR_MK_FP(sel, 0);
6868 #elif (__ACCLIB_HALLOC_USE_GA)
6869  const void __near* h = GlobalAlloc(2, size);
6870  if (h) {
6871  p = GlobalLock(h);
6872  if (p && ACC_PTR_FP_OFF(p) != 0) {
6873  GlobalUnlock(h);
6874  p = 0;
6875  }
6876  if (!p)
6877  GlobalFree(h);
6878  }
6879 #elif (ACC_CC_MSC && (_MSC_VER >= 700))
6880  p = _halloc(size, 1);
6881 #elif (ACC_CC_MSC || ACC_CC_WATCOMC)
6882  p = halloc(size, 1);
6883 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
6884  p = farmalloc(size);
6885 #elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
6886  p = farmalloc(size);
6887 #elif (ACC_CC_AZTECC)
6888  p = lmalloc(size);
6889 #else
6890  if (size < ACC_STATIC_CAST(size_t, -1))
6891  p = malloc((size_t) size);
6892 #endif
6893 }
6894 #endif
6895  return p;
6896 }
6897 ACCLIB_PUBLIC(void, acc_hfree) (acc_hvoid_p p)
6898 {
6899  if (!p)
6900  return;
6901 #if 0 && defined(__palmos__)
6902  MemPtrFree(p);
6903 #elif !(ACC_HAVE_MM_HUGE_PTR)
6904  free(p);
6905 #else
6906 #if (__ACCLIB_HALLOC_USE_DAH)
6907  if (ACC_PTR_FP_OFF(p) == 0)
6908  DosFreeSeg((unsigned short) ACC_PTR_FP_SEG(p));
6909 #elif (__ACCLIB_HALLOC_USE_GA)
6910  if (ACC_PTR_FP_OFF(p) == 0) {
6911  const void __near* h = (const void __near*) (unsigned) GlobalHandle(ACC_PTR_FP_SEG(p));
6912  if (h) {
6913  GlobalUnlock(h);
6914  GlobalFree(h);
6915  }
6916  }
6917 #elif (ACC_CC_MSC && (_MSC_VER >= 700))
6918  _hfree(p);
6919 #elif (ACC_CC_MSC || ACC_CC_WATCOMC)
6920  hfree(p);
6921 #elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
6922  farfree((void __far*) p);
6923 #elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
6924  farfree((void __far*) p);
6925 #elif (ACC_CC_AZTECC)
6926  lfree(p);
6927 #else
6928  free(p);
6929 #endif
6930 #endif
6931 }
6932 #endif
6933 #if defined(ACC_WANT_ACCLIB_HFREAD)
6934 # undef ACC_WANT_ACCLIB_HFREAD
6935 #define __ACCLIB_HFREAD_CH_INCLUDED 1
6936 #if !defined(ACCLIB_PUBLIC)
6937 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
6938 #endif
6939 ACCLIB_PUBLIC(acc_hsize_t, acc_hfread) (void* vfp, acc_hvoid_p buf, acc_hsize_t size)
6940 {
6941  FILE* fp = ACC_STATIC_CAST(FILE *, vfp);
6942 #if (ACC_HAVE_MM_HUGE_PTR)
6943 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
6944 #define __ACCLIB_REQUIRE_HMEMCPY_CH 1
6945  unsigned char tmp[512];
6946  acc_hsize_t l = 0;
6947  while (l < size)
6948  {
6949  size_t n = size - l > sizeof(tmp) ? sizeof(tmp) : (size_t) (size - l);
6950  n = fread(tmp, 1, n, fp);
6951  if (n == 0)
6952  break;
6953  __ACCLIB_FUNCNAME(acc_hmemcpy)((acc_hbyte_p)buf + l, tmp, (acc_hsize_t)n);
6954  l += n;
6955  }
6956  return l;
6957 #elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
6958  acc_hbyte_p b = (acc_hbyte_p) buf;
6959  acc_hsize_t l = 0;
6960  while (l < size)
6961  {
6962  size_t n;
6963  n = ACC_PTR_FP_OFF(b); n = (n <= 1) ? 0x8000u : (0u - n);
6964  if ((acc_hsize_t) n > size - l)
6965  n = (size_t) (size - l);
6966  n = fread((void __far*)b, 1, n, fp);
6967  if (n == 0)
6968  break;
6969  b += n; l += n;
6970  }
6971  return l;
6972 #else
6973 # error "unknown memory model"
6974 #endif
6975 #else
6976  return fread(buf, 1, size, fp);
6977 #endif
6978 }
6979 ACCLIB_PUBLIC(acc_hsize_t, acc_hfwrite) (void* vfp, const acc_hvoid_p buf, acc_hsize_t size)
6980 {
6981  FILE* fp = ACC_STATIC_CAST(FILE *, vfp);
6982 #if (ACC_HAVE_MM_HUGE_PTR)
6983 #if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
6984 #define __ACCLIB_REQUIRE_HMEMCPY_CH 1
6985  unsigned char tmp[512];
6986  acc_hsize_t l = 0;
6987  while (l < size)
6988  {
6989  size_t n = size - l > sizeof(tmp) ? sizeof(tmp) : (size_t) (size - l);
6990  __ACCLIB_FUNCNAME(acc_hmemcpy)(tmp, (const acc_hbyte_p)buf + l, (acc_hsize_t)n);
6991  n = fwrite(tmp, 1, n, fp);
6992  if (n == 0)
6993  break;
6994  l += n;
6995  }
6996  return l;
6997 #elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
6998  const acc_hbyte_p b = (const acc_hbyte_p) buf;
6999  acc_hsize_t l = 0;
7000  while (l < size)
7001  {
7002  size_t n;
7003  n = ACC_PTR_FP_OFF(b); n = (n <= 1) ? 0x8000u : (0u - n);
7004  if ((acc_hsize_t) n > size - l)
7005  n = (size_t) (size - l);
7006  n = fwrite((void __far*)b, 1, n, fp);
7007  if (n == 0)
7008  break;
7009  b += n; l += n;
7010  }
7011  return l;
7012 #else
7013 # error "unknown memory model"
7014 #endif
7015 #else
7016  return fwrite(buf, 1, size, fp);
7017 #endif
7018 }
7019 #endif
7020 #if defined(ACC_WANT_ACCLIB_HSREAD)
7021 # undef ACC_WANT_ACCLIB_HSREAD
7022 #define __ACCLIB_HSREAD_CH_INCLUDED 1
7023 #if !defined(ACCLIB_PUBLIC)
7024 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
7025 #endif
7026 ACCLIB_PUBLIC(long, acc_safe_hread) (int fd, acc_hvoid_p buf, long size)
7027 {
7028  acc_hbyte_p b = (acc_hbyte_p) buf;
7029  long l = 0;
7030  int saved_errno;
7031  saved_errno = errno;
7032  while (l < size)
7033  {
7034  long n = size - l;
7035 #if (ACC_HAVE_MM_HUGE_PTR)
7036 # define __ACCLIB_REQUIRE_HREAD_CH 1
7037  errno = 0; n = acc_hread(fd, b, n);
7038 #elif (ACC_OS_DOS32) && defined(__DJGPP__)
7039  errno = 0; n = _read(fd, b, n);
7040 #else
7041  errno = 0; n = read(fd, b, n);
7042 #endif
7043  if (n == 0)
7044  break;
7045  if (n < 0) {
7046 #if defined(EAGAIN)
7047  if (errno == (EAGAIN)) continue;
7048 #endif
7049 #if defined(EINTR)
7050  if (errno == (EINTR)) continue;
7051 #endif
7052  if (errno == 0) errno = 1;
7053  return l;
7054  }
7055  b += n; l += n;
7056  }
7057  errno = saved_errno;
7058  return l;
7059 }
7060 ACCLIB_PUBLIC(long, acc_safe_hwrite) (int fd, const acc_hvoid_p buf, long size)
7061 {
7062  const acc_hbyte_p b = (const acc_hbyte_p) buf;
7063  long l = 0;
7064  int saved_errno;
7065  saved_errno = errno;
7066  while (l < size)
7067  {
7068  long n = size - l;
7069 #if (ACC_HAVE_MM_HUGE_PTR)
7070 # define __ACCLIB_REQUIRE_HREAD_CH 1
7071  errno = 0; n = acc_hwrite(fd, b, n);
7072 #elif (ACC_OS_DOS32) && defined(__DJGPP__)
7073  errno = 0; n = _write(fd, b, n);
7074 #else
7075  errno = 0; n = write(fd, b, n);
7076 #endif
7077  if (n == 0)
7078  break;
7079  if (n < 0) {
7080 #if defined(EAGAIN)
7081  if (errno == (EAGAIN)) continue;
7082 #endif
7083 #if defined(EINTR)
7084  if (errno == (EINTR)) continue;
7085 #endif
7086  if (errno == 0) errno = 1;
7087  return l;
7088  }
7089  b += n; l += n;
7090  }
7091  errno = saved_errno;
7092  return l;
7093 }
7094 #endif
7095 #if defined(ACC_WANT_ACCLIB_PCLOCK)
7096 # undef ACC_WANT_ACCLIB_PCLOCK
7097 #define __ACCLIB_PCLOCK_CH_INCLUDED 1
7098 #if !defined(ACCLIB_PUBLIC)
7099 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
7100 #endif
7101 #if 1 && (ACC_OS_POSIX_LINUX && ACC_ARCH_AMD64 && ACC_ASM_SYNTAX_GNUC && !ACC_CFG_NO_SYSCALL)
7102 #ifndef acc_pclock_syscall_clock_gettime
7103 #define acc_pclock_syscall_clock_gettime acc_pclock_syscall_clock_gettime
7104 #endif
7105 __acc_static_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
7106 {
7107  unsigned long r = 228;
7108  __asm__ __volatile__("syscall\n" : "=a" (r), "=m" (*ts) : "0" (r), "D" (clockid), "S" (ts) __ACC_ASM_CLOBBER_LIST_CC);
7109  return ACC_ICAST(long, r);
7110 }
7111 #endif
7112 #if 1 && (ACC_OS_POSIX_LINUX && ACC_ARCH_I386 && ACC_ASM_SYNTAX_GNUC && !ACC_CFG_NO_SYSCALL) && defined(acc_int64l_t)
7113 #ifndef acc_pclock_syscall_clock_gettime
7114 #define acc_pclock_syscall_clock_gettime acc_pclock_syscall_clock_gettime
7115 #endif
7116 __acc_static_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
7117 {
7118  unsigned long r = 265;
7119  __asm__ __volatile__("pushl %%ebx\n pushl %%edx\n popl %%ebx\n int $0x80\n popl %%ebx\n": "=a" (r), "=m" (*ts) : "0" (r), "d" (clockid), "c" (ts) __ACC_ASM_CLOBBER_LIST_CC);
7120  return ACC_ICAST(long, r);
7121 }
7122 #endif
7123 #if 0 && defined(acc_pclock_syscall_clock_gettime)
7124 #ifndef acc_pclock_read_clock_gettime_r_syscall
7125 #define acc_pclock_read_clock_gettime_r_syscall acc_pclock_read_clock_gettime_r_syscall
7126 #endif
7127 static int acc_pclock_read_clock_gettime_r_syscall(acc_pclock_handle_p h, acc_pclock_p c)
7128 {
7129  struct timespec ts;
7130  if (acc_pclock_syscall_clock_gettime(0, &ts) != 0)
7131  return -1;
7132  c->tv_sec = ts.tv_sec;
7133  c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ts.tv_nsec);
7134  ACC_UNUSED(h); return 0;
7135 }
7136 #endif
7137 #if (HAVE_GETTIMEOFDAY)
7138 #ifndef acc_pclock_read_gettimeofday
7139 #define acc_pclock_read_gettimeofday acc_pclock_read_gettimeofday
7140 #endif
7141 static int acc_pclock_read_gettimeofday(acc_pclock_handle_p h, acc_pclock_p c)
7142 {
7143  struct timeval tv;
7144  if (gettimeofday(&tv, NULL) != 0)
7145  return -1;
7146 #if defined(acc_int64l_t)
7147  c->tv_sec = tv.tv_sec;
7148 #else
7149  c->tv_sec_high = 0;
7150  c->tv_sec_low = tv.tv_sec;
7151 #endif
7152  c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, (tv.tv_usec * 1000u));
7153  ACC_UNUSED(h); return 0;
7154 }
7155 #endif
7156 #if defined(CLOCKS_PER_SEC) && !(ACC_CFG_NO_DOUBLE)
7157 #ifndef acc_pclock_read_clock
7158 #define acc_pclock_read_clock acc_pclock_read_clock
7159 #endif
7160 static int acc_pclock_read_clock(acc_pclock_handle_p h, acc_pclock_p c)
7161 {
7162  clock_t ticks;
7163  double secs;
7164 #if defined(acc_int64l_t)
7165  acc_uint64l_t nsecs;
7166  ticks = clock();
7167  secs = ACC_STATIC_CAST(double, ticks) / (CLOCKS_PER_SEC);
7168  nsecs = ACC_STATIC_CAST(acc_uint64l_t, (secs * 1000000000.0));
7169  c->tv_sec = ACC_STATIC_CAST(acc_int64l_t, (nsecs / 1000000000ul));
7170  nsecs = (nsecs % 1000000000ul);
7171  c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, nsecs);
7172 #else
7173  ticks = clock();
7174  secs = ACC_STATIC_CAST(double, ticks) / (CLOCKS_PER_SEC);
7175  c->tv_sec_high = 0;
7176  c->tv_sec_low = ACC_STATIC_CAST(acc_uint32l_t, (secs + 0.5));
7177  c->tv_nsec = 0;
7178 #endif
7179  ACC_UNUSED(h); return 0;
7180 }
7181 #endif
7182 #if 1 && defined(acc_pclock_syscall_clock_gettime)
7183 #ifndef acc_pclock_read_clock_gettime_m_syscall
7184 #define acc_pclock_read_clock_gettime_m_syscall acc_pclock_read_clock_gettime_m_syscall
7185 #endif
7186 static int acc_pclock_read_clock_gettime_m_syscall(acc_pclock_handle_p h, acc_pclock_p c)
7187 {
7188  struct timespec ts;
7189  if (acc_pclock_syscall_clock_gettime(1, &ts) != 0)
7190  return -1;
7191  c->tv_sec = ts.tv_sec;
7192  c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ts.tv_nsec);
7193  ACC_UNUSED(h); return 0;
7194 }
7195 #endif
7196 #if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__) && defined(UCLOCKS_PER_SEC) && !(ACC_CFG_NO_DOUBLE)
7197 #ifndef acc_pclock_read_uclock
7198 #define acc_pclock_read_uclock acc_pclock_read_uclock
7199 #endif
7200 static int acc_pclock_read_uclock(acc_pclock_handle_p h, acc_pclock_p c)
7201 {
7202  acc_uint64l_t ticks;
7203  double secs;
7204  acc_uint64l_t nsecs;
7205  ticks = uclock();
7206  secs = ACC_STATIC_CAST(double, ticks) / (UCLOCKS_PER_SEC);
7207  nsecs = ACC_STATIC_CAST(acc_uint64l_t, (secs * 1000000000.0));
7208  c->tv_sec = nsecs / 1000000000ul;
7209  c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, (nsecs % 1000000000ul));
7210  ACC_UNUSED(h); return 0;
7211 }
7212 #endif
7213 #if 1 && (HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID) && defined(acc_int64l_t)
7214 #ifndef acc_pclock_read_clock_gettime_p_libc
7215 #define acc_pclock_read_clock_gettime_p_libc acc_pclock_read_clock_gettime_p_libc
7216 #endif
7217 static int acc_pclock_read_clock_gettime_p_libc(acc_pclock_handle_p h, acc_pclock_p c)
7218 {
7219  struct timespec ts;
7220  if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts) != 0)
7221  return -1;
7222  c->tv_sec = ts.tv_sec;
7223  c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ts.tv_nsec);
7224  ACC_UNUSED(h); return 0;
7225 }
7226 #endif
7227 #if 1 && defined(acc_pclock_syscall_clock_gettime)
7228 #ifndef acc_pclock_read_clock_gettime_p_syscall
7229 #define acc_pclock_read_clock_gettime_p_syscall acc_pclock_read_clock_gettime_p_syscall
7230 #endif
7231 static int acc_pclock_read_clock_gettime_p_syscall(acc_pclock_handle_p h, acc_pclock_p c)
7232 {
7233  struct timespec ts;
7234  if (acc_pclock_syscall_clock_gettime(2, &ts) != 0)
7235  return -1;
7236  c->tv_sec = ts.tv_sec;
7237  c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ts.tv_nsec);
7238  ACC_UNUSED(h); return 0;
7239 }
7240 #endif
7241 #if (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H) && defined(acc_int64l_t)
7242 #ifndef acc_pclock_read_getprocesstimes
7243 #define acc_pclock_read_getprocesstimes acc_pclock_read_getprocesstimes
7244 #endif
7245 static int acc_pclock_read_getprocesstimes(acc_pclock_handle_p h, acc_pclock_p c)
7246 {
7247  FILETIME ct, et, kt, ut;
7248  acc_uint64l_t ticks;
7249  if (GetProcessTimes(GetCurrentProcess(), &ct, &et, &kt, &ut) == 0)
7250  return -1;
7251  ticks = (ACC_STATIC_CAST(acc_uint64l_t, ut.dwHighDateTime) << 32) | ut.dwLowDateTime;
7252  if __acc_unlikely(h->ticks_base == 0)
7253  h->ticks_base = ticks;
7254  else
7255  ticks -= h->ticks_base;
7256  c->tv_sec = ACC_STATIC_CAST(acc_int64l_t, (ticks / 10000000ul));
7257  ticks = (ticks % 10000000ul) * 100u;
7258  c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ticks);
7259  ACC_UNUSED(h); return 0;
7260 }
7261 #endif
7262 #if (HAVE_GETRUSAGE) && defined(RUSAGE_SELF)
7263 #ifndef acc_pclock_read_getrusage
7264 #define acc_pclock_read_getrusage acc_pclock_read_getrusage
7265 #endif
7266 static int acc_pclock_read_getrusage(acc_pclock_handle_p h, acc_pclock_p c)
7267 {
7268  struct rusage ru;
7269  if (getrusage(RUSAGE_SELF, &ru) != 0)
7270  return -1;
7271 #if defined(acc_int64l_t)
7272  c->tv_sec = ru.ru_utime.tv_sec;
7273 #else
7274  c->tv_sec_high = 0;
7275  c->tv_sec_low = ru.ru_utime.tv_sec;
7276 #endif
7277  c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, (ru.ru_utime.tv_usec * 1000u));
7278  ACC_UNUSED(h); return 0;
7279 }
7280 #endif
7281 #if 1 && (HAVE_CLOCK_GETTIME) && defined(CLOCK_THREAD_CPUTIME_ID) && defined(acc_int64l_t)
7282 #ifndef acc_pclock_read_clock_gettime_t_libc
7283 #define acc_pclock_read_clock_gettime_t_libc acc_pclock_read_clock_gettime_t_libc
7284 #endif
7285 static int acc_pclock_read_clock_gettime_t_libc(acc_pclock_handle_p h, acc_pclock_p c)
7286 {
7287  struct timespec ts;
7288  if (clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts) != 0)
7289  return -1;
7290  c->tv_sec = ts.tv_sec;
7291  c->tv_nsec = (acc_uint32l_t) ts.tv_nsec;
7292  ACC_UNUSED(h); return 0;
7293 }
7294 #endif
7295 #if 1 && defined(acc_pclock_syscall_clock_gettime)
7296 #ifndef acc_pclock_read_clock_gettime_t_syscall
7297 #define acc_pclock_read_clock_gettime_t_syscall acc_pclock_read_clock_gettime_t_syscall
7298 #endif
7299 static int acc_pclock_read_clock_gettime_t_syscall(acc_pclock_handle_p h, acc_pclock_p c)
7300 {
7301  struct timespec ts;
7302  if (acc_pclock_syscall_clock_gettime(3, &ts) != 0)
7303  return -1;
7304  c->tv_sec = ts.tv_sec;
7305  c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ts.tv_nsec);
7306  ACC_UNUSED(h); return 0;
7307 }
7308 #endif
7309 #if (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H) && defined(acc_int64l_t)
7310 #ifndef acc_pclock_read_getthreadtimes
7311 #define acc_pclock_read_getthreadtimes acc_pclock_read_getthreadtimes
7312 #endif
7313 static int acc_pclock_read_getthreadtimes(acc_pclock_handle_p h, acc_pclock_p c)
7314 {
7315  FILETIME ct, et, kt, ut;
7316  acc_uint64l_t ticks;
7317  if (GetThreadTimes(GetCurrentThread(), &ct, &et, &kt, &ut) == 0)
7318  return -1;
7319  ticks = (ACC_STATIC_CAST(acc_uint64l_t, ut.dwHighDateTime) << 32) | ut.dwLowDateTime;
7320  if __acc_unlikely(h->ticks_base == 0)
7321  h->ticks_base = ticks;
7322  else
7323  ticks -= h->ticks_base;
7324  c->tv_sec = ACC_STATIC_CAST(acc_int64l_t, (ticks / 10000000ul));
7325  ticks = (ticks % 10000000ul) * 100u;
7326  c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ticks);
7327  ACC_UNUSED(h); return 0;
7328 }
7329 #endif
7330 ACCLIB_PUBLIC(int, acc_pclock_open) (acc_pclock_handle_p h, int mode)
7331 {
7332  acc_pclock_t c;
7333  int i;
7334  h->h = ACC_STATIC_CAST(acclib_handle_t, 0);
7335  h->mode = -1;
7336  h->read_error = 2;
7337  h->name = NULL;
7338  h->gettime = ACC_STATIC_CAST(acc_pclock_gettime_t, 0);
7339 #if defined(acc_int64l_t)
7340  h->ticks_base = 0;
7341 #endif
7342  switch (mode)
7343  {
7344  case ACC_PCLOCK_REALTIME:
7345 # if defined(acc_pclock_read_clock_gettime_r_syscall)
7346  if (acc_pclock_read_clock_gettime_r_syscall(h, &c) == 0) {
7347  h->gettime = acc_pclock_read_clock_gettime_r_syscall;
7348  h->name = "CLOCK_REALTIME/syscall";
7349  break;
7350  }
7351 # endif
7352 # if defined(acc_pclock_read_gettimeofday)
7353  if (acc_pclock_read_gettimeofday(h, &c) == 0) {
7354  h->gettime = acc_pclock_read_gettimeofday;
7355  h->name = "gettimeofday";
7356  break;
7357  }
7358 # endif
7359  break;
7360  case ACC_PCLOCK_MONOTONIC:
7361 # if defined(acc_pclock_read_clock_gettime_m_syscall)
7362  if (acc_pclock_read_clock_gettime_m_syscall(h, &c) == 0) {
7363  h->gettime = acc_pclock_read_clock_gettime_m_syscall;
7364  h->name = "CLOCK_MONOTONIC/syscall";
7365  break;
7366  }
7367 # endif
7368 # if defined(acc_pclock_read_uclock)
7369  if (acc_pclock_read_uclock(h, &c) == 0) {
7370  h->gettime = acc_pclock_read_uclock;
7371  h->name = "uclock";
7372  break;
7373  }
7374 # endif
7375 # if defined(acc_pclock_read_clock)
7376  if (acc_pclock_read_clock(h, &c) == 0) {
7377  h->gettime = acc_pclock_read_clock;
7378  h->name = "clock";
7379  break;
7380  }
7381 # endif
7382  break;
7383  case ACC_PCLOCK_PROCESS_CPUTIME_ID:
7384 # if defined(acc_pclock_read_getprocesstimes)
7385  if (acc_pclock_read_getprocesstimes(h, &c) == 0) {
7386  h->gettime = acc_pclock_read_getprocesstimes;
7387  h->name = "GetProcessTimes";
7388  break;
7389  }
7390 # endif
7391 # if defined(acc_pclock_read_clock_gettime_p_syscall)
7392  if (acc_pclock_read_clock_gettime_p_syscall(h, &c) == 0) {
7393  h->gettime = acc_pclock_read_clock_gettime_p_syscall;
7394  h->name = "CLOCK_PROCESS_CPUTIME_ID/syscall";
7395  break;
7396  }
7397 # endif
7398 # if defined(acc_pclock_read_clock_gettime_p_libc)
7399  if (acc_pclock_read_clock_gettime_p_libc(h, &c) == 0) {
7400  h->gettime = acc_pclock_read_clock_gettime_p_libc;
7401  h->name = "CLOCK_PROCESS_CPUTIME_ID/libc";
7402  break;
7403  }
7404 # endif
7405 # if defined(acc_pclock_read_getrusage)
7406  if (acc_pclock_read_getrusage(h, &c) == 0) {
7407  h->gettime = acc_pclock_read_getrusage;
7408  h->name = "getrusage";
7409  break;
7410  }
7411 # endif
7412  break;
7413  case ACC_PCLOCK_THREAD_CPUTIME_ID:
7414 # if defined(acc_pclock_read_getthreadtimes)
7415  if (acc_pclock_read_getthreadtimes(h, &c) == 0) {
7416  h->gettime = acc_pclock_read_getthreadtimes;
7417  h->name = "GetThreadTimes";
7418  }
7419 # endif
7420 # if defined(acc_pclock_read_clock_gettime_t_syscall)
7421  if (acc_pclock_read_clock_gettime_t_syscall(h, &c) == 0) {
7422  h->gettime = acc_pclock_read_clock_gettime_t_syscall;
7423  h->name = "CLOCK_THREAD_CPUTIME_ID/syscall";
7424  break;
7425  }
7426 # endif
7427 # if defined(acc_pclock_read_clock_gettime_t_libc)
7428  if (acc_pclock_read_clock_gettime_t_libc(h, &c) == 0) {
7429  h->gettime = acc_pclock_read_clock_gettime_t_libc;
7430  h->name = "CLOCK_THREAD_CPUTIME_ID/libc";
7431  break;
7432  }
7433 # endif
7434  break;
7435  }
7436  if (!h->gettime)
7437  return -1;
7438  if (!h->h)
7439  h->h = ACC_STATIC_CAST(acclib_handle_t, 1);
7440  h->mode = mode;
7441  h->read_error = 0;
7442  if (!h->name)
7443  h->name = "unknown";
7444  for (i = 0; i < 10; i++) {
7445  __ACCLIB_FUNCNAME(acc_pclock_read)(h, &c);
7446  }
7447  return 0;
7448 }
7449 ACCLIB_PUBLIC(int, acc_pclock_open_default) (acc_pclock_handle_p h)
7450 {
7451  if (__ACCLIB_FUNCNAME(acc_pclock_open)(h, ACC_PCLOCK_PROCESS_CPUTIME_ID) == 0)
7452  return 0;
7453  if (__ACCLIB_FUNCNAME(acc_pclock_open)(h, ACC_PCLOCK_MONOTONIC) == 0)
7454  return 0;
7455  if (__ACCLIB_FUNCNAME(acc_pclock_open)(h, ACC_PCLOCK_REALTIME) == 0)
7456  return 0;
7457  if (__ACCLIB_FUNCNAME(acc_pclock_open)(h, ACC_PCLOCK_THREAD_CPUTIME_ID) == 0)
7458  return 0;
7459  return -1;
7460 }
7461 ACCLIB_PUBLIC(int, acc_pclock_close) (acc_pclock_handle_p h)
7462 {
7463  h->h = ACC_STATIC_CAST(acclib_handle_t, 0);
7464  h->mode = -1;
7465  h->name = NULL;
7466  h->gettime = ACC_STATIC_CAST(acc_pclock_gettime_t, 0);
7467  return 0;
7468 }
7469 ACCLIB_PUBLIC(void, acc_pclock_read) (acc_pclock_handle_p h, acc_pclock_p c)
7470 {
7471  if (h->gettime) {
7472  if (h->gettime(h, c) == 0)
7473  return;
7474  }
7475  h->read_error = 1;
7476 #if defined(acc_int64l_t)
7477  c->tv_sec = 0;
7478 #else
7479  c->tv_sec_high = 0;
7480  c->tv_sec_low = 0;
7481 #endif
7482  c->tv_nsec = 0;
7483 }
7484 #if !(ACC_CFG_NO_DOUBLE)
7485 ACCLIB_PUBLIC(double, acc_pclock_get_elapsed) (acc_pclock_handle_p h, const acc_pclock_p start, const acc_pclock_p stop)
7486 {
7487  if (!h->h) { h->mode = -1; return 0.0; }
7488  {
7489 #if 1 && (ACC_ARCH_I386 && ACC_CC_GNUC) && defined(__STRICT_ALIGNMENT__)
7490  float tstop, tstart;
7491  tstop = ACC_STATIC_CAST(float, (stop->tv_sec + stop->tv_nsec / 1000000000.0));
7492  tstart = ACC_STATIC_CAST(float, (start->tv_sec + start->tv_nsec / 1000000000.0));
7493 #elif defined(acc_int64l_t)
7494  double tstop, tstart;
7495 #if 1 && (ACC_CC_INTELC)
7496  { acc_int64l_t a = stop->tv_sec; acc_uint32l_t b = stop->tv_nsec;
7497  tstop = a + b / 1000000000.0; }
7498  { acc_int64l_t a = start->tv_sec; acc_uint32l_t b = start->tv_nsec;
7499  tstart = a + b / 1000000000.0; }
7500 #else
7501  tstop = stop->tv_sec + stop->tv_nsec / 1000000000.0;
7502  tstart = start->tv_sec + start->tv_nsec / 1000000000.0;
7503 #endif
7504 #else
7505  double tstop, tstart;
7506  tstop = stop->tv_sec_low + stop->tv_nsec / 1000000000.0;
7507  tstart = start->tv_sec_low + start->tv_nsec / 1000000000.0;
7508 #endif
7509  return tstop - tstart;
7510  }
7511 }
7512 #endif
7513 ACCLIB_PUBLIC(int, acc_pclock_flush_cpu_cache) (acc_pclock_handle_p h, unsigned flags)
7514 {
7515  ACC_UNUSED(h); ACC_UNUSED(flags);
7516  return -1;
7517 }
7518 #endif
7519 #if defined(ACC_WANT_ACCLIB_MISC)
7520 # undef ACC_WANT_ACCLIB_MISC
7521 #define __ACCLIB_MISC_CH_INCLUDED 1
7522 #if !defined(ACCLIB_PUBLIC)
7523 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
7524 #endif
7525 #if !defined(ACCLIB_PUBLIC_NOINLINE)
7526 # if !defined(__acc_noinline)
7527 # define ACCLIB_PUBLIC_NOINLINE(r,f) r __ACCLIB_FUNCNAME(f)
7528 # elif (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x030400ul) || ACC_CC_LLVM)
7529 # define ACCLIB_PUBLIC_NOINLINE(r,f) __acc_noinline __attribute__((__used__)) r __ACCLIB_FUNCNAME(f)
7530 # else
7531 # define ACCLIB_PUBLIC_NOINLINE(r,f) __acc_noinline r __ACCLIB_FUNCNAME(f)
7532 # endif
7533 #endif
7534 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
7535 # pragma warn(push)
7536 # pragma warn(disable:2007)
7537 #endif
7538 ACCLIB_PUBLIC(const char *, acc_getenv) (const char *s)
7539 {
7540 #if (HAVE_GETENV)
7541  return getenv(s);
7542 #else
7543  ACC_UNUSED(s); return ACC_STATIC_CAST(const char *, 0);
7544 #endif
7545 }
7546 ACCLIB_PUBLIC(acc_intptr_t, acc_get_osfhandle) (int fd)
7547 {
7548  if (fd < 0)
7549  return -1;
7550 #if (ACC_OS_CYGWIN)
7551  return get_osfhandle(fd);
7552 #elif (ACC_OS_EMX && defined(__RSXNT__))
7553  return -1;
7554 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
7555  return -1;
7556 #elif (ACC_OS_WIN32 || ACC_OS_WIN64)
7557 # if (ACC_CC_PELLESC && (__POCC__ < 280))
7558  return -1;
7559 # elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
7560  return -1;
7561 # elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))
7562  return _os_handle(fd);
7563 # else
7564  return _get_osfhandle(fd);
7565 # endif
7566 #else
7567  return fd;
7568 #endif
7569 }
7570 ACCLIB_PUBLIC(int, acc_set_binmode) (int fd, int binary)
7571 {
7572 #if (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
7573  FILE* fp; int old_binary;
7574  if (fd == STDIN_FILENO) fp = stdin;
7575  else if (fd == STDOUT_FILENO) fp = stdout;
7576  else if (fd == STDERR_FILENO) fp = stderr;
7577  else return -1;
7578  old_binary = fp->__mode.__binary;
7579  __set_binmode(fp, binary ? 1 : 0);
7580  return old_binary ? 1 : 0;
7581 #elif (ACC_ARCH_M68K && ACC_OS_TOS)
7582  ACC_UNUSED(fd); ACC_UNUSED(binary);
7583  return -1;
7584 #elif (ACC_OS_DOS16 && (ACC_CC_AZTECC || ACC_CC_PACIFICC))
7585  ACC_UNUSED(fd); ACC_UNUSED(binary);
7586  return -1;
7587 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
7588  int r; unsigned old_flags = __djgpp_hwint_flags;
7589  ACC_COMPILE_TIME_ASSERT(O_BINARY > 0)
7590  ACC_COMPILE_TIME_ASSERT(O_TEXT > 0)
7591  if (fd < 0) return -1;
7592  r = setmode(fd, binary ? O_BINARY : O_TEXT);
7593  if ((old_flags & 1u) != (__djgpp_hwint_flags & 1u))
7594  __djgpp_set_ctrl_c(!(old_flags & 1));
7595  if (r == -1) return -1;
7596  return (r & O_TEXT) ? 0 : 1;
7597 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
7598  if (fd < 0) return -1;
7599  ACC_UNUSED(binary);
7600  return 1;
7601 #elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
7602  FILE* fp; int r;
7603  if (fd == fileno(stdin)) fp = stdin;
7604  else if (fd == fileno(stdout)) fp = stdout;
7605  else if (fd == fileno(stderr)) fp = stderr;
7606  else return -1;
7607  r = _setmode(fp, binary ? _BINARY : _TEXT);
7608  if (r == -1) return -1;
7609  return (r & _BINARY) ? 1 : 0;
7610 #elif (ACC_OS_WIN32 && ACC_CC_MWERKS) && defined(__MSL__)
7611  ACC_UNUSED(fd); ACC_UNUSED(binary);
7612  return -1;
7613 #elif (ACC_OS_CYGWIN && (ACC_CC_GNUC < 0x025a00ul))
7614  ACC_UNUSED(fd); ACC_UNUSED(binary);
7615  return -1;
7616 #elif (ACC_OS_CYGWIN || ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_EMX || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
7617  int r;
7618 #if !(ACC_CC_ZORTECHC)
7619  ACC_COMPILE_TIME_ASSERT(O_BINARY > 0)
7620 #endif
7621  ACC_COMPILE_TIME_ASSERT(O_TEXT > 0)
7622  if (fd < 0) return -1;
7623  r = setmode(fd, binary ? O_BINARY : O_TEXT);
7624  if (r == -1) return -1;
7625  return (r & O_TEXT) ? 0 : 1;
7626 #else
7627  if (fd < 0) return -1;
7628  ACC_UNUSED(binary);
7629  return 1;
7630 #endif
7631 }
7632 ACCLIB_PUBLIC(int, acc_isatty) (int fd)
7633 {
7634  if (fd < 0)
7635  return 0;
7636 #if (ACC_OS_DOS16 && !(ACC_CC_AZTECC))
7637  {
7638  union REGS ri, ro;
7639  ri.x.ax = 0x4400; ri.x.bx = fd;
7640  int86(0x21, &ri, &ro);
7641  if ((ro.x.cflag & 1) == 0)
7642  if ((ro.x.ax & 0x83) != 0x83)
7643  return 0;
7644  }
7645 #elif (ACC_OS_DOS32 && ACC_CC_WATCOMC)
7646  {
7647  union REGS ri, ro;
7648  ri.w.ax = 0x4400; ri.w.bx = ACC_STATIC_CAST(unsigned short, fd);
7649  int386(0x21, &ri, &ro);
7650  if ((ro.w.cflag & 1) == 0)
7651  if ((ro.w.ax & 0x83) != 0x83)
7652  return 0;
7653  }
7654 #elif (ACC_HAVE_WINDOWS_H)
7655  {
7656  acc_intptr_t h = __ACCLIB_FUNCNAME(acc_get_osfhandle)(fd);
7657  ACC_COMPILE_TIME_ASSERT(sizeof(h) == sizeof(HANDLE))
7658  if (h != -1)
7659  {
7660  DWORD d = 0;
7661  if (GetConsoleMode(ACC_REINTERPRET_CAST(HANDLE, h), &d) == 0)
7662  return 0;
7663  }
7664  }
7665 #endif
7666 #if (HAVE_ISATTY)
7667  return (isatty(fd)) ? 1 : 0;
7668 #else
7669  return 0;
7670 #endif
7671 }
7672 ACCLIB_PUBLIC(int, acc_mkdir) (const char* name, unsigned mode)
7673 {
7674 #if !(HAVE_MKDIR)
7675  ACC_UNUSED(name); ACC_UNUSED(mode);
7676  return -1;
7677 #elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
7678  ACC_UNUSED(mode);
7679  return Dcreate(name);
7680 #elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
7681  return mkdir(name, mode);
7682 #elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
7683  return mkdir(name, mode);
7684 #elif ((ACC_OS_DOS16 || ACC_OS_DOS32) && (ACC_CC_HIGHC || ACC_CC_PACIFICC))
7685  ACC_UNUSED(mode);
7686  return mkdir(ACC_UNCONST_CAST(char *, name));
7687 #elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
7688  ACC_UNUSED(mode);
7689  return mkdir(name);
7690 #elif (ACC_CC_WATCOMC)
7691  return mkdir(name, ACC_STATIC_CAST(mode_t, mode));
7692 #else
7693  return mkdir(name, mode);
7694 #endif
7695 }
7696 ACCLIB_PUBLIC(int, acc_rmdir) (const char* name)
7697 {
7698 #if !(HAVE_RMDIR)
7699  ACC_UNUSED(name);
7700  return -1;
7701 #elif ((ACC_OS_DOS16 || ACC_OS_DOS32) && (ACC_CC_HIGHC || ACC_CC_PACIFICC))
7702  return rmdir(ACC_UNCONST_CAST(char *, name));
7703 #else
7704  return rmdir(name);
7705 #endif
7706 }
7707 #if defined(acc_int32e_t)
7708 ACCLIB_PUBLIC(acc_int32e_t, acc_muldiv32s) (acc_int32e_t a, acc_int32e_t b, acc_int32e_t x)
7709 {
7710  acc_int32e_t r = 0;
7711  if __acc_likely(x != 0)
7712  {
7713 #if defined(acc_int64l_t)
7714  acc_int64l_t rr = (ACC_ICONV(acc_int64l_t, a) * b) / x;
7715  r = ACC_ITRUNC(acc_int32e_t, rr);
7716 #else
7717  ACC_UNUSED(a); ACC_UNUSED(b);
7718 #endif
7719  }
7720  return r;
7721 }
7722 ACCLIB_PUBLIC(acc_uint32e_t, acc_muldiv32u) (acc_uint32e_t a, acc_uint32e_t b, acc_uint32e_t x)
7723 {
7724  acc_uint32e_t r = 0;
7725  if __acc_likely(x != 0)
7726  {
7727 #if defined(acc_int64l_t)
7728  acc_uint64l_t rr = (ACC_ICONV(acc_uint64l_t, a) * b) / x;
7729  r = ACC_ITRUNC(acc_uint32e_t, rr);
7730 #else
7731  ACC_UNUSED(a); ACC_UNUSED(b);
7732 #endif
7733  }
7734  return r;
7735 }
7736 #endif
7737 #if (ACC_OS_WIN16)
7738 ACC_EXTERN_C void __far __pascal DebugBreak(void);
7739 #endif
7740 ACCLIB_PUBLIC_NOINLINE(void, acc_debug_break) (void)
7741 {
7742 #if (ACC_OS_WIN16)
7743  DebugBreak();
7744 #elif (ACC_ARCH_I086)
7745 #elif (ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
7746  DebugBreak();
7747 #elif (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
7748  __asm__ __volatile__("int $3\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
7749 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
7750  __asm { int 3 }
7751 #elif (ACC_OS_WIN32) && (ACC_HAVE_WINDOWS_H)
7752  DebugBreak();
7753 #else
7754  volatile acc_intptr_t a = -1;
7755  * ACC_STATIC_CAST(volatile unsigned long *, ACC_REINTERPRET_CAST(volatile void *, a)) = ~0ul;
7756 #endif
7757 }
7758 ACCLIB_PUBLIC_NOINLINE(void, acc_debug_nop) (void)
7759 {
7760 }
7761 ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_query) (void)
7762 {
7763 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
7764 # if (ACC_ARCH_AMD64)
7765  acc_uint64e_t r = 0;
7766 # else
7767  size_t r = 0;
7768 # endif
7769  __asm__ __volatile__("pushf\n pop %0\n" : "=a" (r) : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
7770  return ACC_ICONV(int, (r >> 18) & 1);
7771 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
7772  unsigned long r;
7773  __asm {
7774  pushf
7775  pop eax
7776  mov r,eax
7777  }
7778  return ACC_ICONV(int, (r >> 18) & 1);
7779 #else
7780  return -1;
7781 #endif
7782 }
7783 ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_enable) (int v)
7784 {
7785 #if (ACC_ARCH_AMD64) && (ACC_ASM_SYNTAX_GNUC)
7786  if (v) {
7787  __asm__ __volatile__("pushf\n orl $262144,(%%rsp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
7788  } else {
7789  __asm__ __volatile__("pushf\n andl $-262145,(%%rsp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
7790  }
7791  return 0;
7792 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
7793  if (v) {
7794  __asm__ __volatile__("pushf\n orl $262144,(%%esp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
7795  } else {
7796  __asm__ __volatile__("pushf\n andl $-262145,(%%esp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
7797  }
7798  return 0;
7799 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
7800  if (v) { __asm {
7801  pushf
7802  or dword ptr [esp],262144
7803  popf
7804  }} else { __asm {
7805  pushf
7806  and dword ptr [esp],-262145
7807  popf
7808  }}
7809  return 0;
7810 #else
7811  ACC_UNUSED(v); return -1;
7812 #endif
7813 }
7814 ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_qemu) (void)
7815 {
7816  unsigned r = 0;
7817 #if (ACC_OS_POSIX_LINUX || ACC_OS_WIN32 || ACC_OS_WIN64)
7818  const char* p;
7819  p = __ACCLIB_FUNCNAME(acc_getenv)(ACC_PP_STRINGIZE(ACC_ENV_RUNNING_ON_QEMU));
7820  if (p) {
7821  if (p[0] == 0) r = 0;
7822  else if ((p[0] >= '0' && p[0] <= '9') && p[1] == 0) r = ACC_ICAST(unsigned, p[0]) - '0';
7823  else r = 1;
7824  }
7825 #endif
7826  return r;
7827 }
7828 ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_valgrind) (void)
7829 {
7830 #if (ACC_ARCH_AMD64 && ACC_ABI_ILP32)
7831  return 0;
7832 #elif (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
7833  volatile size_t a[6];
7834  size_t r = 0;
7835  a[0] = 0x1001; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 0;
7836 # if (ACC_ARCH_AMD64)
7837  __asm__ __volatile__(".byte 0x48,0xc1,0xc7,0x03,0x48,0xc1,0xc7,0x0d,0x48,0xc1,0xc7,0x3d,0x48,0xc1,0xc7,0x33,0x48,0x87,0xdb\n" : "=d" (r) : "a" (&a[0]), "d" (r) __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
7838 # elif (ACC_ARCH_I386)
7839  __asm__ __volatile__(".byte 0xc1,0xc7,0x03,0xc1,0xc7,0x0d,0xc1,0xc7,0x1d,0xc1,0xc7,0x13,0x87,0xdb\n" : "=d" (r) : "a" (&a[0]), "d" (r) __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
7840 # endif
7841  return ACC_ITRUNC(unsigned, r);
7842 #else
7843  return 0;
7844 #endif
7845 }
7846 #if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
7847 # pragma warn(pop)
7848 #endif
7849 #endif
7850 #if defined(ACC_WANT_ACCLIB_WILDARGV)
7851 # undef ACC_WANT_ACCLIB_WILDARGV
7852 #define __ACCLIB_WILDARGV_CH_INCLUDED 1
7853 #if !defined(ACCLIB_PUBLIC)
7854 # define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
7855 #endif
7856 #if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
7857 #if 0 && (ACC_CC_MSC)
7858 ACC_EXTERN_C int __acc_cdecl __setargv(void);
7859 ACC_EXTERN_C int __acc_cdecl _setargv(void);
7860 ACC_EXTERN_C int __acc_cdecl _setargv(void) { return __setargv(); }
7861 #endif
7862 #endif
7863 #if (ACC_OS_WIN32 || ACC_OS_WIN64)
7864 #if (ACC_CC_MSC && (_MSC_VER >= 1900))
7865 #elif (ACC_CC_INTELC || ACC_CC_MSC)
7866 ACC_EXTERN_C int __acc_cdecl __setargv(void);
7867 ACC_EXTERN_C int __acc_cdecl _setargv(void);
7868 ACC_EXTERN_C int __acc_cdecl _setargv(void) { return __setargv(); }
7869 #endif
7870 #endif
7871 #if (ACC_OS_EMX)
7872 #define __ACCLIB_HAVE_ACC_WILDARGV 1
7873 ACCLIB_PUBLIC(void, acc_wildargv) (int* argc, char*** argv)
7874 {
7875  if (argc && argv) {
7876  _response(argc, argv);
7877  _wildcard(argc, argv);
7878  }
7879 }
7880 #endif
7881 #if (ACC_OS_CONSOLE_PSP) && defined(__PSPSDK_DEBUG__)
7882 #define __ACCLIB_HAVE_ACC_WILDARGV 1
7883 ACC_EXTERN_C int acc_psp_init_module(int*, char***, int);
7884 ACCLIB_PUBLIC(void, acc_wildargv) (int* argc, char*** argv)
7885 {
7886  acc_psp_init_module(argc, argv, -1);
7887 }
7888 #endif
7889 #if !(__ACCLIB_HAVE_ACC_WILDARGV)
7890 #define __ACCLIB_HAVE_ACC_WILDARGV 1
7891 ACCLIB_PUBLIC(void, acc_wildargv) (int* argc, char*** argv)
7892 {
7893 #if 1 && (ACC_ARCH_I086PM)
7894  if (ACC_MM_AHSHIFT != 3) { exit(1); }
7895 #elif 1 && (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
7896  __binmode(1);
7897  if (isatty(1)) __set_binmode(stdout, 0);
7898  if (isatty(2)) __set_binmode(stderr, 0);
7899 #endif
7900  ACC_UNUSED(argc); ACC_UNUSED(argv);
7901 }
7902 #endif
7903 #endif
7904 
7905 /* vim:set ts=4 sw=4 et: */