Commit Graph
141 Commits
Author SHA1 Message Date
Christian Kamm 72a2db6d7c Get rid of isLinux and isWindows in favor of global.params.os. 2008-08-24 16:22:58 +02:00
Christian Kamm ef80c904dc Make class invariants work. 2008-08-21 15:19:45 +02:00
Tomas Lindquist Olsen 5bf3e8911a Added support for overloaded intrinsics.
Added atomic intrinsics in the intrinsics.di header.
2008-08-20 01:02:22 +02:00
Tomas Lindquist Olsen 5aae7a6bee Merged DMD 1.034, array operations are not yet implemented ;) 2008-08-14 06:55:41 +02:00
Tomas Lindquist Olsen c092165b3a Fixed mini/missingti.d 2008-08-14 03:09:26 +02:00
Christian Kamm c31d07e23f Reverted bad change [506]. Added test case for remaining bug. 2008-08-13 23:54:09 +02:00
Christian Kamm 575ae2ea33 Provided overload to TypeClass::builtinTypeInfo to return true.
Shouldn't almost all types have a builtin typeinfo? Maybe it'd be better to
have the default at true and only overload typedef and friends.
2008-08-13 22:14:43 +02:00
Christian Kamm d81aeb0d28 Make the alignment computations of the frontend match the llvm default alignment.
Breaks run/double_03 because it assumes double.alignof >= 8, which does not
seem to be the case for llvm.
2008-08-10 13:42:08 +02:00
Tomas Lindquist Olsen 9d7f16b967 Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
Reimplemented support for nested functions/class using a new approach.
Added error on taking address of intrinsic.
Fixed problems with the ->syntaxCopy of TypeFunction delegate exp.
Removed DtoDType and replaced all uses with ->toBasetype() instead.
Removed unused inplace stuff.
Fixed a bunch of issues in the runtime unittests, not complete yet.
Added mini tests.
2008-08-10 08:37:38 +02:00
Christian Kamm 6e78763b3f Get rid of predefined Unix version 2008-08-07 18:59:23 +02:00
Tomas Lindquist Olsen 9500e89eeb Added 'Unix' predefined version identifier. 2008-08-04 19:08:39 +02:00
Tomas Lindquist Olsen 691a922850 Changed DMD to make a copy of the TypeFunction in DelegateExp. 2008-08-04 17:32:13 +02:00
Tomas Lindquist Olsen daad516579 Removed the 'needsstorage' thing from Dsymbol. Arguments are not always given storage when applicable. This is not longer treat specially
in this regard. Code for accessing nested variables and contexts rewritten. Probably more. Fairly well tested.
2008-08-04 02:59:34 +02:00
Christian Kamm d87a3cd4ee Path combining on Windows didn't work with / properly. 2008-08-03 12:27:11 +02:00
Christian Kamm ad8e9ae852 Implement a rough AddrExp::toConstElem() 2008-08-02 22:54:36 +02:00
Tomas Lindquist Olsen 9b45fc5533 Changed the handling of variadic intrinsics a bit.
Removed the -fp80 option and made real be 80bit floats on X86, this is what the D spec really says it should be and fixes a bunch of issues.
Changed the handling of parameter attributes to a bit more generalized approach.
Added sext/zext attributes for byte/short/ubyte/ushort parameters, fixes #60 .
Parameter attribs now properly set for intrinsic calls if necessary.
Made the tango.math.Math patch less intrusive.
Fixed/added some mini tests.
2008-08-01 17:59:58 +02:00
Tomas Lindquist Olsen 07cfb67178 Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Reworked the LLVMDC specific pragmas.
2008-08-01 00:32:06 +02:00
Christian Kamm 7882f4858e Enable array bounds check and emit them in IndexExp. 2008-07-30 18:38:56 +02:00
elrood dbe905604b fixed configuration file loading issues on windows 2008-07-29 21:52:25 +02:00
Christian Kamm f439de46ab Another fix to DMD's path code. 2008-07-29 18:00:01 +02:00
Christian Kamm fe76eeee4e Missed a line in the dmdfe path code. 2008-07-29 17:45:28 +02:00
Christian Kamm 62e1d77cc1 Allow / as a path separator on Windows. 2008-07-29 17:35:33 +02:00
Christian Kamm dd49c2ca00 Give errors originating from Dsymbol::error the proper 'Error:' heading. 2008-07-29 13:48:46 +02:00
Christian Kamm d9f85de2a1 Fix real comparison for real: allow +0 to be distinguished from -0. 2008-07-28 21:37:47 +02:00
Christian Kamm cf4565095c Use == in RealEquals and get rid of the memcmp there entirely. 2008-07-28 20:50:41 +02:00
Tomas Lindquist Olsen 8c98499193 Fixed issue with internal real representation, incorrect for non x86-32 architectures.
Cleaned up CallExp::toElem, moved implementation to tocall.cpp providing a single procedure to call arbitrary D functions fairly easily.
2008-07-28 02:11:34 +02:00
Christian Kamm 8485be7238 Make RealEquals only compare the data bytes.
Fixes run/t/template_class_13_* regressions introduced in [r401].
2008-07-27 18:52:40 +02:00
Christian Kamm 2592d1caa6 Switch TypePointer::isunsigned from false to true, so CmpExp::toElem chooses the right operand for pointer comparisons.
Fixes run/t/typeinfo_03_A,B,C,D.
2008-07-27 17:10:47 +02:00
Christian Kamm 67d242272b Add back generated impcnvtab.c to make premake work the first time. 2008-07-27 16:27:44 +02:00
Christian Kamm befaf511e6 Fix compile-time comparison of template value parameters of real type. 2008-07-27 13:29:31 +02:00
Christian Kamm e6dd53b61c Made setup for runtime calls in dmd frontend allocate less. 2008-07-24 18:51:36 +02:00
Christian Kamm 169fe68a25 Fix argument types for wchar/char reverse and sort. 2008-07-24 18:20:40 +02:00
Christian Kamm b1e8162b7b Mixed up argument types for aApply and aaApply. 2008-07-23 17:55:20 +02:00
Christian Kamm 8f20b1ed00 Introducing opaque type to dmd frontent to be used with certain runtime array
and aa args and returns. There are still some bugs with aas.
2008-07-22 23:06:46 +02:00
Christian Kamm 566eac93fe Get rid of runTimeHack and instead add proper argument info to the frontend
declatation.
2008-07-22 19:24:40 +02:00
Christian Kamm e12c58abad Do not strip the leading underscore for typeinfo mangles on Windows. 2008-07-21 20:11:42 +02:00
Christian Kamm a6d6fd2365 Fix nativeobj extension for Windows. 2008-07-21 20:11:15 +02:00
Tomas Lindquist Olsen efd3f0dddf [svn r387] Removed unused MD5 stuff.
Fixed incorrect __VENDOR__ variable and printed DMD frontend version.
2008-07-15 02:01:53 +02:00
Christian Kamm bcc4cfdea4 [svn r377] The previous check was too strict, it completely disallowed gotos within finally blocks. This reenables them as long as they don't cross a finally boundary. 2008-07-14 12:00:24 +02:00
Christian Kamm 7e7ac3a6f7 [svn r374] Move label target basic block from AST to IRFunction. This is a first step to allowing labels to be emitted multiple times. (for instance within finally blocks) 2008-07-14 11:07:15 +02:00
Tomas Lindquist Olsen b8bde8c0b8 [svn r358] Forgot to add new files from DMD 1.033 2008-07-12 19:40:14 +02:00
Tomas Lindquist Olsen 832504e5d7 [svn r357] Merged DMD 1.033 2008-07-12 19:38:31 +02:00
Christian Kamm f0d8b9e153 [svn r354] Fix the regressions between [346] and [353] by making constructors and destructors outside classes fatal errors.
Fix tests makefile and add minimize to gc.d.
2008-07-12 09:23:14 +02:00
Christian Kamm 485b638272 [svn r352] Implement SwitchErrorStatement. Fixes #52. 2008-07-11 21:06:39 +02:00
Tomas Lindquist Olsen 521de1a47e [svn r349] Fixed problems with static arrays of void as well as a static arrays with zero length.
Fixed issues with DMD generated assert statements when using class invariants, generally due to incomplete ASTs.
Removed some dead code.
Added a few comments.
2008-07-11 00:17:00 +02:00
Christian Kamm bace4dd0e7 [svn r348] Switch on class invariants (except in release mode).
Generate correct member for classInvariant in classinfo struct.
2008-07-10 22:00:27 +02:00
Tomas Lindquist Olsen 2dfb2fcf19 [svn r344] Fixed some very minor issues with the usage listing when calling llvmdc with no arguments.
Changed the way moduleinfo is registered to use the same approach as DMD, this eliminates the need for correct linking order and should make the way for using a natively compiled runtime library. This should speed up linking tremendously and should now be possible.
Fixed the llvm.used array to only be emitted if really necessary.
2008-07-09 23:43:51 +02:00
Christian Kamm d16ddb524f [svn r342] Fix DMD bug 2206.
Implement mixin declarations in LLVMDC.
2008-07-09 17:01:08 +02:00
Tomas Lindquist Olsen ad65788592 [svn r331] Fixed, forgot to default initialize the SynchronizedStatement enclosinghandler. 2008-06-28 11:50:28 +02:00
Tomas Lindquist Olsen 0d160ffc76 [svn r330] Implemented synchronized statements.
Changed the tryfinally handlers to a more generalized EnclosingHandler.
Changed ClassInfoS to be mutable so they can be used as locks.
Added new BB after throw ala return/break etc.
2008-06-28 11:37:53 +02:00