Commit Graph
276 Commits
Author SHA1 Message Date
David Nadlinger 1b4f0c5d4a Remove LDC-only workaround for 2206.
The bug has been fixed in upstream at least since 2.052.
2013-05-31 22:42:21 +02:00
David Nadlinger 7e7af8c920 Prefer Port over #if-switching on the compiler.
The issue might have to be revisited (with proper testing)
for FreeBSD or ARM.
2013-05-31 22:42:21 +02:00
David Nadlinger ca3cd82805 Removed obsolete html.{h, c}.
Gone from upstream in 2.062 as well.
2013-05-31 22:42:21 +02:00
Hans W. Uhlig fb8bddd988 Correcting LDC Specific C++11 Violation 2013-05-28 17:23:54 -07:00
David Nadlinger 4597423dc5 More IN_LLVM. 2013-05-19 20:52:51 +02:00
David Nadlinger 4ad1b94f11 Remove piece of dead code gone from upstream as well.
We do not support building with DMC anyway, so no
functionality change implied.
2013-05-19 20:52:42 +02:00
David Nadlinger ad4eb1b6bd Align unused real alignment code to upstream source.
We set the target-specific values at runtime in Type::init().
2013-05-19 20:52:42 +02:00
David Nadlinger db270a9a94 Replaced response_expand with BSD-licensed reimplementation.
Cleanup to follow later.

GitHub: Fixes #267.
2013-05-12 13:38:23 +02:00
David Nadlinger 15fd67be03 Remove code for unimplemented goto-into-asm check.
The check was never fully implemented. We need to look into
this again, as currently we fail with a fairly unintellegible
LLVM ICE (added as GitHub #).
2013-05-11 20:18:34 +02:00
kai fa3054c7cc Fix uninitialized var in TemplateDeclaration.
This is a partial backport of https://github.com/D-Programming-Language/dmd/commit/214b0fdb26837a7ec0d79070c30d1a116cd571d1.
2013-05-10 13:10:40 +02:00
David Nadlinger 10f5d74737 Fix uninitialized vars in EnumDeclaration
'protection' and 'parent' are used in ScopeDSymbol::search
detected by Valgrind). The assignment in semantic0 is enough to
fix the bug, but I also added an initialization to the constructor.

This is a backport of DMD commit 4dfaf02d4d by Don Clugston.
2013-05-09 22:33:08 +02:00
kai a0c259205c Fix endian issue in dmd2/mtype.c.
The initial value for floats was 0 and not NaN due to an endian issue.
This was discovered by a test in object_.d.
2013-04-20 20:03:02 +02:00
kai bbdf473ef0 Fix for issue #326.
For a foreach (int i, dchar c; str) loop the compiler generates a
delegate with a different type signature then the runtime uses.
The runtime declares the parameters as void* and passes a pointer
to a size_t variable for the index. The code generated by the
compiler expects a ref int. This works on a little endian architecture,
but on a big endian architecture the index is always 0.
This fix changes the parameter type of the passed index to size_t
and generates a cast to the type specified by the user.
2013-04-11 08:23:33 +02:00
kai a28f14320c Wrap LDC specific code in #if IN_LLVM blocks.
Only for ForeachStatement as I have to investigate the code here.
2013-04-09 07:47:46 +02:00
David Nadlinger b8cdfad8c0 global.params.useAvailableExternally -> global.inExtraInliningSemantic.
This will hopefully make the associated code a bit easier
to read.
2013-04-01 21:17:13 +02:00
kai 8625666132 Wrap LDC specific code. 2013-03-31 05:01:40 +02:00
kai 312a85ce01 Fix a buffer overrun on Linux/PPC64.
The buffer in realToMangleBuffer() is too small for a longdouble.
2013-03-24 19:42:18 +01:00
David Nadlinger 7a58b2c1b2 Backport DMD pull request #1760.
Fixes DMD test case 'xtest46'.
2013-03-18 13:05:04 +01:00
David Nadlinger b73d669880 Don't crash on 'Ddoc' D files without -D being given.
Fixes DMD test case 'test9369'.
2013-03-16 16:04:42 +01:00
David Nadlinger 32eb24eebf Added '-Hkeep-all-bodies' switch.
The same behavior is triggered by the '-inline' switch for
DMD, but this doesn't quite translate to LDC.
2013-03-16 11:52:19 +01:00
David Nadlinger 99819d0c63 Merge branch 'master' into merge-2.062. 2013-03-11 23:07:32 +01:00
kai 5854fbfeb1 Fix comments 2013-03-11 22:32:41 +01:00
kai 0b19b81ac9 Add new intrinsic LDC_never_inline.
LDC_never_inline is a complementary intrinsic to LDC_allow_inline.
It tells the LLVM optimizer to never inline a function. This can be
useful if inlining creates incorrect code.
A possible application is core.thread.getStackTop().
2013-03-11 22:32:40 +01:00
kai 52ba03b259 Fix deprecation messages for non-vendor pragmas.
The deprecation message for non-vendor pragmas was never shown.

