xapian-core
2.1.0
config.h
Go to the documentation of this file.
1
/* config.h. Generated from config.h.in by configure. */
2
/* config.h.in. Generated from configure.ac by autoheader. */
3
4
/* Define if building universal (internal helper macro) */
5
/* #undef AC_APPLE_UNIVERSAL_BUILD */
6
7
/* directory separator(s) as a character or string literal */
8
#define DIR_SEPS '/'
9
10
/* directory separator(s) as an initialiser list */
11
#define DIR_SEPS_LIST { '/' }
12
13
/* Define to error out if we try to include GPL code in libxapian */
14
/* #undef DISABLE_GPL_LIBXAPIAN */
15
16
/* Define to use flock() for flint-compatible locking */
17
/* #undef FLINTLOCK_USE_FLOCK */
18
19
/* Defined if system uses ieee format to store floating point numbers */
20
#define FOLLOWS_IEEE 1
21
22
/* Define to 1 if '-D_FORTIFY_SOURCE=2' link test passes */
23
#define FORTIFY_SOURCE_OK 1
24
25
/* Define if ftime returns void */
26
/* #undef FTIME_RETURNS_VOID */
27
28
/* Define to 1 if you have the `arc4random' function. */
29
/* #undef HAVE_ARC4RANDOM */
30
31
/* Define to 1 if you have the `arc4random_buf' function. */
32
/* #undef HAVE_ARC4RANDOM_BUF */
33
34
/* Define to 1 if you have the `clock_gettime' function. */
35
#define HAVE_CLOCK_GETTIME 1
36
37
/* Define to 1 if you have the `closefrom' function. */
38
/* #undef HAVE_CLOSEFROM */
39
40
/* Define to 1 if you have the `close_range' function. */
41
/* #undef HAVE_CLOSE_RANGE */
42
43
/* define if the compiler supports basic C++17 syntax */
44
#define HAVE_CXX17 1
45
46
/* define if the compiler supports basic C++20 syntax */
47
/* #undef HAVE_CXX20 */
48
49
/* define if the compiler supports basic C++23 syntax */
50
/* #undef HAVE_CXX23 */
51
52
/* Define to 1 if you have the <cxxabi.h> header file. */
53
#define HAVE_CXXABI_H 1
54
55
/* Define to 1 if you have the declaration of `exp10(double)', and to 0 if you
56
don't. */
57
#define HAVE_DECL_EXP10 1
58
59
/* Define to 1 if you have the declaration of `siglongjmp', and to 0 if you
60
don't. */
61
#define HAVE_DECL_SIGLONGJMP 1
62
63
/* Define to 1 if you have the declaration of `sigsetjmp', and to 0 if you
64
don't. */
65
#define HAVE_DECL_SIGSETJMP 1
66
67
/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
68
don't. */
69
#define HAVE_DECL_STRERROR_R 1
70
71
/* Define to 1 if you have the declaration of `_addcarry_u32(unsigned char,
72
unsigned, unsigned, unsigned*)', and to 0 if you don't. */
73
#define HAVE_DECL__ADDCARRY_U32 0
74
75
/* Define to 1 if you have the declaration of `_addcarry_u64(unsigned char,
76
unsigned __int64, unsigned __int64, unsigned __int64*)', and to 0 if you
77
don't. */
78
#define HAVE_DECL__ADDCARRY_U64 0
79
80
/* Define to 1 if you have the declaration of `_byteswap_uint64', and to 0 if
81
you don't. */
82
#define HAVE_DECL__BYTESWAP_UINT64 0
83
84
/* Define to 1 if you have the declaration of `_byteswap_ulong', and to 0 if
85
you don't. */
86
#define HAVE_DECL__BYTESWAP_ULONG 0
87
88
/* Define to 1 if you have the declaration of `_byteswap_ushort', and to 0 if
89
you don't. */
90
#define HAVE_DECL__BYTESWAP_USHORT 0
91
92
/* Define to 1 if you have the declaration of `_putenv_s(const char*, const
93
char*)', and to 0 if you don't. */
94
#define HAVE_DECL__PUTENV_S 0
95
96
/* Define to 1 if you have the declaration of `_subborrow_u32(unsigned char,
97
unsigned, unsigned, unsigned*)', and to 0 if you don't. */
98
#define HAVE_DECL__SUBBORROW_U32 0
99
100
/* Define to 1 if you have the declaration of `_subborrow_u64(unsigned char,
101
unsigned __int64, unsigned __int64, unsigned __int64*)', and to 0 if you
102
don't. */
103
#define HAVE_DECL__SUBBORROW_U64 0
104
105
/* Define to 1 if you have the declaration of `__builtin_add_overflow(int,
106
int, int*)', and to 0 if you don't. */
107
#define HAVE_DECL___BUILTIN_ADD_OVERFLOW 1
108
109
/* Define to 1 if you have the declaration of `__builtin_bswap16(uint16_t)',
110
and to 0 if you don't. */
111
#define HAVE_DECL___BUILTIN_BSWAP16 1
112
113
/* Define to 1 if you have the declaration of `__builtin_bswap32(uint32_t)',
114
and to 0 if you don't. */
115
#define HAVE_DECL___BUILTIN_BSWAP32 1
116
117
/* Define to 1 if you have the declaration of `__builtin_bswap64(uint64_t)',
118
and to 0 if you don't. */
119
#define HAVE_DECL___BUILTIN_BSWAP64 1
120
121
/* Define to 1 if you have the declaration of `__builtin_clz(unsigned)', and
122
to 0 if you don't. */
123
#define HAVE_DECL___BUILTIN_CLZ 1
124
125
/* Define to 1 if you have the declaration of `__builtin_clzl(unsigned long)',
126
and to 0 if you don't. */
127
#define HAVE_DECL___BUILTIN_CLZL 1
128
129
/* Define to 1 if you have the declaration of `__builtin_clzll(unsigned long
130
long)', and to 0 if you don't. */
131
#define HAVE_DECL___BUILTIN_CLZLL 1
132
133
/* Define to 1 if you have the declaration of `__builtin_ctz(unsigned)', and
134
to 0 if you don't. */
135
#define HAVE_DECL___BUILTIN_CTZ 1
136
137
/* Define to 1 if you have the declaration of `__builtin_ctzl(unsigned long)',
138
and to 0 if you don't. */
139
#define HAVE_DECL___BUILTIN_CTZL 1
140
141
/* Define to 1 if you have the declaration of `__builtin_ctzll(unsigned long
142
long)', and to 0 if you don't. */
143
#define HAVE_DECL___BUILTIN_CTZLL 1
144
145
/* Define to 1 if you have the declaration of `__builtin_expect(long, long)',
146
and to 0 if you don't. */
147
#define HAVE_DECL___BUILTIN_EXPECT 1
148
149
/* Define to 1 if you have the declaration of `__builtin_ffs(int)', and to 0
150
if you don't. */
151
#define HAVE_DECL___BUILTIN_FFS 1
152
153
/* Define to 1 if you have the declaration of `__builtin_mul_overflow(int,
154
int, int*)', and to 0 if you don't. */
155
#define HAVE_DECL___BUILTIN_MUL_OVERFLOW 1
156
157
/* Define to 1 if you have the declaration of `__builtin_popcount(unsigned)',
158
and to 0 if you don't. */
159
#define HAVE_DECL___BUILTIN_POPCOUNT 1
160
161
/* Define to 1 if you have the declaration of `__builtin_popcountl(unsigned
162
long)', and to 0 if you don't. */
163
#define HAVE_DECL___BUILTIN_POPCOUNTL 1
164
165
/* Define to 1 if you have the declaration of `__builtin_popcountll(unsigned
166
long long)', and to 0 if you don't. */
167
#define HAVE_DECL___BUILTIN_POPCOUNTLL 1
168
169
/* Define to 1 if you have the declaration of `__builtin_sub_overflow(int,
170
int, int*)', and to 0 if you don't. */
171
#define HAVE_DECL___BUILTIN_SUB_OVERFLOW 1
172
173
/* Define to 1 if you have the declaration of `__exp10(double)', and to 0 if
174
you don't. */
175
#define HAVE_DECL___EXP10 1
176
177
/* Define to 1 if you have the declaration of `__popcnt', and to 0 if you
178
don't. */
179
#define HAVE_DECL___POPCNT 0
180
181
/* Define to 1 if you have the declaration of `__popcnt64', and to 0 if you
182
don't. */
183
#define HAVE_DECL___POPCNT64 0
184
185
/* Define to 1 if you have the <dlfcn.h> header file. */
186
#define HAVE_DLFCN_H 1
187
188
/* Define to 1 if you have the <fcntl.h> header file. */
189
#define HAVE_FCNTL_H 1
190
191
/* Define to 1 if you have the `fdatasync' function. */
192
#define HAVE_FDATASYNC 1
193
194
/* Define to 1 if you have the `fork' function. */
195
#define HAVE_FORK 1
196
197
/* Define to 1 if you have the `fsync' function. */
198
#define HAVE_FSYNC 1
199
200
/* Define to 1 if you have the `ftime' function. */
201
#define HAVE_FTIME 1
202
203
/* Define to 1 if you have the `ftruncate' function. */
204
#define HAVE_FTRUNCATE 1
205
206
/* Define to 1 if you have the `getdirentries' function. */
207
#define HAVE_GETDIRENTRIES 1
208
209
/* Define to 1 if you have the `getentropy' function. */
210
#define HAVE_GETENTROPY 1
211
212
/* Define to 1 if you have the `gethostname' function. */
213
#define HAVE_GETHOSTNAME 1
214
215
/* Define to 1 if you have the `getrlimit' function. */
216
#define HAVE_GETRLIMIT 1
217
218
/* Define to 1 if you have the `getrusage' function. */
219
#define HAVE_GETRUSAGE 1
220
221
/* Define to 1 if you have the `gettimeofday' function. */
222
#define HAVE_GETTIMEOFDAY 1
223
224
/* Define to 1 if you have the <inttypes.h> header file. */
225
#define HAVE_INTTYPES_H 1
226
227
/* Define to 1 if you have the <limits.h> header file. */
228
#define HAVE_LIMITS_H 1
229
230
/* Define to 1 if you have the `link' function. */
231
#define HAVE_LINK 1
232
233
/* Define to 1 if you have the `nanosleep' function. */
234
#define HAVE_NANOSLEEP 1
235
236
/* Define to 1 if you have the `nftw' function. */
237
#define HAVE_NFTW 1
238
239
/* Define to 1 if you have the `poll' function. */
240
#define HAVE_POLL 1
241
242
/* Define to 1 if you have the <poll.h> header file. */
243
#define HAVE_POLL_H 1
244
245
/* Define to 1 if you have the `posix_fadvise' function. */
246
#define HAVE_POSIX_FADVISE 1
247
248
/* Define if pread is available on this system */
249
#define HAVE_PREAD 1
250
251
/* Define if pwrite is available on this system */
252
#define HAVE_PWRITE 1
253
254
/* Define to 1 if you have the `setenv' function. */
255
#define HAVE_SETENV 1
256
257
/* Define to 1 if you have the `sigaction' function. */
258
#define HAVE_SIGACTION 1
259
260
/* Define to 1 if you have the `sleep' function. */
261
#define HAVE_SLEEP 1
262
263
/* Define to 1 if you have the 'socketpair' function. */
264
#define HAVE_SOCKETPAIR 1
265
266
/* Define to 1 if you have the <stdint.h> header file. */
267
#define HAVE_STDINT_H 1
268
269
/* Define to 1 if you have the <stdio.h> header file. */
270
#define HAVE_STDIO_H 1
271
272
/* Define to 1 if you have the <stdlib.h> header file. */
273
#define HAVE_STDLIB_H 1
274
275
/* Define if std::from_chars() works for double */
276
/* #undef HAVE_STD_FROM_CHARS_DOUBLE */
277
278
/* Define to 1 if you have the `strerrordesc_np' function. */
279
/* #undef HAVE_STRERRORDESC_NP */
280
281
/* Define if you have `strerror_r'. */
282
#define HAVE_STRERROR_R 1
283
284
/* Define to 1 if you have the <strings.h> header file. */
285
#define HAVE_STRINGS_H 1
286
287
/* Define to 1 if you have the <string.h> header file. */
288
#define HAVE_STRING_H 1
289
290
/* Define to 1 if you have the `sysconf' function. */
291
#define HAVE_SYSCONF 1
292
293
/* Define to 1 if you have the <sysexits.h> header file. */
294
#define HAVE_SYSEXITS_H 1
295
296
/* Define if you have 'sys_errlist' and 'sys_nerr' */
297
#define HAVE_SYS_ERRLIST_AND_SYS_NERR 1
298
299
/* Define to 1 if you have the <sys/resource.h> header file. */
300
#define HAVE_SYS_RESOURCE_H 1
301
302
/* Define to 1 if you have the <sys/select.h> header file. */
303
#define HAVE_SYS_SELECT_H 1
304
305
/* Define to 1 if you have the <sys/stat.h> header file. */
306
#define HAVE_SYS_STAT_H 1
307
308
/* Define to 1 if you have the <sys/types.h> header file. */
309
#define HAVE_SYS_TYPES_H 1
310
311
/* Define to 1 if you have the <sys/uio.h> header file. */
312
#define HAVE_SYS_UIO_H 1
313
314
/* Define to 1 if you have the <sys/utsname.h> header file. */
315
#define HAVE_SYS_UTSNAME_H 1
316
317
/* Define to 1 if you have the 'timer_create' function. */
318
#define HAVE_TIMER_CREATE 1
319
320
/* Define to 1 if you have the `times' function. */
321
#define HAVE_TIMES 1
322
323
/* Define to 1 if you have the <unistd.h> header file. */
324
#define HAVE_UNISTD_H 1
325
326
/* Define to 1 if you have the <uuid.h> header file. */
327
/* #undef HAVE_UUID_H */
328
329
/* Define to 1 if you have the <uuid/uuid.h> header file. */
330
#define HAVE_UUID_UUID_H 1
331
332
/* Define if a suitable valgrind is installed */
333
#define HAVE_VALGRIND 1
334
335
/* Define to 1 if you have the <valgrind/memcheck.h> header file. */
336
#define HAVE_VALGRIND_MEMCHECK_H 1
337
338
/* Define to 1 if you have the `writev' function. */
339
#define HAVE_WRITEV 1
340
341
/* Define to 1 if you have the <zlib.h> header file. */
342
#define HAVE_ZLIB_H 1
343
344
/* Define to 1 if you have the `_putenv_s' function. */
345
/* #undef HAVE__PUTENV_S */
346
347
/* Define if you have '_sys_errlist' and '_sys_nerr' */
348
#define HAVE__SYS_ERRLIST_AND__SYS_NERR 1
349
350
/* Define to 1 if you have the '__builtin_exp10' function. */
351
#define HAVE___BUILTIN_EXP10 1
352
353
/* Define to the sub-directory where libtool stores uninstalled libraries. */
354
#define LT_OBJDIR ".libs/"
355
356
/* Define on mingw to get _s suffixed "secure" functions declared in headers
357
*/
358
/* #undef MINGW_HAS_SECURE_API */
359
360
/* Name of package */
361
#define PACKAGE "xapian-core"
362
363
/* Define to the address where bug reports for this package should be sent. */
364
#define PACKAGE_BUGREPORT "https://xapian.org/bugs"
365
366
/* Define to the full name of this package. */
367
#define PACKAGE_NAME "xapian-core"
368
369
/* Define to the full name and version of this package. */
370
#define PACKAGE_STRING "xapian-core 2.1.0"
371
372
/* Define to the one symbol short name of this package. */
373
#define PACKAGE_TARNAME "xapian-core"
374
375
/* Define to the home page for this package. */
376
#define PACKAGE_URL ""
377
378
/* Define to the version of this package. */
379
#define PACKAGE_VERSION "2.1.0"
380
381
/* explicit prototype needed for pread (if any) */
382
/* #undef PREAD_PROTOTYPE */
383
384
/* explicit prototype needed for pwrite (if any) */
385
/* #undef PWRITE_PROTOTYPE */
386
387
/* The size of `int', as computed by sizeof. */
388
#define SIZEOF_INT 4
389
390
/* The size of `long', as computed by sizeof. */
391
#define SIZEOF_LONG 8
392
393
/* The size of `long long', as computed by sizeof. */
394
#define SIZEOF_LONG_LONG 8
395
396
/* The size of `short', as computed by sizeof. */
397
#define SIZEOF_SHORT 2
398
399
/* type to use for 5th parameter to getsockopt */
400
#define SOCKLEN_T socklen_t
401
402
/* Define to 1 if all of the C90 standard headers exist (not just the ones
403
required in a freestanding environment). This macro is provided for
404
backward compatibility; new code need not use it. */
405
#define STDC_HEADERS 1
406
407
/* Define to 1 if strerror_r returns char *. */
408
#define STRERROR_R_CHAR_P 1
409
410
/* Define to use ICU to find word breaks */
411
#define USE_ICU 1
412
413
/* Define to 1 to read UUID from '/proc/sys/kernel/random/uuid' */
414
/* #undef USE_PROC_FOR_UUID */
415
416
/* Define if the testsuite can use RTTI */
417
#define USE_RTTI 1
418
419
/* Define to 1 to use UuidCreate(), etc */
420
/* #undef USE_WIN32_UUID_API */
421
422
/* Version number of package */
423
#define VERSION "2.1.0"
424
425
/* Version of Windows to assume (0x600 => Vista). */
426
/* #undef WINVER */
427
428
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
429
significant byte first (like Motorola and SPARC, unlike Intel). */
430
#if defined AC_APPLE_UNIVERSAL_BUILD
431
# if defined __BIG_ENDIAN__
432
# define WORDS_BIGENDIAN 1
433
# endif
434
#else
435
# ifndef WORDS_BIGENDIAN
436
/* # undef WORDS_BIGENDIAN */
437
# endif
438
#endif
439
440
/* Define if you want assertions (causes some slow-down) */
441
/* #undef XAPIAN_ASSERTIONS */
442
443
/* Define if you want paranoid assertions (causes significant slow-down) */
444
/* #undef XAPIAN_ASSERTIONS_PARANOID */
445
446
/* Define if you want a log of methods called and other debug messages */
447
/* #undef XAPIAN_DEBUG_LOG */
448
449
/* Number of bits in a file offset, on hosts where this is settable. */
450
/* #undef _FILE_OFFSET_BITS */
451
452
/* Define for large files, on AIX-style hosts. */
453
/* #undef _LARGE_FILES */
454
455
/* Version of Windows to assume. */
456
/* #undef _WIN32_WINNT */
457
458
/* Define to `int' if <sys/types.h> does not define. */
459
/* #undef mode_t */
460
461
/* Define as a signed integer type capable of holding a process identifier. */
462
/* #undef pid_t */
463
464
/* Define to `int' if <sys/types.h> does not define. */
465
/* #undef ssize_t */
466
467
/* Disable stupid MSVC warnings. */
468
#ifdef _MSC_VER
469
/* Passing an empty parameter to a single parameter macro. */
470
# pragma warning(disable:4003)
471
/* Assignment in conditional expression; other compilers suppress with extra parentheses but not MSVC. */
472
# pragma warning(disable:4706)
473
/* A "performance" warning for converting int to bool. */
474
# pragma warning(disable:4800)
475
/* Character in string literal can't be represented in current code page. */
476
# pragma warning(disable:4566)
477
478
/* POSIX get to deprecate POSIX things, not Microsoft. */
479
# ifndef _CRT_NONSTDC_NO_WARNINGS
480
# define _CRT_NONSTDC_NO_WARNINGS
481
# endif
482
# ifndef _CRT_SECURE_NO_WARNINGS
483
# define _CRT_SECURE_NO_WARNINGS
484
# endif
485
486
/* WSAAddressToStringA() is deprecated and we should apparently use
487
* WSAAddressToStringW(), but we don't want wide character output so
488
* that would mean we'd have to convert the result back to ASCII
489
* which is a really stupid idea.
490
*/
491
# ifndef _WINSOCK_DEPRECATED_NO_WARNINGS
492
# define _WINSOCK_DEPRECATED_NO_WARNINGS
493
# endif
494
495
/* Tell MSVC we want M_PI, etc defined. */
496
# ifndef _USE_MATH_DEFINES
497
# define _USE_MATH_DEFINES
498
# endif
499
500
/* Tell MSVC we don't want max() and min() macros defined. */
501
# ifndef NOMINMAX
502
# define NOMINMAX
503
# endif
504
#endif
505
506
/* Tell zlib to include const in method signatures. Define this in config.h
507
* to ensure it always gets defined before zlib.h is included.
508
*/
509
#define ZLIB_CONST
510
511
/* Make the POSIX-like functions support large files. MSVC needs this;
512
* current mingw32 does too; mingw64 supports _FILE_OFFSET_BITS, which
513
* AC_SYS_LARGEFILE should discover and enable automatically.
514
*/
515
#if defined _MSC_VER || \
516
(defined __MINGW32__ && !defined _FILE_OFFSET_BITS)
517
518
# include <sys/stat.h>
519
# include <sys/types.h>
520
# include <io.h>
521
/* zlib.h uses off_t so we need to include it before we redefine off_t. */
522
# include <zlib.h>
523
524
// The default stat() and fstat() use 32-bit filesizes and time_t, so we need
525
// to arrange to use 64-bit variants instead.
526
527
# ifdef stat
528
// Break #undef lines to stop config.status from commenting them out.
529
# undef \
530
stat
531
# endif
532
533
// This hack is a problem is we ever want a method called "stat".
534
# ifdef _MSC_VER
535
// MSVC needs to call _stat64() instead of stat() and the struct which holds
536
// the information is `struct _stat64` instead of `struct stat` so we just
537
// use #define to replace both in one go.
538
# define stat _stat64
539
# else
540
// Mingw32 has _stat64() but unhelpfully for our purposes, the struct is
541
// called __stat64 (with an extra underscore). We hack around this by
542
// defining stat to __stat64 which sorts out the struct, and then using
543
// a second macro to forward function-like uses of __stat64() to
544
// _stat64().
545
# define stat __stat64
546
# define __stat64(PATH, STATBUF) _stat64((PATH), (STATBUF))
547
# endif
548
549
// We also want to use _fstat64() instead of fstat() but in this case we can
550
// use a function-like macro, so we could have a method called fstat so long
551
// as it didn't take two parameters.
552
553
# ifdef fstat
554
// Break #undef lines to stop config.status from commenting them out.
555
# undef \
556
fstat
557
# endif
558
559
# define fstat(FD, BUF) _fstat64(FD, BUF)
560
561
# ifdef lseek
562
// Break #undef lines to stop config.status from commenting them out.
563
# undef \
564
lseek
565
# endif
566
567
# ifdef off_t
568
// Break #undef lines to stop config.status from commenting them out.
569
# undef \
570
off_t
571
# endif
572
573
# define lseek(FD, OFF, WHENCE) _lseeki64(FD, OFF, WHENCE)
574
/* Redefine via a typedef so C++ code off_t(-1) works - it wouldn't if we did:
575
* #define off_t long long
576
*/
577
typedef
long
long
off_t_redefinition_typedef;
578
# define off_t off_t_redefinition_typedef
579
580
#endif
581
582
/* MSVC defines _WIN32 but not __WIN32__. */
583
#if !defined __WIN32__ && defined _WIN32
584
# define __WIN32__
585
#endif
586
587
/* MSVC defines _WIN64 but not __WIN64__. */
588
#if !defined __WIN64__ && defined _WIN64
589
# define __WIN64__
590
#endif
591
592
/* Default to enabling _FORTIFY_SOURCE at level 2 for GCC-like compilers. It
593
* shouldn't cause a problem to define it where it's not supported.
594
*
595
* The FORTIFY_SOURCE_OK check avoids auto-enabling on some mingw-w64 versions
596
* which required linking with -lssp too. This was addressed in v11.0.0
597
* (released 2023-04-28).
598
*
599
* Check if _FORTIFY_SOURCE is already defined to allow the user to override
600
* our choice with "./configure CPPFLAGS=-D_FORTIFY_SOURCE=0" or "...=1" or
601
* "...=3".
602
*/
603
#if defined FORTIFY_SOURCE_OK && !defined _FORTIFY_SOURCE
604
# define _FORTIFY_SOURCE 2
605
#endif
606
607
/* For compilers which support it (such as GCC, clang, Intel's C++ compiler)
608
* we can use __builtin_expect to give the compiler hints about branch
609
* prediction. See HACKING for how to use these.
610
*/
611
#if HAVE_DECL___BUILTIN_EXPECT
612
/* The arguments of __builtin_expect() are both long, so use !! to ensure that
613
* the first argument is always an integer expression, and always 0 or 1, but
614
* still has the same truth value for the if or while it is used in.
615
*/
616
# define rare(COND) __builtin_expect(!!(COND), 0)
617
# define usual(COND) __builtin_expect(!!(COND), 1)
618
#else
619
# define rare(COND) (COND)
620
# define usual(COND) (COND)
621
#endif
622
623
/* This macro can be used around expressions which intentionally make use of
624
* unsigned integer overflow (which is defined behaviour, unlike signed integer
625
* overflow) so that we can use UBSan's optional unsigned-integer-overflow
626
* check to find potential bugs where we unintentionally overflow an unsigned
627
* integer.
628
*/
629
#ifdef __clang__
630
#define UNSIGNED_OVERFLOW_OK(X) \
631
([&]() __attribute__((no_sanitize("unsigned-integer-overflow"
))) {\
632
return (X);\
633
}())
634
#else
635
# define UNSIGNED_OVERFLOW_OK(X) (X)
636
#endif
637
638
/* Signal we're building the library so it's OK to include headers such as
639
* xapian/query.h directly.
640
*/
641
#define XAPIAN_LIB_BUILD 1
642
Generated by
Doxygen 1.9.1