Mercurial > projects > ldc
diff dmd/struct.c @ 1482:d9c5f5a43403
Run `semantic3` on imported modules, and emit new symbols with
`available_externally` linkage. This allows the inliner to inline functions from
other modules while telling the code generator to ignore those functions (treat
them as declarations)
Still generates a few extra `TypeInfo`s and strings...
Disabled when generating debug info because I don't really understand it, and it
doesn't like this.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Sun, 07 Jun 2009 16:00:13 +0200 |
parents | 8026319762be |
children | def7a1d494fd |
line wrap: on
line diff
--- a/dmd/struct.c Sun Jun 07 15:07:29 2009 +0200 +++ b/dmd/struct.c Sun Jun 07 16:00:13 2009 +0200 @@ -52,6 +52,10 @@ ctor = NULL; defaultCtor = NULL; #endif + +#if IN_LLVM + availableExternally = true; // assume this unless proven otherwise +#endif } enum PROT AggregateDeclaration::prot() @@ -81,6 +85,10 @@ void AggregateDeclaration::semantic3(Scope *sc) { int i; + // LDC + if (!global.params.useAvailableExternally) + availableExternally = false; + //printf("AggregateDeclaration::semantic3(%s)\n", toChars()); if (members) {