annotate dmd/codegen/linkhelper.d @ 140:31c086f76669

dmd.lib now only contains the backend backward references from the backend to the frontend are implemented in ddmd win32_lib.mak is replaced by a patch also fixed VisualD project file predefined versions
author Trass3r
date Tue, 14 Sep 2010 01:54:48 +0200
parents
children b7b61140701d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
140
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
1 module dmd.codegen.linkhelper;
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
2
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
3 import dmd.Loc;
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
4 import dmd.Util;
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
5
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
6 import core.stdc.stdarg;
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
7 import std.conv;
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
8
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
9 // help resolve some linker dependencies from the backend back into the frontend
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
10
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
11 extern(C++)
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
12 {
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
13 // msc.c wants to access global from out_config_init(), but it should never be called
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
14 struct Global {}
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
15 Global global;
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
16
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
17 void error(const char *filename, uint linnum, const char *format, ...)
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
18 {
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
19 Loc loc;
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
20 loc.filename = to!string(filename);
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
21 loc.linnum = linnum;
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
22
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
23 va_list ap;
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
24 va_start(ap, format);
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
25
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
26 char buf[1024];
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
27 vsprintf(buf.ptr, format, ap);
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
28 va_end( ap );
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
29
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
30 dmd.Util.error(loc, to!string(buf));
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
31 }
31c086f76669 dmd.lib now only contains the backend
Trass3r
parents:
diff changeset
32 }