Commit graph

3545 commits

Author SHA1 Message Date
Kai Nacke
2063b4ea89 Fix for issue #543.
Immutables are constant values, too.
2013-11-14 21:21:04 +01:00
Kai Nacke
ba8caa7bb1 Merge branch 'master' into merge-2.064 2013-11-14 06:51:40 +01:00
Kai Nacke
29e646ed9a Fix error message in case object.di is not found. 2013-11-14 06:51:00 +01:00
Kai Nacke
015cf202e1 Fix cast problem with implicit constructors. 2013-11-12 08:23:06 +01:00
Kai Nacke
7743f56450 Fix for the tuple assignment error in test aliasthis.d
The DMD front end uses a hack to avoid a "has no effect" error. This
hack must be recognised by LDC, too.
2013-11-10 20:34:48 +01:00
Kai Nacke
9ecd0da1b6 Add new testsuite.
This adds the DMD 2.064 test suite. It includes a workaround for a LLVM bug in the unit tests, too.
2013-11-08 14:40:45 +01:00
Kai Nacke
4d856b881f Update test suite to 2.064 2013-11-08 09:50:36 +01:00
Kai Nacke
cef5b27400 Revert "Declare more TypeClass instances as builtin."
This reverts commit f7f62a609d.
2013-11-07 17:13:45 +01:00
Kai Nacke
e02947155f Merge remote-tracking branch 'origin/merge-2.064' into merge-2.064 2013-11-07 12:00:59 +01:00
kai
b7d80963ee Mark more differences between DMD and LDC. 2013-11-06 02:27:08 +01:00
Kai Nacke
2cdc483315 Merge remote-tracking branch 'origin/master' into merge-2.064 2013-11-05 13:41:18 +01:00
kai
e6529cfd3d [experimental] Add sanitizer options to LDC.
Add some of the sanitizer passes to LDC. This is not complete (linking must be
done using clang and the right `-fsanitize=` option) and may not be useful at
all.

If it proves to be usefull then a lot of other options (e.g. blacklist) must be
added.
2013-11-05 13:03:52 +01:00
Kai Nacke
254579df2c Correct issues found by AddressSanitizer. 2013-11-05 11:44:21 +01:00
Kai Nacke
248d3f2b66 Merge branch 'master' into merge-2.064 2013-11-05 10:47:43 +01:00
kai
6fe28e1660 Small code modifications to Ir-Classes.
Adds some constructors and moves the code to the header file. Uses some of the new constructors.

