Commit Graph
100 Commits
Author SHA1 Message Date
David Nadlinger 95121115d3 gen_gccbuiltins cleanup. 2012-10-14 05:09:15 +02:00
David Nadlinger b0878bf8ef Fixed gccbuiltins module declaration. 2012-10-14 05:05:48 +02:00
David Nadlinger 4c3faa9a3d Fixed GCC builtin header generation for out-of-source builds. 2012-10-14 05:02:42 +02:00
David Nadlinger 45365bb0ab Merged pull request #196 from branch 'jerro/upstream-master2'. 2012-10-14 04:58:56 +02:00
David Nadlinger 3897b9331e Travis: Directly invoke ctest for -proper -output-on-failure. 2012-10-14 04:35:23 +02:00
David Nadlinger 23e6720605 Build druntime/Phobos unit tests on make test. 2012-10-14 04:35:15 +02:00
David Nadlinger 247da8ea86 Phobos updates. 2012-10-14 04:34:17 +02:00
David Nadlinger 4b0e8d998d Phobos updates. 2012-10-14 04:16:35 +02:00
David Nadlinger 6885f6a0f0 Phobos test suite workarounds. 2012-10-14 03:57:42 +02:00
David Nadlinger 11619e55a9 Fix miscompilation of some functions returning structs. 2012-10-14 03:41:15 +02:00
David Nadlinger d523be3010 Added explanation for commit 9b80037.
Such uncommented changes to the frontend are potentially a huge
source of confusion during merging new frontend versions
(especially if the piece of code gets changed again before the
next upstream release).
2012-10-13 18:20:56 +02:00
David Nadlinger a9e151ee1f Mitigate a nested unions crash/wrong code bug.
This fixes the std.format unit tests for assertion-enabled
LLVM builds.

What the actual solution for the problem should be depends
entirely on the outcome of the "Nested Unions?" discussion
on dmd-internals.
2012-10-13 18:15:13 +02:00
David Nadlinger 0777102e9d Workaround for --help output being truncated when redirecting to file. 2012-10-07 15:08:24 +02:00
David Nadlinger 9c3bb1ecd3 LDMD: Remove DMD-only options from help output. 2012-10-07 14:58:30 +02:00
David Nadlinger 8118c846af Fixed unlisted contract parameter issue.
Thanks to alexrp for mentioning it.
2012-10-07 14:58:01 +02:00
David Nadlinger 051cd7302e Fixed two issues with nested functions as template alias parameters.
Fixes #131 (GitHub).
2012-10-07 03:06:07 +02:00
David Nadlinger da17b7c6b6 Only invoke mustDefineSymbol() once in DtoLinkage.
This is, of course, a microoptimization, but more importantly
makes stepping through the code easier.
2012-10-07 00:03:10 +02:00
David Nadlinger c9e2fc34d1 Cleanup.
If ad would be null, the code above would have already crashed.
2012-10-06 20:40:14 +02:00
David Nadlinger bb24f9bafe Log messages: Fixed references to "toObjFile()". 2012-10-06 19:32:42 +02:00
David Nadlinger 5fa1a903e8 DtoResolveStruct cleanup.
irField is only set in DtoResolveStruct, so the comment was misleading.
2012-10-06 19:27:55 +02:00
David Nadlinger 7240fd69c3 Travis already fetches submodules by default. 2012-10-06 16:05:53 +02:00
David Nadlinger ad793fd5a3 Run both LLVM 3.0 and 3.1 builds at Travis. 2012-10-06 15:08:50 +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
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
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
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
David Nadlinger 98f9742db5 FuncDeclaration::semantic3 cleanup.
Cosmetical changes only.
2012-09-16 19:22:17 +02:00
David Nadlinger 1bc5dad066 druntime updates – fixes #158. 2012-09-09 23:20:18 +02:00
David Nadlinger bf0d8afc88 Merge branch 'dmd-2.060' into master.
Conflicts:
	dmd2/func.c
	dmd2/mars.c
