David Nadlinger
46e699b635
Fold in druntime OS X build fix.
2013-06-17 15:21:24 +02:00
David Nadlinger
c9c8f51118
Fold in broken std.exception test case fix.
2013-06-17 13:37:53 +02:00
David Nadlinger
235bb94878
Make -release only disable bounds checking in non-@safe code.
2013-06-17 13:31:21 +02:00
David Nadlinger
1215ffacd3
Complete IrStruct->IrAggr rename.
2013-06-17 13:14:15 +02:00
David Nadlinger
b15588ed15
Finally fix the _d_invariant declaration on x86.
2013-06-17 13:14:14 +02:00
David Nadlinger
9700d84132
Initialize IrTypeAggr members in order to silence warning.
2013-06-17 02:38:38 +02:00
David Nadlinger
dd8652768c
Remove unused IrTypeFunction::fty().
...
The design split between IrFuncTy/IrTypeFunction might need
a review at some point.
2013-06-17 02:37:55 +02:00
David Nadlinger
9b68c48611
Fold in disabling of std.traits test.
2013-06-17 00:46:49 +02:00
David Nadlinger
e86a87ab6d
Complete switch to extern(D) _d_invariant.
2013-06-17 00:03:52 +02:00
David Nadlinger
0206269230
Ignore StaticAssert in DtoDeclarationExp.
...
Fixes DMD testcase 'testrightthis'.
2013-06-16 21:17:46 +02:00
David Nadlinger
cfd5c052fe
Fix LLVM 3.1 build.
2013-06-16 20:49:23 +02:00
David Nadlinger
4774745f44
Do not try to generate metadata for unresolved types.
...
This does not fix the root cause, which is likely a frontend
bug/oddity, but avoids the crash.
2013-06-16 20:23:07 +02:00
David Nadlinger
a0ffaf56bf
Do not codegen aggregate types from within debug info generation.
...
This avoids problems where we would codegen children of an
"inner" template instantiation (i.e. a member of a non-template
aggregate in another module) because we have no way to know the
outer (declare-only) entity exists in the respective
mustDefineSymbol invocation.
An example for this are the std.typecons.RefCounted internals of
std.file.DirIterator, as used from std.datetime and other modules.
This is not only inefficient, but also causes linking issues due
to attribute inference for these functions not having run yet
(and consequently the mangled name being different from the
actual definition).
2013-06-16 19:33:04 +02:00
David Nadlinger
480d05c76e
Removed unused and broken template instantiation origin detection.
...
Having something like this would be useful in determining
whether to define a given template symbol during codegen, but
the frontend sometimes produces TemplateInstances in a scope
where sc->tinst has not been semantic'd, thus breaking the
chaining mechanism.
2013-06-16 18:21:36 +02:00
David Nadlinger
6a1fef81f4
Test suite updates.
2013-06-16 01:06:20 +02:00
David Nadlinger
897c4382af
Do not re-codegen struct literals on taking address of globals.
...
The AST the frontend generates is arguably invalid, but we
have to deal with that.
Fixes DMD testcase 'interpret'.
2013-06-16 01:02:46 +02:00
David Nadlinger
68798f06c8
Accept '.dd' pure DDoc files.
2013-06-16 00:39:47 +02:00
David Nadlinger
1d9804d03c
Use '__ModuleInfoZ' for ModuleInfos, like DMD does.
...
This way, we stay at least compatible w.r.t. demanglers,
pragma(mangle, …) tricks.
Fixes DMD testcase 'mangle'.
2013-06-16 00:28:02 +02:00
David Nadlinger
acd508945a
Allow multiple declarations to share the same mangled name/LLVM global.
...
This is necessary to enable aliasing compiler-generated
symbols with pragma(mangle, …).
Note that globals for internal use are still directly
created.
2013-06-16 00:28:02 +02:00
David Nadlinger
0305d3bce2
Never make external variables something else than external.
...
Fixes crash in DMD testcase 'mangle'.
2013-06-15 23:22:34 +02:00
David Nadlinger
46b6fdd531
Implement '-main'.
2013-06-15 23:09:59 +02:00
David Nadlinger
bed6243481
LDC does not support -transition yet.
2013-06-15 22:57:57 +02:00
David Nadlinger
08f27c0b6d
Test suite updates.
2013-06-15 22:55:28 +02:00
David Nadlinger
2e0941c194
Add names for globals to make LDC compile against LLVM 3.1.
2013-06-15 16:16:47 +02:00
David Nadlinger
e9d7c10109
Align our copy of TypeInfo code to upstream DMD version.
2013-06-15 15:11:17 +02:00
David Nadlinger
a7882a8ae6
Fix another few issues caused by the upstream v2.063.1 retagging.
2013-06-15 15:08:19 +02:00
David Nadlinger
0e49a57a5f
More upstream DMD alignment.
2013-06-15 15:06:57 +02:00
David Nadlinger
c813ccdcf7
Small debug diagnostics improvements.
2013-06-15 15:04:48 +02:00
David Nadlinger
66e9427f88
Backport StructLiteralExp::toChars infinite recursion fix.
...
We absolutely need this for log output/debugging.
2013-06-15 15:04:48 +02:00
David Nadlinger
7874c95cdc
Remove unused StructLiteralExp::constType variable.
2013-06-15 15:04:48 +02:00
David Nadlinger
bca5dac669
Fixed ClassReferenceExp codegen, handle self-referential literals.
2013-06-15 15:04:48 +02:00
David Nadlinger
041e8e8b54
Remove LDC-specific .classinfo AST rewrite.
...
Apart from reducing the diff to upstream DMD, this also fixes a
"cannot interpret" CTFE issue.
2013-06-14 21:49:44 +02:00
David Nadlinger
3035735bc9
FuncDeclaration::canInline diff reduction.
...
The new arguments to the call in DtoLinkage do not exactly
match what was there before, but have been harmonized with
the other canInline call.
2013-06-14 19:14:19 +02:00
David Nadlinger
4f1374e211
Fold in testsuite merge fixes.
2013-06-14 17:44:08 +02:00
David Nadlinger
eb14970fd0
Minor nested context doc comment improval.
2013-06-14 17:10:50 +02:00
David Nadlinger
349305cd1d
Fix array op argument evaluation order regression.
...
Fixes DMD testcase 'arrayop'.
2013-06-14 17:02:58 +02:00
David Nadlinger
9dc387aa91
Do not invoke postblit twice on struct literal creation.
...
The frontend seems to explicitly insert __cpctor now.
Fixes DMD testcase 'sdtor'.
2013-06-14 16:43:41 +02:00
David Nadlinger
86563a2ee1
Allow casting AAs to bool.
...
Fixed DMD testcase 'nulltype'.
2013-06-14 16:01:09 +02:00
David Nadlinger
9c0514a9b1
Correctly load context for nested class members with own nested context.
...
Fixes DMD testcase 'xtest46'.
2013-06-14 15:49:15 +02:00
David Nadlinger
4901877d24
Handle side-effects in TupleExp::e0.
...
Fixes DMD testcase 'aliasthis'.
2013-06-14 15:03:24 +02:00
David Nadlinger
83415eeeb8
Minor debug log fixes.
2013-06-14 15:03:24 +02:00
David Nadlinger
cbe2c45b83
Fold in rudimentary rt.sections implementation.
2013-06-14 15:03:24 +02:00
David Nadlinger
c64c4f479a
Handle static array typed SliceExps.
...
Fixes DMD testcase 'testbounds2'.
2013-06-13 18:45:07 +02:00
David Nadlinger
48f784eda8
Fold in out-of-source test build adaption changes.
2013-06-13 00:17:39 +02:00
David Nadlinger
95b34c3625
zext bool to i8 in makeLValue.
2013-06-12 20:39:34 +02:00
David Nadlinger
bc910004a4
Adapt codegen to removal of old _d_invariant from druntime.
...
We should think about using symbolic constants for runtime function
names though, this is not maintainable in the long run.
2013-06-12 20:34:50 +02:00
David Nadlinger
4c788699ae
Initial, incomplete ClassReferenceExp::toConstElem implementation.
...
Allows us to get through a Phobos build without errors.
2013-06-12 20:23:27 +02:00
David Nadlinger
b1465ae7e3
Extended DtoLinkage comments.
2013-06-12 20:16:37 +02:00
David Nadlinger
d3f89f81a8
Never emit naked functions as available_externally.
2013-06-12 20:16:37 +02:00
David Nadlinger
d7526157ab
Expression::optimize everything to resolve manifest constants in inline asm.
2013-06-12 20:16:37 +02:00