Mercurial > projects > ldc
annotate dmd/id.c @ 650:aa6a0b7968f7
Added test case for bug #100
Removed dubious check for not emitting static private global in other modules without access. This should be handled properly somewhere else, it's causing unresolved global errors for stuff that should work (in MiniD)
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sun, 05 Oct 2008 17:28:15 +0200 |
parents | a34078905d01 |
children | 50383e476c7e |
rev | line source |
---|---|
1 | 1 // File generated by idgen.c |
2 #include "id.h" | |
3 #include "identifier.h" | |
4 #include "lexer.h" | |
5 Identifier *Id::IUnknown; | |
6 Identifier *Id::Object; | |
7 Identifier *Id::object; | |
8 Identifier *Id::max; | |
9 Identifier *Id::min; | |
10 Identifier *Id::This; | |
11 Identifier *Id::ctor; | |
12 Identifier *Id::dtor; | |
13 Identifier *Id::classInvariant; | |
14 Identifier *Id::unitTest; | |
15 Identifier *Id::init; | |
16 Identifier *Id::size; | |
17 Identifier *Id::__sizeof; | |
18 Identifier *Id::alignof; | |
19 Identifier *Id::mangleof; | |
20 Identifier *Id::stringof; | |
21 Identifier *Id::tupleof; | |
22 Identifier *Id::length; | |
23 Identifier *Id::remove; | |
24 Identifier *Id::ptr; | |
25 Identifier *Id::funcptr; | |
26 Identifier *Id::dollar; | |
27 Identifier *Id::offset; | |
28 Identifier *Id::offsetof; | |
29 Identifier *Id::ModuleInfo; | |
30 Identifier *Id::ClassInfo; | |
31 Identifier *Id::classinfo; | |
32 Identifier *Id::typeinfo; | |
33 Identifier *Id::outer; | |
34 Identifier *Id::Exception; | |
35 Identifier *Id::withSym; | |
36 Identifier *Id::result; | |
37 Identifier *Id::returnLabel; | |
38 Identifier *Id::delegate; | |
39 Identifier *Id::line; | |
40 Identifier *Id::empty; | |
41 Identifier *Id::p; | |
42 Identifier *Id::coverage; | |
336 | 43 Identifier *Id::__vptr; |
44 Identifier *Id::__monitor; | |
1 | 45 Identifier *Id::TypeInfo; |
46 Identifier *Id::TypeInfo_Class; | |
47 Identifier *Id::TypeInfo_Interface; | |
48 Identifier *Id::TypeInfo_Struct; | |
49 Identifier *Id::TypeInfo_Enum; | |
50 Identifier *Id::TypeInfo_Typedef; | |
51 Identifier *Id::TypeInfo_Pointer; | |
52 Identifier *Id::TypeInfo_Array; | |
53 Identifier *Id::TypeInfo_StaticArray; | |
54 Identifier *Id::TypeInfo_AssociativeArray; | |
55 Identifier *Id::TypeInfo_Function; | |
56 Identifier *Id::TypeInfo_Delegate; | |
57 Identifier *Id::TypeInfo_Tuple; | |
58 Identifier *Id::TypeInfo_Const; | |
59 Identifier *Id::TypeInfo_Invariant; | |
60 Identifier *Id::elements; | |
61 Identifier *Id::_arguments_typeinfo; | |
62 Identifier *Id::_arguments; | |
63 Identifier *Id::_argptr; | |
64 Identifier *Id::_match; | |
65 Identifier *Id::LINE; | |
66 Identifier *Id::FILE; | |
67 Identifier *Id::DATE; | |
68 Identifier *Id::TIME; | |
69 Identifier *Id::TIMESTAMP; | |
70 Identifier *Id::VENDOR; | |
71 Identifier *Id::VERSIONX; | |
72 Identifier *Id::nan; | |
73 Identifier *Id::infinity; | |
74 Identifier *Id::dig; | |
75 Identifier *Id::epsilon; | |
76 Identifier *Id::mant_dig; | |
77 Identifier *Id::max_10_exp; | |
78 Identifier *Id::max_exp; | |
79 Identifier *Id::min_10_exp; | |
80 Identifier *Id::min_exp; | |
81 Identifier *Id::re; | |
82 Identifier *Id::im; | |
83 Identifier *Id::C; | |
84 Identifier *Id::D; | |
85 Identifier *Id::Windows; | |
86 Identifier *Id::Pascal; | |
87 Identifier *Id::System; | |
88 Identifier *Id::exit; | |
89 Identifier *Id::success; | |
90 Identifier *Id::failure; | |
91 Identifier *Id::keys; | |
92 Identifier *Id::values; | |
93 Identifier *Id::rehash; | |
94 Identifier *Id::sort; | |
95 Identifier *Id::reverse; | |
96 Identifier *Id::dup; | |
97 Identifier *Id::idup; | |
98 Identifier *Id::___out; | |
99 Identifier *Id::___in; | |
100 Identifier *Id::__int; | |
101 Identifier *Id::__dollar; | |
102 Identifier *Id::__LOCAL_SIZE; | |
103 Identifier *Id::uadd; | |
104 Identifier *Id::neg; | |
105 Identifier *Id::com; | |
106 Identifier *Id::add; | |
107 Identifier *Id::add_r; | |
108 Identifier *Id::sub; | |
109 Identifier *Id::sub_r; | |
110 Identifier *Id::mul; | |
111 Identifier *Id::mul_r; | |
112 Identifier *Id::div; | |
113 Identifier *Id::div_r; | |
114 Identifier *Id::mod; | |
115 Identifier *Id::mod_r; | |
116 Identifier *Id::eq; | |
117 Identifier *Id::cmp; | |
118 Identifier *Id::iand; | |
119 Identifier *Id::iand_r; | |
120 Identifier *Id::ior; | |
121 Identifier *Id::ior_r; | |
122 Identifier *Id::ixor; | |
123 Identifier *Id::ixor_r; | |
124 Identifier *Id::shl; | |
125 Identifier *Id::shl_r; | |
126 Identifier *Id::shr; | |
127 Identifier *Id::shr_r; | |
128 Identifier *Id::ushr; | |
129 Identifier *Id::ushr_r; | |
130 Identifier *Id::cat; | |
131 Identifier *Id::cat_r; | |
132 Identifier *Id::assign; | |
133 Identifier *Id::addass; | |
134 Identifier *Id::subass; | |
135 Identifier *Id::mulass; | |
136 Identifier *Id::divass; | |
137 Identifier *Id::modass; | |
138 Identifier *Id::andass; | |
139 Identifier *Id::orass; | |
140 Identifier *Id::xorass; | |
141 Identifier *Id::shlass; | |
142 Identifier *Id::shrass; | |
143 Identifier *Id::ushrass; | |
144 Identifier *Id::catass; | |
145 Identifier *Id::postinc; | |
146 Identifier *Id::postdec; | |
147 Identifier *Id::index; | |
148 Identifier *Id::indexass; | |
149 Identifier *Id::slice; | |
150 Identifier *Id::sliceass; | |
151 Identifier *Id::call; | |
152 Identifier *Id::cast; | |
153 Identifier *Id::match; | |
154 Identifier *Id::next; | |
155 Identifier *Id::opIn; | |
156 Identifier *Id::opIn_r; | |
157 Identifier *Id::classNew; | |
158 Identifier *Id::classDelete; | |
159 Identifier *Id::apply; | |
160 Identifier *Id::applyReverse; | |
161 Identifier *Id::adDup; | |
162 Identifier *Id::adReverse; | |
163 Identifier *Id::aaLen; | |
164 Identifier *Id::aaKeys; | |
165 Identifier *Id::aaValues; | |
166 Identifier *Id::aaRehash; | |
167 Identifier *Id::lib; | |
168 Identifier *Id::msg; | |
169 Identifier *Id::GNU_asm; | |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
170 Identifier *Id::intrinsic; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
171 Identifier *Id::va_intrinsic; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
172 Identifier *Id::no_typeinfo; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
173 Identifier *Id::no_moduleinfo; |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
174 Identifier *Id::Alloca; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
175 Identifier *Id::vastart; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
176 Identifier *Id::vacopy; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
177 Identifier *Id::vaend; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
178 Identifier *Id::vaarg; |
486
a34078905d01
Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
445
diff
changeset
|
179 Identifier *Id::llvmdc; |
1 | 180 Identifier *Id::tohash; |
181 Identifier *Id::tostring; | |
182 Identifier *Id::main; | |
183 Identifier *Id::WinMain; | |
184 Identifier *Id::DllMain; | |
185 void Id::initialize() | |
186 { | |
187 IUnknown = Lexer::idPool("IUnknown"); | |
188 Object = Lexer::idPool("Object"); | |
189 object = Lexer::idPool("object"); | |
190 max = Lexer::idPool("max"); | |
191 min = Lexer::idPool("min"); | |
192 This = Lexer::idPool("this"); | |
193 ctor = Lexer::idPool("_ctor"); | |
194 dtor = Lexer::idPool("_dtor"); | |
195 classInvariant = Lexer::idPool("__invariant"); | |
196 unitTest = Lexer::idPool("_unitTest"); | |
197 init = Lexer::idPool("init"); | |
198 size = Lexer::idPool("size"); | |
199 __sizeof = Lexer::idPool("sizeof"); | |
200 alignof = Lexer::idPool("alignof"); | |
201 mangleof = Lexer::idPool("mangleof"); | |
202 stringof = Lexer::idPool("stringof"); | |
203 tupleof = Lexer::idPool("tupleof"); | |
204 length = Lexer::idPool("length"); | |
205 remove = Lexer::idPool("remove"); | |
206 ptr = Lexer::idPool("ptr"); | |
207 funcptr = Lexer::idPool("funcptr"); | |
208 dollar = Lexer::idPool("__dollar"); | |
209 offset = Lexer::idPool("offset"); | |
210 offsetof = Lexer::idPool("offsetof"); | |
211 ModuleInfo = Lexer::idPool("ModuleInfo"); | |
212 ClassInfo = Lexer::idPool("ClassInfo"); | |
213 classinfo = Lexer::idPool("classinfo"); | |
214 typeinfo = Lexer::idPool("typeinfo"); | |
215 outer = Lexer::idPool("outer"); | |
216 Exception = Lexer::idPool("Exception"); | |
217 withSym = Lexer::idPool("__withSym"); | |
218 result = Lexer::idPool("__result"); | |
219 returnLabel = Lexer::idPool("__returnLabel"); | |
220 delegate = Lexer::idPool("delegate"); | |
221 line = Lexer::idPool("line"); | |
222 empty = Lexer::idPool(""); | |
223 p = Lexer::idPool("p"); | |
224 coverage = Lexer::idPool("__coverage"); | |
336 | 225 __vptr = Lexer::idPool("__vptr"); |
226 __monitor = Lexer::idPool("__monitor"); | |
1 | 227 TypeInfo = Lexer::idPool("TypeInfo"); |
228 TypeInfo_Class = Lexer::idPool("TypeInfo_Class"); | |
229 TypeInfo_Interface = Lexer::idPool("TypeInfo_Interface"); | |
230 TypeInfo_Struct = Lexer::idPool("TypeInfo_Struct"); | |
231 TypeInfo_Enum = Lexer::idPool("TypeInfo_Enum"); | |
232 TypeInfo_Typedef = Lexer::idPool("TypeInfo_Typedef"); | |
233 TypeInfo_Pointer = Lexer::idPool("TypeInfo_Pointer"); | |
234 TypeInfo_Array = Lexer::idPool("TypeInfo_Array"); | |
235 TypeInfo_StaticArray = Lexer::idPool("TypeInfo_StaticArray"); | |
236 TypeInfo_AssociativeArray = Lexer::idPool("TypeInfo_AssociativeArray"); | |
237 TypeInfo_Function = Lexer::idPool("TypeInfo_Function"); | |
238 TypeInfo_Delegate = Lexer::idPool("TypeInfo_Delegate"); | |
239 TypeInfo_Tuple = Lexer::idPool("TypeInfo_Tuple"); | |
240 TypeInfo_Const = Lexer::idPool("TypeInfo_Const"); | |
241 TypeInfo_Invariant = Lexer::idPool("TypeInfo_Invariant"); | |
242 elements = Lexer::idPool("elements"); | |
243 _arguments_typeinfo = Lexer::idPool("_arguments_typeinfo"); | |
244 _arguments = Lexer::idPool("_arguments"); | |
245 _argptr = Lexer::idPool("_argptr"); | |
246 _match = Lexer::idPool("_match"); | |
247 LINE = Lexer::idPool("__LINE__"); | |
248 FILE = Lexer::idPool("__FILE__"); | |
249 DATE = Lexer::idPool("__DATE__"); | |
250 TIME = Lexer::idPool("__TIME__"); | |
251 TIMESTAMP = Lexer::idPool("__TIMESTAMP__"); | |
252 VENDOR = Lexer::idPool("__VENDOR__"); | |
253 VERSIONX = Lexer::idPool("__VERSION__"); | |
254 nan = Lexer::idPool("nan"); | |
255 infinity = Lexer::idPool("infinity"); | |
256 dig = Lexer::idPool("dig"); | |
257 epsilon = Lexer::idPool("epsilon"); | |
258 mant_dig = Lexer::idPool("mant_dig"); | |
259 max_10_exp = Lexer::idPool("max_10_exp"); | |
260 max_exp = Lexer::idPool("max_exp"); | |
261 min_10_exp = Lexer::idPool("min_10_exp"); | |
262 min_exp = Lexer::idPool("min_exp"); | |
263 re = Lexer::idPool("re"); | |
264 im = Lexer::idPool("im"); | |
265 C = Lexer::idPool("C"); | |
266 D = Lexer::idPool("D"); | |
267 Windows = Lexer::idPool("Windows"); | |
268 Pascal = Lexer::idPool("Pascal"); | |
269 System = Lexer::idPool("System"); | |
270 exit = Lexer::idPool("exit"); | |
271 success = Lexer::idPool("success"); | |
272 failure = Lexer::idPool("failure"); | |
273 keys = Lexer::idPool("keys"); | |
274 values = Lexer::idPool("values"); | |
275 rehash = Lexer::idPool("rehash"); | |
276 sort = Lexer::idPool("sort"); | |
277 reverse = Lexer::idPool("reverse"); | |
278 dup = Lexer::idPool("dup"); | |
279 idup = Lexer::idPool("idup"); | |
280 ___out = Lexer::idPool("out"); | |
281 ___in = Lexer::idPool("in"); | |
282 __int = Lexer::idPool("int"); | |
283 __dollar = Lexer::idPool("$"); | |
284 __LOCAL_SIZE = Lexer::idPool("__LOCAL_SIZE"); | |
285 uadd = Lexer::idPool("opPos"); | |
286 neg = Lexer::idPool("opNeg"); | |
287 com = Lexer::idPool("opCom"); | |
288 add = Lexer::idPool("opAdd"); | |
289 add_r = Lexer::idPool("opAdd_r"); | |
290 sub = Lexer::idPool("opSub"); | |
291 sub_r = Lexer::idPool("opSub_r"); | |
292 mul = Lexer::idPool("opMul"); | |
293 mul_r = Lexer::idPool("opMul_r"); | |
294 div = Lexer::idPool("opDiv"); | |
295 div_r = Lexer::idPool("opDiv_r"); | |
296 mod = Lexer::idPool("opMod"); | |
297 mod_r = Lexer::idPool("opMod_r"); | |
298 eq = Lexer::idPool("opEquals"); | |
299 cmp = Lexer::idPool("opCmp"); | |
300 iand = Lexer::idPool("opAnd"); | |
301 iand_r = Lexer::idPool("opAnd_r"); | |
302 ior = Lexer::idPool("opOr"); | |
303 ior_r = Lexer::idPool("opOr_r"); | |
304 ixor = Lexer::idPool("opXor"); | |
305 ixor_r = Lexer::idPool("opXor_r"); | |
306 shl = Lexer::idPool("opShl"); | |
307 shl_r = Lexer::idPool("opShl_r"); | |
308 shr = Lexer::idPool("opShr"); | |
309 shr_r = Lexer::idPool("opShr_r"); | |
310 ushr = Lexer::idPool("opUShr"); | |
311 ushr_r = Lexer::idPool("opUShr_r"); | |
312 cat = Lexer::idPool("opCat"); | |
313 cat_r = Lexer::idPool("opCat_r"); | |
314 assign = Lexer::idPool("opAssign"); | |
315 addass = Lexer::idPool("opAddAssign"); | |
316 subass = Lexer::idPool("opSubAssign"); | |
317 mulass = Lexer::idPool("opMulAssign"); | |
318 divass = Lexer::idPool("opDivAssign"); | |
319 modass = Lexer::idPool("opModAssign"); | |
320 andass = Lexer::idPool("opAndAssign"); | |
321 orass = Lexer::idPool("opOrAssign"); | |
322 xorass = Lexer::idPool("opXorAssign"); | |
323 shlass = Lexer::idPool("opShlAssign"); | |
324 shrass = Lexer::idPool("opShrAssign"); | |
325 ushrass = Lexer::idPool("opUShrAssign"); | |
326 catass = Lexer::idPool("opCatAssign"); | |
327 postinc = Lexer::idPool("opPostInc"); | |
328 postdec = Lexer::idPool("opPostDec"); | |
329 index = Lexer::idPool("opIndex"); | |
330 indexass = Lexer::idPool("opIndexAssign"); | |
331 slice = Lexer::idPool("opSlice"); | |
332 sliceass = Lexer::idPool("opSliceAssign"); | |
333 call = Lexer::idPool("opCall"); | |
334 cast = Lexer::idPool("opCast"); | |
335 match = Lexer::idPool("opMatch"); | |
336 next = Lexer::idPool("opNext"); | |
337 opIn = Lexer::idPool("opIn"); | |
338 opIn_r = Lexer::idPool("opIn_r"); | |
339 classNew = Lexer::idPool("new"); | |
340 classDelete = Lexer::idPool("delete"); | |
341 apply = Lexer::idPool("opApply"); | |
342 applyReverse = Lexer::idPool("opApplyReverse"); | |
343 adDup = Lexer::idPool("_adDupT"); | |
344 adReverse = Lexer::idPool("_adReverse"); | |
345 aaLen = Lexer::idPool("_aaLen"); | |
346 aaKeys = Lexer::idPool("_aaKeys"); | |
347 aaValues = Lexer::idPool("_aaValues"); | |
348 aaRehash = Lexer::idPool("_aaRehash"); | |
349 lib = Lexer::idPool("lib"); | |
350 msg = Lexer::idPool("msg"); | |
351 GNU_asm = Lexer::idPool("GNU_asm"); | |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
352 intrinsic = Lexer::idPool("intrinsic"); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
353 va_intrinsic = Lexer::idPool("va_intrinsic"); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
354 no_typeinfo = Lexer::idPool("no_typeinfo"); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
355 no_moduleinfo = Lexer::idPool("no_moduleinfo"); |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
356 Alloca = Lexer::idPool("alloca"); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
357 vastart = Lexer::idPool("va_start"); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
358 vacopy = Lexer::idPool("va_copy"); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
359 vaend = Lexer::idPool("va_end"); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
360 vaarg = Lexer::idPool("va_arg"); |
486
a34078905d01
Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
445
diff
changeset
|
361 llvmdc = Lexer::idPool("llvmdc"); |
1 | 362 tohash = Lexer::idPool("toHash"); |
363 tostring = Lexer::idPool("toString"); | |
364 main = Lexer::idPool("main"); | |
365 WinMain = Lexer::idPool("WinMain"); | |
366 DllMain = Lexer::idPool("DllMain"); | |
367 } |