2012-09-07 04:15:44 +02:00
David Nadlinger 2750541d0a druntime and dmd-testsuite updates. 2012-09-07 03:51:33 +02:00
David Nadlinger 81b462b129 D1 build fix. 2012-09-07 03:51:33 +02:00
David Nadlinger bebc5cce28 Workaround for Voldemort return type handling issues.
See the comment in DtoCallFunction for an explanation of what is
going on.

The struct zero initialization code was also refactored out to
AssignExp::toElem and modified so that it is only triggered
on integer->struct assignments, not for any types where the
modifier-stripped types don't match up. This would have lead to
silently wrong code in the cases where the assert would have been
triggered otherwise.

Fixes the Phobos testsuite build.
2012-09-07 03:51:33 +02:00
David Nadlinger 139e1a9c2a Implement stripModifiers using castMod(0).
Reduces the potentail for bugs in the fragile code; castMod(0) is
used like this in DMD code.
2012-09-07 03:51:33 +02:00
David Nadlinger 57b2eb3dad Fixed crash on nested functions with parameters that have a postblit.
Implementing the recursion in DeclarationExp::apply, which seems more
natural, lead to a "cannot interpret" CTFE error in Phobos.

An upstream bug will be raised about this.
2012-09-07 03:51:33 +02:00
David Nadlinger 88f08cf927 Workaround for LLVM bug 11479.
The LLVM module name doesn't really seem to impact much aynway.
2012-09-07 03:51:33 +02:00
David Nadlinger 05b9b14fa9 Fixed -debuglib in LDMD. 2012-09-07 03:51:33 +02:00
David Nadlinger 6275c66a89 Fixed segfault on invalid naked functions.
Emitting a frontend error during codegen is somewhat problematic in
any case, but stopping if an error ocurred should work just fine here.
2012-09-07 03:51:33 +02:00
David Nadlinger 45d9efb203 Call element postblit on "return array[0]".
Fixes DMD testcase 'sdtor'.
2012-09-07 03:51:33 +02:00
David Nadlinger 1cecab16cf Emit correct TypeInfo argument for _d_arrayassign.
Fixes part of DMD testcase 'sdtor'.
2012-09-07 03:51:33 +02:00
David Nadlinger 207033c427 Removed LDC-only dead code.
Helps avoid broken merges.
2012-09-07 03:51:33 +02:00
David Nadlinger d4eafe53e0 Removed obsolete nested context styles.
NChybrid was the only one that didn't instantly trigger a "not
implemented" assertion on any code using nested function for a long
time, and removing the cruft greatly improves code readability
(maintainability is a moot point anyway given its current state).
2012-09-07 03:51:33 +02:00
David Nadlinger ee4285f934 Properly handle DMD-internal "reference variables".
Previously, we just had a hack to make ref foreach statements work.
This commit enables them to work in other cases as well, like the
implicit __result variable for functions with out-contracts (which
is such a magic ref variable for ref-returning functions).

Fixes DMD testcase 'testcontracts'.
2012-09-07 03:51:33 +02:00
David Nadlinger 6b1b84a28d Pass library file arguments to linker _before_ custom switches.
This allows specifying a static D library specified at the LDC
command line to pick up symbols from druntime/Phobos.

