Files
ldc/dmd
kai 4ea7e8dbf8 Add pragma to install function as global C runtime ctor or dtor.
DMD has the obscure functionality to install functions starting with
_STI_ as global ctors and funtions starting with _STD_ as global
dtors. IMHO a pragma is a better way to specify the behaviour.

This commit adds pragma(LDC_global_crt_ctor) and
pragma(LDC_global_crt_dtor). If the pragma is specified on a function
or static method then an entry is made in the corresponding list. E.g.
in monitor_.d:

    extern (C) {
        #pragma(LDC_global_crt_ctor)
        void _STI_monitor_staticctor()
        {
            // ...
        }
    }

This works on Linux without problems. On Windows with MS C Runtime
ctors work always but dtors are invoked only if linked against the
static C runtime. Dtors on Windows require at least LLVM 3.2.
2012-12-22 21:18:37 +01:00
..
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2012-11-24 21:10:13 +01:00
2012-02-23 20:41:22 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2012-11-24 21:10:13 +01:00
2012-04-13 23:12:46 +02:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2012-12-16 17:19:14 +01:00
2012-12-16 17:19:14 +01:00
2012-03-06 07:28:29 +01:00
2012-02-02 03:13:27 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2012-11-24 21:10:13 +01:00
2012-04-13 23:12:46 +02:00
2012-03-06 07:28:29 +01:00
2012-02-02 03:13:27 +01:00
2012-03-06 07:28:29 +01:00
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2012-03-06 07:28:29 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2012-03-06 07:28:29 +01:00
2012-03-06 07:28:29 +01:00
2012-12-16 18:08:19 +01:00
2012-12-20 01:00:55 +01:00
2011-12-03 13:52:05 +04:00
2012-03-06 07:28:29 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2009-03-12 20:37:27 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-02-23 20:41:22 +01:00
2012-04-13 23:12:46 +02:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-03-06 07:28:29 +01:00
2012-11-24 21:10:13 +01:00
2012-11-24 21:10:13 +01:00
2012-04-13 23:12:46 +02:00
2012-03-06 07:28:29 +01:00
2012-03-06 07:28:29 +01:00
2012-03-06 07:28:29 +01:00
2012-03-06 07:28:29 +01:00



		The D Programming Language

		Compiler Front End Source

		Copyright (c) 1999-2002, by Digital Mars

		www.digitalmars.com

		All Rights Reserved





This is the source code to the front end Digital Mars D compiler.

It covers the lexical analysis, parsing, and semantic analysis

of the D Programming Language defined in the documents at

www.digitalmars.com/d/



The optimizer, code generator, and object file generator are not part

of this source, hence the source does not currently constitute a complete,

compilable program. However, many people have expressed a strong interested

in producing a D compiler with the GNU compiler sources. This release should

enable that.



These sources are free, they are redistributable and modifiable

under the terms of the GNU General Public License (attached as gpl.txt),

or the Artistic License (attached as artistic.txt).



It does not apply to anything else distributed by Digital Mars,

including D compiler executables.



-Walter Bright