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