Mercurial > projects > ddmd
annotate dmd/backend/SFL.d @ 146:af7e5ebef6ad
redundant extern(C)
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Tue, 14 Sep 2010 23:34:50 +0100 |
parents | fd4acc376c45 |
children |
rev | line source |
---|---|
0 | 1 module dmd.backend.SFL; |
2 | |
3 enum SFL | |
4 { | |
5 SFLmark = 0x08, // temporary marker | |
6 SFLvalue = 0x01, // Svalue contains const expression | |
7 SFLimplem = 0x02, // if seen implementation of Symbol | |
8 // (function body for functions, | |
9 // initializer for variables) | |
10 SFLdouble = 0x02, // SCregpar or SCparameter, where float | |
11 // is really passed as a double | |
12 SFLfree = 0x04, // if we can symbol_free() a Symbol in | |
13 // a Symbol table[] | |
14 SFLexit = 0x10, // tyfunc: function does not return | |
15 // (ex: exit,abort,_assert,longjmp) | |
16 SFLtrue = 0x200, // value of Symbol != 0 | |
17 SFLreplace = SFLmark, // variable gets replaced in inline expansion | |
18 SFLskipinit = 0x10000, // SCfield, SCmember: initializer is skipped | |
19 SFLnodebug = 0x20000, // don't generate debug info | |
20 SFLwasstatic = 0x800000, // was an uninitialized static | |
21 SFLweak = 0x1000000, // resolve to NULL if not found | |
22 | |
23 // CPP | |
24 SFLnodtor = 0x10, // set if destructor for Symbol is already called | |
25 SFLdtorexp = 0x80, // Svalue has expression to tack onto dtor | |
26 SFLmutable = 0x100000, // SCmember or SCfield is mutable | |
27 SFLdyninit = 0x200000, // symbol has dynamic initializer | |
28 SFLtmp = 0x400000, // symbol is a generated temporary | |
29 | |
22
fd4acc376c45
Implemented object file output and linking on linux.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
30 ///version (POSIX) {///TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS |
0 | 31 /// SFLthunk = 0x40000, // symbol is temporary for thunk |
32 ///} | |
33 | |
34 // Possible values for protection bits | |
35 SFLprivate = 0x60, | |
36 SFLprotected = 0x40, | |
37 SFLpublic = 0x20, | |
38 SFLnone = 0x00, | |
39 SFLpmask = 0x60, // mask for the protection bits | |
40 ///version (VEC_VTBL_LIST) { | |
41 /// SFLvtbl = 0x2000, // Symbol is a vtable or vbtable | |
42 ///} | |
43 | |
44 // OPTIMIZER and CODGEN | |
45 SFLdead = 0x800, // this variable is dead | |
46 | |
47 // OPTIMIZER only | |
48 SFLunambig = 0x400, // only accessible by unambiguous reference, | |
49 // i.e. cannot be addressed via pointer | |
50 // (GTregcand is a subset of this) | |
51 // P.S. code generator turns off this | |
52 // flag if any reads are done from it. | |
53 // This is to eliminate stores to it | |
54 // that are never read. | |
55 | |
56 SFLlivexit = 0x1000, // live on exit from function | |
57 SFLnotbasiciv = 0x4000, // not a basic induction variable | |
58 SFLnord = SFLdouble, // SCauto,SCregister,SCtmp: disallow redundant warnings | |
59 | |
60 // CODGEN only | |
61 SFLread = 0x40000, // variable is actually read from | |
62 // (to eliminate dead stores) | |
63 SFLspill = 0x80000, // only in register part of the time | |
64 } | |
65 | |
66 import dmd.EnumUtils; | |
22
fd4acc376c45
Implemented object file output and linking on linux.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
67 mixin(BringToCurrentScope!(SFL)); |