Commit Graph
2455 Commits
Author SHA1 Message Date
kai 3847471b0e DMD defines Win32 and Win64 mutually exclusive. Now LDC does the same. 2012-10-06 14:30:26 +02:00
David Nadlinger 9d52cf6855 Workaround for LLVM bug 11479 in -singleobj mode.
This applies the same fix as in 88f08cf for multiple object file
builds.

Fixes std.socket unit test builds.
2012-10-06 13:27:54 +02:00
David Nadlinger 3e3fb2c323 Phobos updates. 2012-10-06 13:09:43 +02:00
David Nadlinger 2d54a02295 Use null instead of undef for unneeded nested context pointers. 2012-10-06 13:07:17 +02:00
David Nadlinger 0fb39ee912 druntime updates. 2012-10-06 00:50:52 +02:00
David Nadlinger 5759ee3e6f dmd-testsuite updates. 2012-10-05 23:42:26 +02:00
David Nadlinger ad977c33b6 Merge pull request #182 from jerro/upstream-master
Casts between vector types.
2012-10-05 14:21:35 -07:00
Jernej Krempuš 7966abeb5e Bitcast the LLValue to the correct type. 2012-10-05 21:58:19 +02:00
Jernej Krempuš 39300283c0 Made casts between vector types work. 2012-10-05 19:38:43 +02:00
David Nadlinger 4e49814afb Vector -> static array casts are by address.
Fixes #176 (GitHub).
2012-10-05 17:23:31 +02:00
David Nadlinger 579c522e52 Fix GitHhub #180 – "#ifdef defined(...)". 2012-10-05 17:07:21 +02:00
David Nadlinger 4f6ec96b27 Fixed vector initialization involving implicit conversions.
Fixes first part of GitHub #176.
2012-10-03 19:51:04 +02:00
David Nadlinger 0c0e88dda1 Add missing LDMD option handling code.
Reusing the existing parsing code for DMD compatibility was a good
idea, copy-pasting the tool together in the middle of the night not
so much.
2012-10-03 19:51:04 +02:00
David Nadlinger e37cb50999 Use -of for object name when building executable with -singleobj.
This is what DMD does, and arguably the expected behavior – otherwise,
there would be no way other than using -od to prevent races if two
compiler instances could ever compile the same file(s) at the same
time (e.g. for debug/release configurations).

Should we transition to assuming -singleobj by default?
2012-10-03 18:01:58 +02:00
David Nadlinger b8e62b801b Merge pull request #177 from jerro/extractelement
extractelement and insertelement pragmas.
2012-10-03 09:01:20 -07:00
Jernej Krempuš fd3e79b7bb Corrections. 2012-10-03 15:26:43 +02:00
Jernej Krempuš 047dcb5591 Fixed D1 build errors. 2012-10-03 04:13:21 +02:00
Jernej Krempuš 115bc7113e Improved error messages. 2012-10-03 03:44:34 +02:00
Jernej Krempuš b798974f3a Added pragma insertelement. 2012-10-02 22:22:53 +02:00
Jernej Krempuš 2cf5d8c2a0 Added pragma extractelement 2012-10-02 21:37:27 +02:00
David Nadlinger d5d649b9c9 Build DMD testsuite in a debug and a release configuration. 2012-09-29 23:10:30 +02:00
David Nadlinger 407e534504 LDMD: Fix handling unknown switches from DFLAGS. 2012-09-29 22:45:42 +02:00
David Nadlinger c0980de3af Testsuite updates; run it as part of CI builds.
Only can run a quick build because of Travis time restrictions. Should
try to find a set of most-likely-to-fail command line args, maybe
"-O -gc -fPIC"?
2012-09-29 20:59:06 +02:00
kai 5e03034654 Make LDC compile with LLVM 3.2 again. 2012-09-29 20:51:21 +02:00
David Nadlinger 3eea8de2cf D1 build fix.
Sorry for the breakage, I intended to push the previous change as a pull
request for a CI run, not the main repository.
2012-09-28 02:03:39 +02:00
David Nadlinger 5f6447e52c Fix GitHub issue #168 – alignment of globals. 2012-09-28 01:57:21 +02:00
David Nadlinger 4b3662adfd Fixed unlisted vector handling bug.
Thanks to filwit on IRC for mentioning it.
2012-09-28 00:34:31 +02:00
David Nadlinger c6abdcf4a4 Don't set TypePointer::isunsigned to true in the frontend.
The previous solution was problematic because the change was language-
visble via the isUnsigned trait. Now, pointers are simply explicitly
checked for in the relevant places. (Note that there might be cases in
the diff where a direct isunsigned() call would have been appropriate –
I only checked for instances where the type clearly cannot be a pointer,
but chose to go the safe route in replicating existing behavior
otherwise).