Fixes DMD testcase 'test39'.
2012-09-07 03:51:32 +02:00
David Nadlinger 4b23e794ca Removed linkExecutable() (dead code). 2012-09-07 03:51:32 +02:00
David Nadlinger 1cb982f568 druntime updates. 2012-09-07 03:51:32 +02:00
David Nadlinger 16847dd5d5 Disregard modifiers when checking for initializer type match.
Previously, only const'ness was dropped, but DMD 2.060 started to
emit initializers with incompatible shared modifiers as well.
2012-09-07 03:51:32 +02:00
David Nadlinger 4ae14449ea Emit new TypeInfo layout.
Includes untested support for RTInfo.
2012-09-07 03:51:32 +02:00
David Nadlinger 8ebd2ce5a6 More CRLF->LF line ending conversion. 2012-09-07 03:51:32 +02:00
David Nadlinger c941640d17 Fixed '-debug' and '-version' handling in LDMD.
No idea how the old version once passed the test suite.
2012-09-07 03:51:32 +02:00
David Nadlinger 6fea7358dc Fixed several asm-related error message formats. 2012-09-07 03:51:32 +02:00
David Nadlinger 7a162b6f6d Fixed rvalue delegate property access.
Covered by DMD testcase 'test42'.
2012-09-07 03:51:32 +02:00
David Nadlinger 364cfb6714 Improved initializer ICE error message. 2012-09-07 03:51:32 +02:00
David Nadlinger 508652fd8b Initialization of vector types with single value.
Fixes DMD testcase 'testargtypes'.
2012-09-07 03:51:32 +02:00
David Nadlinger 9ac1582726 Update druntime/Phobos library version. 2012-09-07 03:51:31 +02:00
David Nadlinger 0fe41a1f30 druntime updates. 2012-09-07 03:51:31 +02:00
David Nadlinger 31e732911a Fixed templated interface member call codegen.
Fixes DMD testcase 'test7618'.
2012-09-07 03:51:31 +02:00
David Nadlinger 270979ffd6 Testsuite updates. 2012-09-07 03:51:31 +02:00
David Nadlinger d163799758 Imported D2 testsuite (v2.060) as submodule. 2012-09-07 03:51:31 +02:00
David Nadlinger 1645eff596 Created separate tests directory for D1. 2012-09-07 03:51:31 +02:00
David Nadlinger 837ef30fec Merged DMD 2.060 frontend.
Upstream Git tag v2.060 (e8fe11c20249cb9e42538be88c99b74ede4d12e3).
2012-09-07 03:51:31 +02:00
David Nadlinger e03e027002 Removed all CRLF line endings from DMD source.
Some files in our copy of the DMD 2 source had CRLF line endings.
This was not only inconsistent, but also made merging DMD patches
(where LF is used throughout) unnecessarily painful.
2012-09-07 03:51:31 +02:00
David Nadlinger 56233a373c Merge pull request #151 from jerro/master
Add pragma for emitting LLVM shufflevector instructions.
2012-08-06 12:04:59 -07:00
David Nadlinger 1c1c6894e0 Only link CURL when building Phobos as shared library. 2012-07-24 19:17:24 +02:00
David Nadlinger 61e4d9044a Fix build on Linux.
Sorry for that, seems to work on OS X, even on case-sensitive file systems.
2012-07-24 19:13:31 +02:00
David Nadlinger cb94195439 Merge pull request #144 from dansanduleac/master
Fix missing curl dependency from phobos
2012-07-21 13:05:37 -07:00
David Nadlinger f7e5245e03 Fix #138 – in precondition of methods broken in D1.
Not sure why the code was special-cased for D2 in the first place –
are there any cases where we expect a »full« context struct in the
contracts for D1. At least, they don't occur in DStress/Tango/….

As a general note, this is one of many bugs which would have not gone
unnoticed if we didn't use so many bitcasts.
2012-07-13 11:38:56 +02:00
David Nadlinger 67fd824543 Merged alexrp's initial ARM patches.
The Phobos changes have, as far as I can tell, already landed in
upstream master as well. But since 2.060 will probably take some time
to arrive, I figured it makes sense to merge them right now, so that
collaboration on ARM support can continue.
2012-07-11 23:03:26 +02:00
David Nadlinger 8a27c94ce8 Merge pull request #137 from alexrp/master
Define ARM even in Thumb mode.
2012-07-09 05:25:54 -07:00
David Nadlinger c630ab56ff Fix #136 - return static arrays as sret parameters on non-x86.
This should eventually be done on x86 and x86_64 as well, but as
discussed in GitHub issue #110/pull request #120, the ABI there needs a
closer look: at least on x86_64, we need to treat static arrays exactly
like if they were a struct containing T.length members of the same type
to be compatible with DMD (as soon as the ABI is correctly implemented
there, that is).

While for this reason I want to avoid a ABI change which could silently
break some code only to change the x86 ABI again shortly after, this
commit only touches the "default" ABI for unknown targets and thus
should be safe (as we give absoultely no ABI guarantees there anyway).
2012-07-07 23:53:46 +02:00
David Nadlinger 279f64a08d Merged druntime. 2012-07-07 21:33:00 +02:00
David Nadlinger f6d07ba0b3 Fix #135 – -o- broken with LDMD. 2012-07-06 21:55:19 +02:00