3155 Commits

Author SHA1 Message Date
kai
bf421bdcd1 Fix for issue #420.
The frontend only creates a scalar literal instead of an
array literal in order to initialize a vector field. This
commit adds the missing code.
2013-07-01 00:09:31 +02:00
kai
67a9391f79 Replace an old-style cast. 2013-06-30 22:30:13 +02:00
kai
72ddd21814 Head is now at 2.063.2
Increment version number and add phobos changes.
2013-06-30 17:17:16 +02:00
Kai Nacke
84d2069d93 Merge pull request #418 from redstar/merge-2.063.2
Merge of v2.063.2
2013-06-29 13:40:27 -07:00
kai
7faa23f99c Merge of v2.063.2 2013-06-29 19:01:42 +02:00
kai
508bf67e2d Fix a gcc 4.4.7 issue and an LLVM 3.4 oversight. 2013-06-29 17:24:03 +02:00
kai
272230fe59 Make driver/toobj.cpp compatible with LLVM 3.4. 2013-06-29 17:11:14 +02:00
kai
707c134d6e Make ldmd source compatible with LLVM 3.4. 2013-06-29 16:10:52 +02:00
kai
bb37ef656b Replace llvm::sys::Path with llvm::SmallString in gen_gccbuiltins.cpp. 2013-06-29 15:25:34 +02:00
kai
8fb0b12e9e Replace llvm::sys::Path with llvm::SmallString in configfile.cpp.
Also adds some required functions for LLVM 3.4.
2013-06-29 15:10:30 +02:00
kai
cf88271ab9 Replace llvm::sys::Path with std::string.
In many cases this is straightforward. It makes the source LLVM 3.4 compatible without using #idef's.
2013-06-29 14:20:44 +02:00
kai
7194ccff0c Simplify file handling code.
Removes dependency of a DMD class and is compatible with LLVM 3.x.
2013-06-29 13:00:46 +02:00
kai
9facd2592b Centralize version numbers.
The top level CMakeLists.txt file should be the only file containing version informations.
2013-06-23 16:08:21 +02:00
kai
1d607fab62 Fix issues with spaces / line endings 2013-06-23 16:04:43 +02:00
kai
96601b33fa Fix ldmd for LLVM 3.4
The Path::canExecute() method is gone. As a first fix just copy the source.
2013-06-22 16:58:56 +02:00
kai
609b362410 Fix the LLVM 3.4 build.
The disable-simplify-libcalls is gone.
2013-06-21 23:44:42 +02:00
David Nadlinger
d0ef732cbd Merge pull request #409 from AlexeyProkhin/chaining
New exception chaining implementation
2013-06-21 12:20:33 -07:00
kai
272a25cbe7 Add latest version of vcbuild directory.
Used only for the Win64 build.
2013-06-21 17:37:40 +02:00
kai
aa143b560c Include Git revision in version info.
CMakeLists.txt contains now the version numbers for DMD and (next) LDC release.
If a .git folder is found then the LDC version is replaced by the first 6 chars
of the Git revision.

Possible improvements:

- If the build is not done at the master branch then it could be useful to check for a tag and use the tag instead of the revision. (for release builds)
- Maybe it is useful to include the branch name.

This fixes issue #366.
2013-06-21 06:47:32 +02:00
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