Fixes DMD testcase 'traits'.
2012-09-28 00:28:49 +02:00
David Nadlinger e7c72b072b Default to C-style variadics for all calling conventions.
Fixes DMD testcase 'callingconv'.
2012-09-27 23:53:04 +02:00
David Nadlinger 3f9f13594c Work around unmerged types being returned from frontend.
Fixes DMD testcase 'funclit'.
2012-09-27 23:50:52 +02:00
David Nadlinger 4a1cbc2d33 Debug log prettification: Indent toElemDtor() children. 2012-09-27 22:01:53 +02:00
David Nadlinger 9e8ec9613c Removed superfluous newline in log message. 2012-09-27 21:55:09 +02:00
David Nadlinger 25beaf41b5 Fix base class contract invocation.
Fixes DMD testcase 'testcontracts'.
2012-09-27 21:05:51 +02:00
David Nadlinger f54fa0077a Only allow a single D main() function.
Fixes DMD testcase 'fail5634'.
2012-09-27 20:22:52 +02:00
David Nadlinger 8968103b8b Some verbose logging output prettification. 2012-09-21 18:54:23 +02:00
David Nadlinger 754cf3805f Added first draft of useful README.
Needs to be expanded with a short section on contributing (and a
separate CONTRIBUTING file, for the GitHub feature), ...

LICENSE also needs an overhaul, and our files need license headers.
2012-09-18 23:41:23 +02:00
David Nadlinger 146622c5eb Merge pull request #165 from klickverbot/contract-out
Fix #162 - contracts for member functions with out parameters.
2012-09-17 05:51:38 -07:00
David Nadlinger 9e64918efd Fix #162 - contracts for member functions with out parameters.
Also documented the code and changed it to explicitly use IN_LLVM
for the LDC specific parts in order to make debugging/frontend
merging easier.
2012-09-17 01:46:48 +02:00
David Nadlinger 0e6639f6be IRC/ML notifications for Travis CI. 2012-09-16 22:19:04 +02:00
David Nadlinger 165e0ef3c6 Fix typo in D1 part of 940d6e9. 2012-09-16 22:07:30 +02:00
David Nadlinger b11c49a9c9 Fix D1 build.
This applies the changes from 9a3cdf2e to dmd/ as well.
2012-09-16 22:04:39 +02:00
David Nadlinger 6ecd2e993b Initial config for Travis CI (travis-ci.org).
Doesn't run any tests so far, only tests if everything builds.
2012-09-16 22:00:42 +02:00
kai 940d6e907f Take advantage of Triple and TargetData.
A lot of system specific knowledge is already present in LLVM. This is used to populate several fields in global.params instead of hard coded values in main(). Ensures that the frontend and LLVM have always the same values.
2012-09-16 19:50:21 +02:00
David Nadlinger 98f9742db5 FuncDeclaration::semantic3 cleanup.
Cosmetical changes only.
2012-09-16 19:22:17 +02:00
kai 59cf17a06b Rename variables for options ms-link and ms-lib.
This prevents a name clash and fixes #164.
2012-09-16 14:35:33 +02:00
kai c6b3f0a4e1 Add support for MS Link.
If the target OS is Windows using the MS runtime then use LINK.EXE as the linker.
2012-09-16 13:49:47 +02:00
kai 9fad5fcfbd Remove unused inifile implementation.
LDC uses libconfig. The inifile implementation is dead code.
2012-09-16 13:45:28 +02:00
kai 9bc844b6dd Refactor code to create directory into new function. 2012-09-16 12:00:14 +02:00
kai 1773f7c7d9 Refactor common code to execute a program.
The common code for linking, creating libraries and running the created program is moved into a new function `ExecuteToolAndWait`.
2012-09-16 10:54:28 +02:00
kai 6e554c6647 Add support for MS Lib.
If the target OS is Windows using the MS runtime then use LIB.EXE as the archiver.
2012-09-16 00:03:27 +02:00