Kai Nacke
1de68a45b8
First import of dmd-2.065-b1 (7088593).
...
The CPP mangling is not integrated yet.
2013-12-06 16:59:41 +01:00
Kai Nacke
c0673fee71
Merge branch 'master' into merge-2.064
2013-12-05 08:41:05 +01:00
Kai Nacke
76199638c1
Fix null pointer derefence in LLVM 3.5
2013-12-05 08:40:04 +01:00
Kai Nacke
08e31123e5
Fix issue with unions and initializers
2013-12-03 08:39:46 +01:00
Kai Nacke
1a36f9b394
Replace general error with more accurate error message (does not resolve issue)
2013-11-28 08:04:49 +01:00
Kai Nacke
e1464fe458
CCP classes do not have a monitor.
...
This fixes a failure in runnable/xtest46.d. I still need to check
the structure of the emitted class for compability with C++.
2013-11-28 07:59:01 +01:00
Kai Nacke
eb85713ed1
Merge branch 'master' into merge-2.064
2013-11-27 22:46:38 +01:00
Kai Nacke
37ee9962fd
Changes for LLVM 3.5
2013-11-27 22:44:49 +01:00
Kai Nacke
87965cdc19
Merge branch 'master' into merge-2.064
...
Conflicts:
runtime/druntime
2013-11-26 08:00:10 +01:00
Kai Nacke
7f017608a8
Use enum literal instead of constant
2013-11-26 07:56:50 +01:00
Kai Nacke
18d53f8937
Enable NRVO for static arrays.
...
This is new in 2.064 and fixes a test failure in runnable/sdtor.d.
2013-11-20 21:29:50 +01:00
Kai Nacke
3ef3e358f5
Wrong break target choosen for labeled break.
...
This fixes a test failure in runnable/foreach5.d.
2013-11-20 17:00:37 +01:00
Kai Nacke
b22b7aef3c
Merge branch 'master' into merge-2.064
2013-11-14 21:35:10 +01:00
Kai Nacke
2063b4ea89
Fix for issue #543 .
...
Immutables are constant values, too.
2013-11-14 21:21:04 +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
cef5b27400
Revert "Declare more TypeClass instances as builtin."
...
This reverts commit f7f62a609d .
2013-11-07 17:13:45 +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
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
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 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
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
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
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
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
a73e4602ee
Simplify EmitMemSet in GarbageCollect2Stack.
...
Simply take advantage of the predefined `CreateMemSet()` function.
2013-10-25 23:28:29 +02:00
kai
835e972e6b
Fix va_arg handling.
...
The change of symbol emission ignored the fact that the va_arg intrinsic must be
handled in a special way. This commit corrects the omission (which leads to seg
faults on Linux/PPC64).
2013-10-25 16:15:52 +02:00
Kai Nacke
e5fe110280
Merge pull request #526 from klickverbot/newclass-signature
...
Correct signature of _d_newclass runtime call.
2013-10-23 21:43:11 -07:00
David Nadlinger
b052b30442
Correct signature of _d_newclass runtime call.
...
Fixes programs trying to directly access it (e.g. the
GtkD bindings). Not sure why this didn't come up earlier.
2013-10-24 00:27:09 +02:00
David Nadlinger
1f59740524
_d_allocclass -> "_d_newclass".
...
The define is a leftover from the times when we supported
both D1 and D2.
2013-10-24 00:25:36 +02:00
David Nadlinger
3d8e2e5e5c
Add virtual destructor to GarbageCollect2Stack to silence GCC warning.
2013-10-24 00:24:55 +02:00
David Nadlinger
36b70b68e8
Do not generate invalid IR in dgc2stack pass.
...
Branching to a block that starts with a landing pad
instruction is illegal.
GitHub: Fixes #524 .
2013-10-23 22:53:18 +02:00
David Nadlinger
7ca329e77e
More accurate description for "-vv".
...
Still not happy with it, but I feel it is still better
than just "very verbose".
2013-10-15 01:50:44 +02:00
Kai Nacke
90d0f6c12a
Merge pull request #429 from redstar/moduleflags
...
Implement pragma(lib) on Windows using module metadata.
2013-10-14 00:26:17 -07:00