Commit Graph
3136 Commits
Author SHA1 Message Date
Alexey Prokhin 324ff01fdb Enabled another exception chaining test 2013-06-19 10:11:12 +04:00
Alexey Prokhin 09c471ae74 Properly implement exception chaining 2013-06-18 17:06:00 +04:00
Alexey Prokhin 49f8cfe99e Fixed codegen of nested try-catch-finally blocks 2013-06-18 14:16:51 +04:00
David Nadlinger 31d85d0910 Merge pull request #398 from ldc-developers/merge-2.063
DMD 2.063.1 merge
2013-06-17 14:04:36 -07:00
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
kai 40926eaba5 Add detection of used Linux distribution.
This information is then used to put the bash completion files into the right directory.
2013-06-16 23:06:50 +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
kai 23fd0c8116 Add debug info for enums.
Previously enums were reduced to the underlying type.
Now the symbolic constants can be used.

This is a bug-fixed version of commit 001a3964.
2013-06-16 20:21:53 +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
kai e556882be4 Simplify code for LLVM 3.4.
Introduces a compability function instead of a #if/#endif cascade.
2013-06-16 18:22:45 +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
kai 683294cec9 Fix a typo in Linux code. 2013-06-16 17:57:25 +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
Kai Nacke de1c3b7f01 Merge pull request #397 from redstar/llvm34
Make ldc compatible with LLVM 3.4
2013-06-15 11:54:12 -07:00
kai f1c71e4bac Make ldc compatible with LLVM 3.4
Development of LLVM 3.4 started with a cleanup of the path class (PathV1).
The changes here let ldc compile at least with rev. 184039 of LLVM.
2013-06-15 19:52:29 +02:00
Kai Nacke fe455fe1a8 Merge pull request #400 from redstar/ldmd34
Make ldmd compatible with LLVM 3.4
2013-06-15 10:51:37 -07:00
kai 9f921b25d9 Make ldmd compatible with LLVM 3.4
Development of LLVM 3.4 started with a cleanup of the path class (PathV1).
The changes here let ldmd compile at least with rev. 184039 of LLVM.
2013-06-15 19:13:45 +02:00
Kai Nacke 03ec8eefbd Merge pull request #399 from redstar/travis
Add LLVM 3.2/3/4 to Travis CI.
2013-06-15 09:18:44 -07:00
kai 2b4744f2f2 Add LLVM 3.2/3/4 to Travis CI.
Changes the Travis CI configuration to use the following packages:
- LLVM 3.1 from precise
- LLVM 3.2 from precise-proposed
- LLVM 3.3 and 3.4 from llvm.org snapshot

LLVM 3.4 builds are allowed to fail because this is a development snaphot.
Reorganizes the cmake command line, too.
2013-06-15 17:24:36 +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
kai 32cf5318a4 Add llvm-config-3.4 to list of llvm-config names.
The LLVM 3.4 development ccycle has started. We should be prepared
for a distribution which starts to use this name.
2013-06-15 16:12:09 +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