Kai Nacke
2188ef9e56
Merge branch 'master' into merge-2.064
2013-12-16 09:08:11 +01:00
Kai Nacke
bac536a29c
Fix for issue #553 .
...
Check if a static array is accessed with a known index. In this case the
bounds check can be omitted.
2013-12-16 08:14:58 +01:00
Kai Nacke
038855e4a0
Deprecate -noruntime switch (which has now no function).
2013-12-12 20:02:45 +01:00
Kai Nacke
bea0b597ae
Add -nogc switch.
...
This is a replacement for the -noruntime switch. With the new DSO implementation
every module generates runtime calls. The main motivation for the -noruntime switch
is to avoid implicit GC calls. Therefore a dedicated -nogc switch is introduced.
2013-12-10 18:33:49 +01:00
Kai Nacke
d25d28f914
Extend error message if -noruntime is used.
...
The name of the implicit called runtime function gives a hint about
what goes wrong.
2013-12-08 20:24:08 +01:00
Kai Nacke
bdc1f44088
Merge remote-tracking branch 'origin/master' into merge-2.064
...
Conflicts:
gen/runtime.cpp
runtime/CMakeLists.txt
2013-12-08 19:29:10 +01:00
Kai Nacke
aeba90b9f9
Fix a clang warning
2013-12-08 18:59:17 +01:00
Alexey Prokhin
669319b924
Fix DMD Issue 8360 - Destruction of uninitialized temporary struct with assert
2013-12-08 20:40:14 +04:00
Kai Nacke
43acc1f9c8
Check if basic types are read from object.di before usage.
...
If object.di was not read or is incomplete then basic types may be missing.
This results in a crash if they are used during runtime initialization.
This fixes #551 .
2013-12-08 17:30:02 +01:00
Alexey Prokhin
ffe26e4ccc
Fix DMD Issue 11238 - Codegen error when this is a ref parameter to the method
2013-12-08 14:56:40 +04:00
Alexey Prokhin
89573a731a
Fix DMD Issue 10451 - Array of pointers to opaque struct gives forward reference errors.
2013-12-08 14:43:45 +04:00
Alexey Prokhin
9e724b3f9a
Implement ClassReferenceExp::toElem
2013-12-08 14:37:16 +04:00
Alexey Prokhin
dcf005213b
Implement cast to void
2013-12-08 14:37:15 +04:00
Alexey Prokhin
5a10a23cef
Remove redundant FuncDeclaration::nestedVars.
...
The change not only makes the code cleaner but also fixes compilation of multiple files at once.
Previously, fd->nestedVars may have been filled twice if fd was a template function instantiated in two modules simultaneously.
2013-12-08 14:37:15 +04:00
Alexey Prokhin
5a181d9312
Update struct type info generation to reflect changes in dmd frontend
2013-12-08 14:36:59 +04:00
Alexey Prokhin
d235e4cc28
Fix DMD Issue 10425 - Link error with templates.
...
Merged dmdfe changes in typeinf.c
2013-12-08 13:17:49 +04: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