Conflicts:
	gen/pragma.cpp
2013-03-09 20:19:02 +01:00
kai fba9e204d8 Add missing pragma and deprecation warning.
The LDC_allow_inline pragma is not recognized. The deprecation message for
non-vendor pragmas is missing.
2013-03-09 20:11:03 +01:00
kai 21563fa067 Fix LLVM 3.3 build.
Again, the stricmp define in llvm/config.h caused an error.
2013-03-09 19:23:33 +01:00
kai d04864103e Use the new Port::stricmp() method. 2013-03-08 06:53:12 +01:00
kai bf52dbe389 Merge of DMD 2.062. 2013-03-06 18:18:56 +01:00
kai 820f6dbc7c Fix deprecation messages for non-vendor pragmas.
The deprecation message for non-vendor pragmas was never shown.
2013-02-28 08:00:43 +01:00
kai a7bed6c488 Fix prototypes from DMD2.
The prototypes for obj_includelib and obj_startaddress are DMD-specific.
Update them to match DMD 2.061.
2013-02-28 07:58:28 +01:00
kai 5c6ba2ec3b Add missing pragma and deprecation warning.
The LDC_allow_inline pragma is not recognized. The deprecation message for
non-vendor pragmas is missing.
2013-02-28 06:58:45 +01:00
David Nadlinger 6dc122b424 MinGW: Use __mingw_strtold instead of strtold.
The latter fails to parse hex floating point literals.
2013-02-26 13:14:32 +01:00
David Nadlinger f417500abc MinGW compilation fixes. 2013-02-13 00:07:53 +01:00
David Nadlinger ad53d9e558 MinGW support in Port. 2013-02-13 00:07:50 +01:00
David Nadlinger 5616753768 Consistently use quotes for LLVM includes. 2013-02-07 21:20:54 +01:00
David Nadlinger d4b391249d Removed redundant global.params.os field.
I hope I have untangled the checks for "native" Windows (Triple::Win32)
vs. Windows/MinGW/Cygwin (Triple::isOSWindows) correctly.

MinGW needs some default libraries as well, has to be fixed later.
2013-02-07 21:20:54 +01:00
David Nadlinger 5f3ba41574 Removed redundant global.params.cpu field.
Now that we have global.params.targetTriple, the information
is only duplicated.
2013-02-07 17:36:54 +01:00
David Nadlinger bee0b9eba1 Remove global.params.isLE. 2013-02-07 14:37:21 +01:00
kai 104cd77e9c Merge branch 'master' into merge-2.061-2 2013-02-03 15:50:39 +01:00
kai 0ff8d2f9f1 Fix a compile error with LLBM 3.3 2013-02-03 12:29:32 +01:00
kai cb22044f58 Merge branch 'master' into merge-2.061-2
Conflicts:
	dmd2/interpret.c
2013-01-21 18:06:13 +01:00
kai 55560bf382 Make frontend endian-aware.
In many parts the DMD frontend assumes a little endian CPU. In some
parts there are checks for endianess but they are incomplete and the
used definition is wrong. (Test for endianess will be removed in dmd
2.062.)
In this commit I add the required #if's and also add a CMake test for
endianess because there is no single compiler definition to check for.
2013-01-21 08:41:21 +01:00
David Nadlinger 30caa4bfe6 Merge branch 'master' into merge-2.061-2 2013-01-12 01:27:02 +01:00
David Nadlinger b99b78558b Hack to make nested struct .init results an rvalue.
The code still needs closer scrunity, as the 'nested' test
from the DMD testsuite doesn't fully pass yet.
2013-01-11 21:34:45 +01:00
kai a11459bc31 "The Great Renaming" continues.
More changes to match the renamed files of LLVM 3.3.
2013-01-06 17:17:30 +01:00
David Nadlinger 86a6a6ba05 Use DMD's C++ name mangling functionality.
Likely wrong for MinGW/MSVC.

Fixes DMD testcase 'test7030'.
2013-01-04 06:22:57 +01:00
David Nadlinger eb56e934a5 Restore original Parameter::ForeachDg signature.
Having two functions is not pretty, but shorter than messing
around with a custom context object, and much, MUCH better than
requiring a lot of changes to the rest of the code base.
2013-01-04 06:22:57 +01:00
David Nadlinger 26217eabb2 Remove LDC-specific callable literal kind inference hack. 2013-01-04 06:22:57 +01:00
David Nadlinger 5c518a16ec Merged 2.061 frontend. 2013-01-04 06:22:53 +01:00
David Nadlinger 326aedd0e4 Align AlignDeclaration constructor signature to upstream version.
If there still are error messages benefiting from the added
location information, the change should be upstreamed, as usual.
2013-01-04 01:50:51 +01:00