Lower Storable.xs optimization to -O2 on certain
[p5sagit/p5-mst-13.2.git] / INTERN.h
1 /*    INTERN.h
2  *
3  *    Copyright (C) 1991, 1992, 1993, 1995, 1996, 1998, 2000, 2001,
4  *    by Larry Wall and others
5  *
6  *    You may distribute under the terms of either the GNU General Public
7  *    License or the Artistic License, as specified in the README file.
8  *
9  */
10
11 /*
12  * EXT  designates a global var which is defined in perl.h
13  * dEXT designates a global var which is defined in another
14  *      file, so we can't count on finding it in perl.h
15  *      (this practice should be avoided).
16  */
17 #undef EXT
18 #undef dEXT
19 #undef EXTCONST
20 #undef dEXTCONST
21 #if defined(VMS) && !defined(__GNUC__)
22     /* Suppress portability warnings from DECC for VMS-specific extensions */
23 #  ifdef __DECC
24 #    pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT)
25 #  endif
26 #  define EXT globaldef {"$GLOBAL_RW_VARS"} noshare
27 #  define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare
28 #  define EXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
29 #  define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
30 #else
31 #if defined(WIN32) && defined(__MINGW32__)
32 #  define EXT           __declspec(dllexport)
33 #  define dEXT
34 #  define EXTCONST      __declspec(dllexport) const
35 #  define dEXTCONST     const
36 #else
37 #ifdef __cplusplus
38 #  define EXT
39 #  define dEXT
40 #  define EXTCONST extern const
41 #  define dEXTCONST const
42 #else
43 #  define EXT
44 #  define dEXT
45 #  define EXTCONST const
46 #  define dEXTCONST const
47 #endif
48 #endif
49 #endif
50
51 #undef INIT
52 #define INIT(x) = x
53
54 #define DOINIT