annotate dmd/common.d @ 136:9d194c848e3a

fixed a few null reference bugs, thx sagitario
author Trass3r
date Mon, 13 Sep 2010 23:27:38 +0200
parents e28b18c23469
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
114
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
1 /**
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
2 * this module is imported in all modules in the dmd package
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
3 * and thus can be used for commonly used aliases etc.
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
4 */
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
5 module dmd.common;
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
6
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
7 // versions specified in a module are local to that module even if the module is imported by another one, see code at the bottom
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
8 // until a solution is found, at least check the given versions for consistency
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
9
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
10 pragma(msg, "checking predefined versions for consistency...");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
11
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
12 version(DMDV1)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
13 version(DMDV2)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
14 static assert(false, "DMDV1 and DMDV2 can't be set both");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
15
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
16 version(DMDV2)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
17 {
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
18 version(STRUCTTHISREF) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
19 static assert(false, "DMDV2 requires STRUCTTHISREF. 'this' for struct is a reference");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
20 version(SNAN_DEFAULT_INIT) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
21 static assert(false, "DMDV2 requires SNAN_DEFAULT_INIT. floats are default initialized to signalling NaN");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
22 version(SARRAYVALUE) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
23 static assert(false, "DMDV2 requires SARRAYVALUE. static arrays are value types");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
24 }
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
25
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
26 version(DMDV2)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
27 version(Posix) // TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS // TODO:
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
28 version(CPP_MANGLE) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
29 static assert(false, "CPP_MANGLE must be set if DMDV2 and a Posix target is specified. C++ mangling is done by the front end");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
30
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
31 version(Win32)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
32 {
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
33 version(_WIN32) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
34 static assert(false, "Set _WIN32 on Win32");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
35 version(TARGET_WINDOS) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
36 static assert(false, "TARGET_WINDOS must be specified on Windows");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
37 version(OMFOBJ) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
38 static assert(false, "OMFOBJ must be used on Windows");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
39 }
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
40 else version(Win64)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
41 {
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
42 static assert(false, "now we need Win64 support");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
43 }
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
44
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
45 version(Posix)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
46 version(POSIX) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
47 static assert(false, "POSIX must be set on Posix");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
48
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
49 version(TARGET_LINUX)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
50 version(ELFOBJ) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
51 static assert(false, "TARGET_LINUX requires ELFOBJ");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
52 version(TARGET_FREEBSD)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
53 version(ELFOBJ) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
54 static assert(false, "TARGET_FREEBSD requires ELFOBJ");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
55 version(TARGET_SOLARIS)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
56 version(ELFOBJ) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
57 static assert(false, "TARGET_SOLARIS requires ELFOBJ");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
58
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
59 version(TARGET_OSX)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
60 version(MACHOBJ) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
61 static assert(false, "TARGET_OSX requires MACHOBJ");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
62
136
9d194c848e3a fixed a few null reference bugs, thx sagitario
Trass3r
parents: 114
diff changeset
63 version(CCASTSYNTAX) {} else
9d194c848e3a fixed a few null reference bugs, thx sagitario
Trass3r
parents: 114
diff changeset
64 static assert(false, `CCASTSYNTAX is needed for code like "(void*).sizeof"`);
9d194c848e3a fixed a few null reference bugs, thx sagitario
Trass3r
parents: 114
diff changeset
65
9d194c848e3a fixed a few null reference bugs, thx sagitario
Trass3r
parents: 114
diff changeset
66 version(CARRAYDECL) {} else
9d194c848e3a fixed a few null reference bugs, thx sagitario
Trass3r
parents: 114
diff changeset
67 static assert(false, "C array declarations are used in phobos so we still need CARRAYDECL");
9d194c848e3a fixed a few null reference bugs, thx sagitario
Trass3r
parents: 114
diff changeset
68
114
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
69
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
70 version(IN_GCC) // Changes for the GDC compiler by David Friedman
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
71 {
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
72 static assert(false, "IN_GCC is not supported");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
73 }
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
74
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
75 /+
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
76 /*
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
77 It is very important to use version control macros correctly - the
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
78 idea is that host and target are independent. If these are done
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
79 correctly, cross compilers can be built.
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
80 The host compiler and host operating system are also different,
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
81 and are predefined by the host compiler. The ones used in
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
82 dmd are:
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
83
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
84 Macros defined by the compiler, not the code:
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
85
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
86 Compiler:
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
87 __DMC__ Digital Mars compiler
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
88 _MSC_VER Microsoft compiler
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
89 __GNUC__ Gnu compiler
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
90
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
91 Host operating system:
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
92 _WIN32 Microsoft NT, Windows 95, Windows 98, Win32s,
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
93 Windows 2000, Win XP, Vista
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
94 _WIN64 Windows for AMD64
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
95 linux Linux
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
96 __APPLE__ Mac OSX
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
97 __FreeBSD__ FreeBSD
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
98 __sun&&__SVR4 Solaris, OpenSolaris (yes, both macros are necessary)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
99
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
100 For the target systems, there are the target operating system and
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
101 the target object file format:
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
102
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
103 Target operating system:
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
104 TARGET_WINDOS Covers 32 bit windows and 64 bit windows
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
105 TARGET_LINUX Covers 32 and 64 bit linux
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
106 TARGET_OSX Covers 32 and 64 bit Mac OSX
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
107 TARGET_FREEBSD Covers 32 and 64 bit FreeBSD
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
108 TARGET_SOLARIS Covers 32 and 64 bit Solaris
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
109 TARGET_NET Covers .Net
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
110
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
111 It is expected that the compiler for each platform will be able
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
112 to generate 32 and 64 bit code from the same compiler binary.
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
113
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
114 Target object module format:
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
115 OMFOBJ Intel Object Module Format, used on Windows
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
116 ELFOBJ Elf Object Module Format, used on linux, FreeBSD and Solaris
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
117 MACHOBJ Mach-O Object Module Format, used on Mac OSX
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
118
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
119 There are currently no macros for byte endianness order.
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
120 */
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
121 //version definitions from mars.h
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
122
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
123 pragma(msg, "setting up versions...");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
124
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
125 // default to DMDV2
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
126 version(DMDV1) {} else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
127 version = DMDV2; // Version 2.0 features
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
128 version = BREAKABI; // 0 if not ready to break the ABI just yet
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
129 version(DMDV2)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
130 {
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
131 version = STRUCTTHISREF; // if 'this' for struct is a reference, not a pointer
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
132 version = SNAN_DEFAULT_INIT;// if floats are default initialized to signalling NaN
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
133 version = SARRAYVALUE; // static arrays are value types
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
134 }
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
135
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
136 // Set if C++ mangling is done by the front end
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
137 version(DMDV2)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
138 {
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
139 version(Posix) // TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
140 version = CPP_MANGLE;
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
141 }
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
142
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
143 /* Other targets are TARGET_LINUX, TARGET_OSX, TARGET_FREEBSD and
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
144 * TARGET_SOLARIS, which are
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
145 * set on the command line via the compiler makefile.
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
146 */
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
147
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
148 version(Win32)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
149 {
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
150 version = _WIN32;
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
151 version = TARGET_WINDOS; // Windows dmd generates Windows targets
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
152 version = OMFOBJ;
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
153 }
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
154 else version(Win64)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
155 {
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
156 static assert(false, "now we need Win64 support");
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
157 }
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
158
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
159 version(Posix)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
160 version = POSIX;
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
161
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
162 version(TARGET_LINUX)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
163 version = ELFOBJ;
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
164 version(TARGET_FREEBSD)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
165 version = ELFOBJ;
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
166 version(TARGET_SOLARIS)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
167 version = ELFOBJ;
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
168
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
169
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
170 version(TARGET_OSX)
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
171 version = MACHOBJ;
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
172
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
173 /* TODO:
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
174 //Modify OutBuffer::writewchar to write the correct size of wchar
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
175 #if _WIN32
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
176 #define writewchar writeword
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
177 #else
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
178 //This needs a configuration test...
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
179 #define writewchar write4
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
180 #endif
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
181
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
182 #define INTERFACE_OFFSET 0 // if 1, put classinfo as first entry
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
183 //in interface vtbl[]'s
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
184 #define INTERFACE_VIRTUAL 0 // 1 means if an interface appears
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
185 //in the inheritance graph multiple
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
186 //times, only one is used
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
187 */
e28b18c23469 added a module dmd.common for commonly used stuff
Trass3r
parents:
diff changeset
188 +/