0
|
1 module dmd.backend.F;
|
|
2
|
|
3 enum F
|
|
4 {
|
|
5 Fpending = 1, // if function has been queued for being written
|
|
6 Foutput = 2, /* if function has been written out */
|
|
7 Finline = 0x10, /* if SCinline, and function really is inline */
|
|
8 Foverload = 0x20, /* if function can be overloaded */
|
|
9 Ftypesafe = 0x40, /* if function name needs type appended */
|
|
10 Fmustoutput = 0x80, /* set for forward ref'd functions that */
|
|
11 /* must be output */
|
|
12 Finlinenest = 0x1000, /* used as a marker to prevent nested */
|
|
13 /* inlines from expanding */
|
|
14 Flinkage = 0x2000, /* linkage is already specified */
|
|
15 Fstatic = 0x4000, /* static member function (no this) */
|
|
16 Foperator = 4, /* if operator overload */
|
|
17 Fcast = 8, /* if cast overload */
|
|
18 Fvirtual = 0x100, /* if function is a virtual function */
|
|
19 Fctor = 0x200, /* if function is a constructor */
|
|
20 Fdtor = 0x400, /* if function is a destructor */
|
|
21 Fnotparent = 0x800, /* if function is down Foversym chain */
|
|
22 Fbitcopy = 0x8000, /* it's a simple bitcopy (op=() or X(X&)) */
|
|
23 Fpure = 0x10000, // pure function
|
|
24 Finstance = 0x20000, // function is an instance of a template
|
|
25 Ffixed = 0x40000, // ctor has had cpp_fixconstructor() run on it,
|
|
26 // dtor has had cpp_fixdestructor()
|
|
27 Fintro = 0x80000, // function doesn't hide a previous virtual function
|
|
28 ///#if !TX86
|
|
29 ///Fstcstd = 0x100000, // static constructor or static destructor
|
|
30 ///#endif
|
|
31 Fkeeplink = 0x200000, // don't change linkage to default
|
|
32 Fnodebug = 0x400000, // do not generate debug info for this function
|
|
33 Fgen = 0x800000, // compiler generated function
|
|
34 Finvariant = 0x1000000, // __invariant function
|
|
35 Fexplicit = 0x2000000, // explicit constructor
|
|
36 Fsurrogate = 0x4000000, // surrogate call function
|
|
37 }
|
|
38
|
|
39 enum F3
|
|
40 {
|
|
41 Fvtblgen = 0x01, // generate vtbl[] when this function is defined
|
|
42 Femptyexc = 0x02, // empty exception specification (obsolete, use Tflags & TFemptyexc)
|
|
43 Fcppeh = 0x04, // uses C++ EH
|
|
44 Fdeclared = 0x10, // already declared function Symbol
|
|
45 Fmark = 0x20, // has unbalanced OPctor's
|
|
46 Fnteh = 0x08, // uses NT Structured EH
|
|
47 Fdoinline = 0x40, // do inline walk
|
|
48 Foverridden = 0x80, // ignore for overriding purposes
|
|
49 ///#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
|
|
50 /// Fnowrite = 0x100, // SCinline should never output definition
|
|
51 ///#else
|
|
52 Fjmonitor = 0x100, // Jupiter synchronized function
|
|
53 ///#endif
|
|
54 Fnosideeff = 0x200, // function has no side effects
|
|
55 F3badoparrow = 0x400, // bad operator->()
|
|
56 Fmain = 0x800, // function is main() or wmain()
|
|
57 Fnested = 0x1000, // D nested function with 'this'
|
|
58 Fmember = 0x2000, // D member function with 'this'
|
|
59 Fnotailrecursion = 0x4000, // no tail recursion optimizations
|
73
|
60 Ffakeeh = 0x8000, // allocate space for NT EH context sym anyway
|
0
|
61 } |