source: git/Singular/mod2.h.in @ b14855

fieker-DuValspielwiese
Last change on this file since b14855 was 76b37c, checked in by Alexander Dreyer <alexander.dreyer@…>, 13 years ago
Merge commit 'origin/master' into pyobject From: Alexander Dreyer <alexander.dreyer@itwm.fraunhofer.de> git-svn-id: file:///usr/local/Singular/svn/trunk@13837 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 18.4 KB
RevLine 
[a70441f]1/* -*-c++-*- */
[5f9072]2/*******************************************************************
3 *  Computer Algebra System SINGULAR
4 *
5 *  mod2.h: Main configuration file for Singular
6 *          DO NOT EDIT!
7 *
[341696]8 *  Version: $Id$
[5f9072]9 *******************************************************************/
10#ifndef MOD2_H
11#define MOD2_H
12
13/*******************************************************************
[a693ce]14 * Defines which are set by configure
[5f9072]15 ******************************************************************/
[f413ec5]16/* Define to use dynamic linking */
17#undef HAVE_DL
[833e11]18/* Define to use readline lib for fancy display: configure result */
19#undef HAVE_LIBREADLINE
[7e5a38]20/* Define to use static readline lib for fancy display */
[5f9072]21#undef HAVE_READLINE
[7e5a38]22/* define to use dynamic version of readline lib */
23#undef HAVE_DYN_RL
[5f9072]24/* Define to have dbm links */
25#undef HAVE_DBM
26/* Define to have MP links */
27#undef HAVE_MPSR
28/* Define to have factory functionality added */
29#undef HAVE_FACTORY
30/* Define if you have stdc headers */
31#undef STDC_HEADERS
[b60fb4]32/* Define if you have asm/sigcontext.h */
33#undef HAVE_ASM_SIGCONTEXT_H
[5f9072]34/* Define if you have sys/file.h */
35#undef HAVE_SYS_FILE_H
[64c6d1]36/* Define if you have sys/stat.h */
37#undef HAVE_SYS_STAT_H
[1caa72]38/* Define if you have sys/param.h */
39#undef HAVE_SYS_PARAM_H
40/* Define if you have sys/file.h */
41#undef HAVE_SYS_TYPES_H
[5f9072]42/* Define if you have sys/ioctl.h */
43#undef HAVE_SYS_IOCTL_H
44/* Define if you have sys/time.h */
45#undef HAVE_SYS_TIME_H
[b85a6c]46/* Define if you have sys/times.h */
47#undef HAVE_SYS_TIMES_H
[3037783]48/* io header: */
49/* Define if you have termcap.h */
50#undef HAVE_TERMCAP_H
51/* Define if you have termios.h */
52#undef HAVE_TERMIOS_H
[bd337e]53/* Define if you have term.h */
54#undef HAVE_TERM_H
[7d52ae]55/* Define if you have readline/history.h */
56#undef HAVE_READLINE_HISTORY_H
[3a8afb6]57/* Define if readline/readline.h is ok */
58#undef READLINE_READLINE_H_OK
[5f9072]59/* Define if time.h and sys/time.h can be included at the same time */
60#undef TIME_WITH_SYS_TIME
61/* Define if you have alloca.h */
62#undef HAVE_ALLOCA_H
[1caa72]63/* Define if you have pwd.h */
64#undef HAVE_PWD_H
[52a5e8]65/* Define if you have unistd.h */
66#undef HAVE_UNISTD_H
[138f0c]67/* define if you have malloc.h */
[52a5e8]68#undef HAVE_MALLOC_H
[138f0c]69/* define if you have pwd.h*/
70#undef HAVE_PWD_H
[5f9072]71/* Define if you have alloca */
72#undef HAVE_ALLOCA
73/* Define if you have getpagesize */
74#undef GETPAGESIZE
75/* Define if you have vprintf */
76#undef HAVE_VPRINTF
77/* Define if you have gettimeofday */
78#undef HAVE_GETTIMEOFDAY
79/* Define if you have atexit */
80#undef HAVE_ATEXIT
[a693ce]81/* Define if you have bcopy, bzero and bcmp
[2c3da6]82   Linux needs that define! */
83#undef HAVE_BCOPY
[5f9072]84/* Define if sprintf does not return number of printed chars */
85#undef BSD_SPRINTF
[c7db8e]86/* define if you have explicit C++ constructors */
87#undef HAVE_EXPLICIT_CONSTR
[1caa72]88/* Define if you have the getcwd function.  */
89#undef HAVE_GETCWD
90/* Define if you have the getwd function.  */
91#undef HAVE_GETWD
[a79a128]92/* Define if you have snprintf */
93#undef HAVE_VSNPRINTF
[a8bce04]94/* Define if you have readlink */
95#undef HAVE_READLINK
[45f7bf]96/* Define if you have usleep */
97#undef HAVE_USLEEP
[3bb3e6a]98/* Define if you have sleep */
99#undef HAVE_SLEEP
[9c35ef]100/* Define if you have setenv */
101#undef HAVE_SETENV
[138f0c]102/* Define if you have petpwnam */
103#undef HAVE_GETPWNAM
[9d72fe]104/* Define if you have popen */
105#undef HAVE_POPEN
[4094088]106/* Define if you have sysconf */
107#undef HAVE_SYSCONF
[206aed]108/* Define if you have siginterrupt (BSD4.3) */
109#undef HAVE_SIGINTERRUPT
[1cddd8]110/* define for boost includes and lib */
[f5da37]111//////////////////////// #undef HAVE_BOOST_DYNAMIC_BITSET_HPP
[ea6657f]112/* define for std:vector includes */
113#undef USE_STDVECBOOL
[51c163]114/* Define sizeof(char) */
115#define SIZEOF_CHAR 1
116/* Define sizeof(short) */
117#define SIZEOF_SHORT 2
118/* Define sizeof(int) */
119#define SIZEOF_INT 4
120/* Define sizeof(long) */
121#define SIZEOF_LONG 4
[5f9072]122/* Define sizeof(void*) */
123#define SIZEOF_VOIDP 4
[fff984]124/* Define sizeof(double) */
125#define SIZEOF_DOUBLE 8
[51c163]126/* Define if your integer format is big endian */
127#undef WORDS_BIGENDIAN
[64c6d1]128/* Define major version of Singular -- should be set in ../configure.in!!!*/
[cb0e67b]129#define SINGULAR_MAJOR_VERSION 0
[64c6d1]130/* Define minor version of Singular -- should be set in ../configure.in!!! */
[cb0e67b]131#define SINGULAR_MINOR_VERSION 0
[64c6d1]132/* Define sub version of Singular -- should be set in ../configure.in!!! */
[cb0e67b]133#define SINGULAR_SUB_VERSION 0
[5f9072]134/* Define version as a string */
135#define S_VERSION1 ""
136/* Define version date as a string */
137#define S_VERSION2 ""
[72f950]138/* Define uname identifier as a string */
139#define S_UNAME ""
[9c35ef]140/* Absolute pathname of root directory of Singular source */
141#define S_ROOT_DIR ""
[814c11]142/* Define to enable dynamic module code */
143#undef HAVE_DYNAMIC_LOADING
144/* Define to enable plural */
145#undef HAVE_PLURAL
[9e9dbc]146/* Define to enable ratGB/ ratGRING */
147#undef HAVE_RATGRING
[037df4]148/* Define to enable shiftbba */
149#undef HAVE_SHIFTBBA
[696db9]150/* Define to enable libsvd */
151#undef HAVE_SVD
[7afec5]152/* CPU type: i[3456]86: */
153#undef SI_CPU_I386
154/* CPU type: sparc: */
155#undef SI_CPU_SPARC
156/* CPU type: ppc: */
157#undef SI_CPU_PPC
158/* CPU type: IA64: */
159#undef SI_CPU_IA64
160/* CPU type: x86_64: */
161#undef SI_CPU_X86_64
[1cb879]162/* whether development version of python is available */
163#undef HAVE_PYTHON
[76b37c]164/* whether static development version of python is available */
165#undef HAVE_STATIC_PYTHON
166/* whether python should be embedded */
167#undef EMBED_PYTHON
[5f9072]168
169/*******************************************************************
170 * Defines which are not set by configure
171 ******************************************************************/
[f413ec5]172
[5f9072]173/* Default value for timer resolution in ticks per second */
174/* set to 10 for resolution of tenth of a second, etc */
175#define TIMER_RESOLUTION 1
[f413ec5]176
[5f9072]177/* Undefine to disable the quote/eval of expressions */
178#define SIQ 1
[f413ec5]179
[dc87554]180/* Undefine to disable Gerhard's and Wilfried's fast and dirty std computations */
[5f9072]181#define FAST_AND_DIRTY
182
[c3f0f3]183/* eigenvalues */
[670d92]184#ifndef HAVE_DYNAMIC_LOADING
[c3f0f3]185#define HAVE_EIGENVAL 1
186
[bb0153]187/* Gauss-Manin system */
188#define HAVE_GMS 1
[670d92]189#endif
[bb0153]190
[057751]191/* linear algebra extensions from pcv.h/pcv.cc */
192#define HAVE_PCV 1
193
[b546c0]194/* procedures to compute groebner bases with the f5 implementation */
195/* still testing */
[c1a5fd]196#undef HAVE_F5
[586b38]197
198/* procedures to compute groebner bases with the f5c implementation */
199/* still testing */
[5979b5]200#undef HAVE_F5C
[797ff9]201
[b4e3253]202/* letterplace gb:*/
[4b00ef]203#define HAVE_SHIFTBBA 1
[b546c0]204
205/* rings as coefficients */
206#define HAVE_RINGS
207
208/* procedures to compute with units */
[4abea21]209#define HAVE_UNITS
[7e67559]210
[6a51ef]211/* Define to use scanner when loading libraries */
212#define HAVE_LIBPARSER
213
[2b3f23]214/*#define PROFILING*/
[670667]215#ifdef PROFILING
[2b3f23]216#define PROFILER ,0,0
[670667]217#else
[a693ce]218#define PROFILER
[670667]219#endif
220
[5f9072]221/*******************************************************************
222 * Evaluate the set defines
223 ******************************************************************/
[7885020]224/* Spectrum needs GMP */
[d3bf098]225#define HAVE_SPECTRUM 1
[7885020]226
[5f9072]227#if SIZEOF_VOIDP == 8
[b7b08c]228/* SIZEOF_LONG == SIZEOF_VOIDP is guaranteed by configure */
[5f9072]229#define ALIGN_8
[b7b08c]230#define LOG_SIZEOF_LONG  3
231#define LOG_SIZEOF_VOIDP 3
232#else
233#define LOG_SIZEOF_LONG  2
234#define LOG_SIZEOF_VOIDP 2
[5f9072]235#endif
236
[f62e786]237#ifndef CHAR_BIT
238#define CHAR_BIT 8
239#endif
240
241#define BIT_SIZEOF_LONG CHAR_BIT*SIZEOF_LONG
242
[bb19c5]243#define SINGULAR_PATCHLEVEL 0
[ea6657f]244#define SINGULAR_VERSION ((SINGULAR_MAJOR_VERSION*1000 + SINGULAR_MINOR_VERSION*100 + SINGULAR_SUB_VERSION*10)+SINGULAR_PATCHLEVEL)
[5f9072]245
246/*******************************************************************
[a693ce]247 * Miscellanous Defines
[5f9072]248 ******************************************************************/
[dc0898]249/* Under HPUX 9, system(...) returns -1 if SIGCHLD does not equal
250   SIG_DFL. However, if it stays at SIG_DFL we get zombie processes
251   for terminated childs generated by fork. Therefors some special treatment
252   is necessary */
253#ifdef HPUX_9
254#include <stdlib.h>
255#define system hpux9_system
256#ifdef __cplusplus
257extern "C" {
258#endif
259int hpux9_system(const char* system);
260#ifdef __cplusplus
261}
262#endif
263#endif
[faaef1]264
[6a51ef]265#ifndef HAVE_LIBPARSER
266#  undef YYLPDEBUG
267#else
[799ce1]268#  define YYLPDEBUG 1
[6a51ef]269#endif
270
[5f9072]271#ifndef FALSE
272#define FALSE       0
273#endif
274
275#ifndef TRUE
276#define TRUE        1
277#endif
278
279#ifndef NULL
280#define NULL        (0)
281#endif
282
283#ifndef SEEK_END
284#define SEEK_END 2
285#endif
286
287#ifndef SEEK_SET
288#define SEEK_SET 0
289#endif
290
291#define HALT() m2_end(2)
292
293#define memcpy4 memcpy
294
[faaef1]295/* define OLD_RES for res/sres/mres(i,j,k) */
[1dc07a7]296#undef OLD_RES
[faaef1]297
[5f9072]298/* the maximal ascii length of an int number + 1 = 11 for 32 bit int */
299#define MAX_INT_LEN 11
[82af190]300#define MAX_INT_VAL 0x7fffffff
[5f9072]301
[51c163]302#ifdef DO_PROFILE
[a693ce]303/* define to enable explicit profiling of some crucial inline
[f92fa13]304 * routines and defines  */
[7a5e7c]305#undef DO_DEEP_PROFILE
[51c163]306#endif
[f92fa13]307
[52a5e8]308/* define to enable assume */
309#ifndef HAVE_ASSUME
310#undef HAVE_ASSUME
311#endif
312
[6b32990]313/* define LINKAGE to "extern C" if compiling for shared libs */
314#ifndef LINKAGE
315#if defined(PIC)
316#define LINKAGE extern "C"
317#else
318#define LINKAGE
319#endif
320#endif
321
[b7b08c]322
[5f9072]323/*******************************************************************
324 * DEBUG OPTIONS
325 * -- only significant for for compiling without -DNDEBUG
326 * -- you better know what your are doing, if you touch this
327 ******************************************************************/
[a693ce]328#ifndef NDEBUG
[5f9072]329
[ec7aac]330/* undefine to enable inline */
331#define NO_INLINE
332
[52a5e8]333/* undefine to disable assume -- should normally be defined for NDEBUG */
334#define HAVE_ASSUME
335
[d14712]336/* undef PDEBUG to disable checks of polys
[cb66fa]337
338 define PDEBUG to
339  0 for enabling pTest
[512a2b]340  1 plus tests in Level 1 poly routines (operations on monomials)
341  2 plus tests in Level 2 poly routines (operations on single exponents)
[cb66fa]342 -- see also polys.h for more info
343
344 NOTE: you can set the value of PDEBUG on a per-file basis, before
[512a2b]345       including mod2.h, provided ! PDEBUG is defined in mod2.h E.g.:
[cb66fa]346
347       #define PDEBUG 2
348       #include "mod2.h"
349       ...
350
351       makes sure that all poly operations in your file are done with
352       PDEBUG == 2
[512a2b]353 To break after an error occured, set a debugger breakpoint on
354 dErrorBreak.
[cb66fa]355*/
[a6a239]356#ifndef PDEBUG
[d14712]357#define PDEBUG 0
[a6a239]358#endif
[d14712]359
[c232af]360/* define MDEBUG to enable memory checks */
361#define MDEBUG 0
362
363#ifdef MDEBUG
364/* If ! defined(OM_NDEBUG) and (defined(OM_TRACK) or defined(OM_CHECK)
365   then omDebug routines are used for memory allocation/free:
366
[512a2b]367   The omDebug routines are controlled by the values of OM_TRACK, OM_CHECK
368   and OM_KEEP.  There meaning is roughly as follows:
[c232af]369   OM_TRACK: strored with address                              : extra space
370     0     : no additional info is stored                      : 0
371     1     : file:line of location where address was allocated : 1 word
372     2     : plus backtrace of stack where adress was allocated: 6 words
373     3     : plus size/bin info and front-, and back padding   : 9 words
374     4     : plus file:line of location where adress was freed : 10 words
375     5     : plus backtrace of stack where adress was allocated: 15 words
376   OM_CHECK: checks done
377     0     : no checks
378     1     : constant-time checks: i.e. addr checks only
379     2     : plus linear-time checks and constant related bin check
380     3     : plus quadratic-time checks and linear-time related bin checks and
381             constant time all memory checks
382     4     : and so on
383     ==> for OM_CHECK >= 3 it gets rather slow
[512a2b]384   OM_KEEP:  determines whether addresses are really freed  (
385     0     : addresses are really freed
386     1     : addresses are only marked as free and not really freed.
[c232af]387
[512a2b]388   OM_CHECK, OM_TRACK, and OM_KEEP can be set on a per-file basis
389   (as can OM_NDEBUG),  e.g.:
[c232af]390     #define OM_CHECK 3
391     #define OM_TRACK 5
[512a2b]392     #define OM_KEEP  1
393     #include "mod2.h"
394     #include "omalloc.h"
[c232af]395   ensures that all memory allocs/free in this file are done with
[512a2b]396   OM_CHECK==3 and OM_TRACK==5, and that all addresses allocated/freed
397   in this file are only marked as free and never really freed.
[c232af]398 
[512a2b]399   To set OM_CHECK, OM_TRACK and OM_KEEP under dynamic scope, set
400   om_Opts.MinCheck, om_Opts.MinTrack to the respectiv values and
401   om_Opts.Keep to the number of addresses which are kept before they are
402   actually freed. E.g.:
403     int check=om_Opts.MinCheck, track=om_Opts.MinTrack, keep= m_OPts.Keep;
404     om_Opts.MinCheck = 3; om_Opts.MinTrack = 5; omOpts.Keep = LONG_MAX;
[c232af]405     ExternalRoutine();
[512a2b]406     om_Opts.MinCheck = check; omOpts.MinTrack = track; omOpts.Keep = keep;
[c232af]407   ensures that all calls omDebug routines  occuring during the computation of
[512a2b]408   ExternalRoutine() are done with OM_CHECK==3 and OM_TRACK==5, and
409   calls to omFree only mark addresses as free and not really free them.
[c232af]410
411   Furthermore, the value of OM_SING_KEEP (resp. om_Opts.Keep) specifies
[512a2b]412   how many addresses are kept before they are actually freed, independently
413   of the value of OM_KEEP.
414
415   Some tips on possible values of OM_TRACK, OM_CHECK, OM_KEEP:
416   + To find out about an address that has been freed twice, first locate the
417     file(s) where the error occured, and then at the beginning of these files:
418       #define OM_CHECK 3
419       #define OM_TRACK 5
420       #define OM_KEEP  1
421       #include "mod2.h"
422       #include "omalloc.h"
423     Under dynamic scope, do (e.g., from within the debugger):
424       om_Opts.MinCheck = 3; om_Opts.MinTrack = 5; omOpts.Keep = LONG_MAX;
[c232af]425   + to find out where "memory corruption" occured, increase value of
426     OM_CHECK - the higher this value is, the more consistency checks are
427     done (However a value > 3 checks the entire memory each time an omalloc
[cb66fa]428     routine is used!)
[c232af]429   
430   Some more tips on the usage of omalloc:
431   + omAlloc*, omRealloc*, omFree*, omCheck* omDebug* omTest* rotuines
432     assume that sizes are > 0 and pointers are != NULL
433   + omalloc*, omrealloc*, omfree* omcheck*, omdebug* omtest* routines allow
434     NULL pointers and sizes == 0
435   + You can safely use any free/realloc routine in combination with any alloc
436     routine (including the debug versions): E.g., an address allocated with
437     omAllocBin can be freed with omfree, or an adress allocated with
438     om(Debug)Alloc can be freed with omfree, or omFree, or omFreeSize, etc.
[cb66fa]439     However, keep in mind that the efficiency decreases from
[c232af]440     Bin over Size to General routines (i.e., omFreeBin is more efficient than
[512a2b]441     omFreeSize which is more efficient than omFree, likewise with the alloc
[c232af]442     routines).
[512a2b]443   + if OM_CHECK is undefined or 0, then all omCheck routines do nothing
444   + if OM_CHECK and OM_TRACK are both undefined (or 0), or if OM_NDEBUG is
445     defined, then the "real" alloc/realloc/free macros are used, and all
446     omTest, omDebug and omCheck routines are undefined
447   + to break after an omError occured within a debugger,
448     set a breakpoint on dErrorBreak
449   + to do checks from within the debugger, or to do checks with explicit
[ec7aac]450     check level, use omTest routines.
[c232af]451*/
452
[512a2b]453/* by default, store alloc info and file/line where addr was freed */
454#ifndef OM_TRACK
455#define OM_TRACK 4
456#endif
457/* only do constant-time memory checks */
458#ifndef OM_CHECK
[c232af]459#define OM_CHECK 1
[512a2b]460#endif
461/* Do actually free memory:
462   (be careful: if this is set, memory is never really freed,
463    but only marked as free) */
464#ifndef OM_KEEP
465#define OM_KEEP 0
466#endif
467/* but only after you have freed 1000 more addresses
468   (this is actually independent of the value of OM_KEEP and used
469   to initialize om_Opts.Keep) */
470#ifndef OM_SING_KEEP
[c232af]471#define OM_SING_KEEP 1000
[512a2b]472#endif
473
[c232af]474#endif /* MDEBUG */
475
476
477/* undef KDEBUG for check of data during std computations
[d14712]478 *
479 * define KDEBUG to
480 * 0 for basic tests
481 * 1 for tests in kSpoly
482 * NOTE: You can locally enable tests in kspoly by setting the
483 *       define at the beginning of kspoly.cc
484 */
485#define KDEBUG 0
[52a5e8]486
[5f9072]487/* define LDEBUG checking numbers, undefine otherwise */
[a693ce]488#define LDEBUG
[5f9072]489/* define RDEBUG checking rings (together with TRACE=9) */
[a693ce]490#define RDEBUG
[5f9072]491/* define TEST for non time critical tests, undefine otherwise */
492#define TEST
[fff984]493
[5f9072]494/* #define PAGE_TEST */
495
[6b6b2f9]496/* define YYDEBUG 1 for debugging bison texts, 0 otherwise */
[a693ce]497#define YYDEBUG 1
498
[5f9072]499/* Undefine to disable debugging of MP stuff */
500#ifdef HAVE_MPSR
[a693ce]501#define MPSR_DEBUG
[5f9072]502#endif
503
504
[7885020]505/* define SPECTRUM_DEBUG and SPECTRUM_PRINT for debugging the spectrum code */
506/* define SPECTRUM_IOSTREAM to use C++ iostream for error messages          */
507
508/* #define SPECTRUM_DEBUG */
509/* #define SPECTRUM_PRINT */
510#undef  SPECTRUM_IOSTREAM
511
512#ifdef  SPECTRUM_DEBUG
513#define MULTICNT_DEBUG
514#define GMPRAT_DEBUG
515#define KMATRIX_DEBUG
516#define SPLIST_DEBUG
517#define NPOLYGON_DEBUG
518#define SEMIC_DEBUG
519#endif
520
521#ifdef  SPECTRUM_PRINT
522#define MULTICNT_PRINT
523#define GMPRAT_PRINT
524#define KMATRIX_PRINT
525#define SPLIST_PRINT
526#define NPOLYGON_PRINT
527#define SEMIC_PRINT
528#endif
529
530#ifdef  SPECTRUM_IOSTREAM
531#define MULTICNT_IOSTREAM
532#define GMPRAT_IOSTREAM
533#define KMATRIX_IOSTREAM
534#define SPLIST_IOSTREAM
535#define NPOLYGON_IOSTREAM
536#define SEMIC_IOSTREAM
537#endif
538
539
540#else /* not NDEBUG **************************************************** */
[6b6b2f9]541
[996e19]542#define NO_PDEBUG
[a6a239]543
[6b6b2f9]544/* define YYDEBUG 1 for debugging bison texts, 0 otherwise */
545#define YYDEBUG 0
546
[5f9072]547#endif /* not NDEBUG */
[52a5e8]548
549/*******************************************************************
550 *
[7885020]551 * assume(x) -- a handy macro for assumptions
[52a5e8]552 *
553 ******************************************************************/
554
555#ifdef __cplusplus
556extern "C" {
557#endif
[cb66fa]558// routine which is used to report the error
[bd4fa1]559// returns 0
560extern int dReportError(const char* fmt, ...);
[cb66fa]561// within a debugger, set a breakpoint on dErrorBreak
562// which is called after the error has been reported
563extern void dErrorBreak();
[52a5e8]564#ifdef __cplusplus
565}
566#endif
567
[512a2b]568#ifndef HAVE_ASSUME
569#define assume(x) ((void) 0)
570#define r_assume(x) ((void) 0)
571#else /* ! HAVE_ASSUME */
572
573#define assume_violation(s,f,l) \
574  dReportError("assume violation at %s:%d condition: %s", f,l,s)
575
[52a5e8]576#define assume(x)   _assume(x, __FILE__, __LINE__)
577#define r_assume(x) _r_assume(x, __FILE__, __LINE__)
578
579#define _assume(x, f, l)                        \
580do                                              \
581{                                               \
582  if (! (x))                                    \
583  {                                             \
[ec7aac]584    assume_violation(#x, f, l);                 \
[52a5e8]585  }                                             \
586}                                               \
587while (0)
588
589#define _r_assume(x, f, l)                      \
590do                                              \
591{                                               \
592  if (! (x))                                    \
593  {                                             \
[ec7aac]594    assume_violation(#x, f, l);                 \
[52a5e8]595    return 0;                                   \
596  }                                             \
597}                                               \
598while (0)
599#endif /* HAVE_ASSUME */
600
[532abf]601/* do have RDEBUG, unless we are doing the very real thing */
602#ifdef HAVE_ASSUME
[ec7aac]603#ifndef RDEBUG
604#define RDEBUG
605#endif
606#endif
607
[6f0eb7]608#if SIZEOF_VOIDP == 8
609#ifndef OM_CHECK
610#define OM_CHECK 0
611#endif
612#endif
613
[fb0d9a]614/* If we're not using GNU C, elide __attribute__ */
615#ifndef __GNUC__
616#  define  __attribute__(x)  /*NOTHING*/
617#endif
[6f0eb7]618
[1cb879]619#define STRINGIFY(name) #name
620#define EXPANDED_STRINGIFY(name) STRINGIFY(name)
621
[5f9072]622#endif /* MOD2_H  */
Note: See TracBrowser for help on using the repository browser.