A big problem with the source are the different strategies used for otherwise similar classes.
E.g. a IrField registers itself with the VarDeclaration. Same is required for IrParameter, but
in this case it is done by the caller.
2013-11-05 10:31:14 +01:00
Kai Nacke
f772efaec3 Merge branch 'master' into merge-2.064 2013-11-04 02:24:02 +01:00
kai
8d7f0bf0eb Fix for issue #535.
The symbols must have weak_odr linkage if they result from a template instantiation.
2013-11-04 02:21:05 +01:00
Kai Nacke
2f8f68fabd Update to DMD@a9eedd1.
Also include latest phobos changes.
2013-11-04 00:02:41 +01:00
Kai Nacke
f7f62a609d Declare more TypeClass instances as builtin.
Another difference to DMD. With the new TypeInfo, this should work now.
2013-11-03 15:23:11 +01:00
Kai Nacke
ecefd81c42 Possible fix for the current segfaults.
DMD treats immutable(char)[] and cons(char)[] as builtin.
The latter was missing in LDC.
2013-11-03 13:45:25 +01:00
kai
bf4c6f8ff2 Fix CR/LF horror which prevents compiling with MSVC 2013-11-02 20:23:31 +01:00
kai
1310337d6e Add more IN_LLVM sections and minimize more differences to DMD. 2013-11-02 19:56:47 +01:00
Kai Nacke
27ccce3d1f Make std.math.ldexp @trusted 2013-11-01 20:21:59 +01:00
Kai Nacke
a225ee934d _d_hidden_func needs a parameter.
The DMD implementation is a bit odd. A parameter is passed to the function but the function
itself is declared without a parameter. Then inline assembly is required to retrieve the
parameter.
Just do the same as gdc: declare the passed parameter.
2013-11-01 19:01:29 +01:00
Kai Nacke
81775dfb9a Fix version number 2013-11-01 18:59:58 +01:00
Kai Nacke
054d78934a Update to b52c07.
Also includes latest druntime changes.
2013-11-01 17:55:34 +01:00
Kai Nacke
d48c72d435 Enable delete again.
Some Travis-CI errors may be caused by out-of-memory.
2013-10-31 12:21:33 +01:00
Kai Nacke
72f34e3d8e Update source to eb1b004.
This brings the source beyond beta4.
2013-10-30 21:52:45 +01:00
Kai Nacke
3a85bbec94 Merge latest druntime/phobos changes. 2013-10-29 21:03:00 +01:00
Kai Nacke
4041855110 Update use of Typeinfo. 2013-10-29 19:21:15 +01:00
David Nadlinger
d9b137bb45 Implement new ModuleInfo discovery/druntime startup scheme on Linux.
This is the same implementation that is used for DMD and
supports shared libraries (not yet tested).
2013-10-29 19:21:15 +01:00
David Nadlinger
82c202bb60 Adjust _d_assert_msg return type. 2013-10-29 19:21:15 +01:00
David Nadlinger
2b800b8732 Fix catch clause codegen.
In the 2.064 frontend, the catch variables have a zero
initializer, so DtoDeclarationExp overwrote the actually
caught exception with null.
2013-10-29 19:21:15 +01:00
David Nadlinger
55c02f725a Fix IRLandingPadCatchInfo initialization order warning. 2013-10-29 19:21:15 +01:00
David Nadlinger
e36385214c Do not leave __xopEquals for structs undefined. 2013-10-29 19:21:15 +01:00
David Nadlinger
d918115e64 Remove assertion triggered due to qualifier mismatch. 2013-10-29 19:21:15 +01:00
David Nadlinger
1d142129e3 Handle "initializer outlining" for loop rewrites in 2.064. 2013-10-29 19:21:15 +01:00
David Nadlinger
cb341586e3 First merge of 2.064 beta.
This corresponds to DMD commit a913ce4bc59a94a022a27e390fc841f4aededffb.

Doesn't build Phobos yet.
2013-10-29 19:21:15 +01:00
David Nadlinger
c400d180d2 Immediately exit on function type mismatch to avoid LLVM crash. 2013-10-29 19:21:14 +01:00
David Nadlinger
01b6d55770 Diff reduction: Remove Scope::ignoreTemplates and friends.
It is unused since my change to the way codegen is
driven. If we want to optimize template codegen again,
we should do it properly, contributing the changes back
to DMD.
2013-10-29 19:21:14 +01:00
David Nadlinger
5ac894c32d Diff reduction: Remove unnecessary forward declarations. 2013-10-29 19:21:14 +01:00
David Nadlinger
f67cbcda98 DtoType -> DtoFunctionType. 2013-10-29 19:21:14 +01:00
kai
8408afcf6d Add SSE4.1, SSE4.2, AES and SHA opcodes.
Also adds comments for all AVX opcodes supported by DMD.
This fixes issue #514.
2013-10-29 17:31:43 +01:00
Kai Nacke
c03ed8eea9 Merge pull request #532 from klickverbot/gc2stack-fixes
gc2stack: Cleanup, handle _d_allocmemory.
2013-10-27 23:14:31 -07:00
David Nadlinger
9f1c26b52a gc2stack: Handle _d_allocmemory.
This allows us to clean up after inlining closures.
2013-10-27 17:05:19 +01:00
David Nadlinger
3539e201f8 gc2stack: Move TypeInfo handling code into FunctionInfo subclass.
This is to properly support calls that don't involve TypeInfo
at all, like it is already the case for _d_newclass, and will be
for _d_allocmemory.
2013-10-27 17:05:19 +01:00
David Nadlinger
5b9208ef85 gc2stack: Extract static size checking code into helper function. 2013-10-27 17:05:19 +01:00
David Nadlinger
e1a6d8144b gc2stack: Replace return type bool with proper enum flag.
This makes the code much easier to read.
2013-10-27 15:43:12 +01:00
David Nadlinger
27b4f730aa gc2stack: Remove unused safeToDelete mechanism. 2013-10-27 15:36:14 +01:00
Kai Nacke
5bf42f86aa Remove -Werror from LLVM_CXXFLAGS.
This flag causes compile errors we can't fix.
2013-10-25 23:30:32 +02:00