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