Commit Graph

104 Commits

Author SHA1 Message Date
Robert Clipsham
65c892ee62 Merge SiegeLord's dmdfe 1.064 patch. 2011-01-01 21:23:08 +00:00
Moritz Warning
00faa6a906 fixes #421 & #357 :: linkage was not copied; big thanks to SiegeLord 2010-12-19 17:57:39 +01:00
Moritz Warning
f654235139 fixes #432 :: apply DMDFE 1.063; thanks SiegeLord 2010-09-27 00:07:03 +02:00
Moritz Warning
c4e255206a fixes #431 :: apply DMDFE 1.062; thanks SiegeLord 2010-09-27 00:06:28 +02:00
Moritz Warning
ba275942cf fixes #427 :: Upgrade to DMDFE 1.059+1.060 patch; thanks to SiegeLord 2010-09-05 19:12:55 +02:00
Moritz Warning
ac5180b65b fixes #426 :: detab'ing the DMDFE source; kudos SiegeLord 2010-09-05 19:04:26 +02:00
Moritz Warning
fbba26f9bb fixes #425 :: Upgrade to DMDFE 1.058 patch; big thanks to SiegeLord 2010-09-04 12:42:38 +02:00
Christian Kamm
1d488da835 Merge DMD 1.057. 2010-03-08 21:39:20 +01:00
Robert Clipsham
daa102a5cd Merge dmd 1.056. 2010-02-06 15:53:52 +00:00
Leandro Lucarella
003f306cba Merge DMD r321: bugzilla 3575 CTFE: member structs not initialized correctly
---
 dmd/expression.c |    4 +---
 dmd/interpret.c  |   32 +++++++++-----------------------
 dmd/mtype.c      |   48 +++++++++++++++++++++++++++++++++++++++++++-----
 dmd/mtype.h      |    2 ++
 4 files changed, 55 insertions(+), 31 deletions(-)
2010-01-06 15:18:23 -03:00
Leandro Lucarella
e7323517b0 Merge DMD r320: refactor
---
 dmd/expression.c |    7 +++----
 dmd/expression.h |    2 +-
 dmd/mtype.c      |   34 ++++++++--------------------------
 3 files changed, 12 insertions(+), 31 deletions(-)
2010-01-06 15:18:23 -03:00
Leandro Lucarella
edb33b00ee Merge DMD r317: bugzilla 3611 Enum forward referencing regression
---
 dmd/enum.c  |   17 +++++++++++++++--
 dmd/mtype.c |    4 ++++
 2 files changed, 19 insertions(+), 2 deletions(-)
2010-01-06 15:18:22 -03:00
Leandro Lucarella
b9896b9034 Merge DMD r314+r315: bugzilla 2029 Typesafe variadic functions don't...
Both DMD revisions are for fixing bugzilla 2029 (Typesafe variadic
functions don't work in CTFE).

The DMD r314 commit message is:
bugzilla 2029 (Typesafe variadic functions don't work in CTFE

The DMD r315 commit message is:
bugzilla 2029 - try again
---
 dmd/constfold.c   |   11 ++++-
 dmd/declaration.c |   21 +++++++++-
 dmd/declaration.h |   10 ++++-
 dmd/expression.c  |    1 +
 dmd/interpret.c   |  111 +++++++++++++++++++++++++++++++++++++++++++++--------
 dmd/mars.h        |    2 +-
 dmd/mtype.c       |    2 +-
 7 files changed, 135 insertions(+), 23 deletions(-)
2010-01-06 15:18:22 -03:00
Leandro Lucarella
4d74a325fc Merge DMD r304: refactor invariant => immutable
---
 dmd/cast.c        |    2 +-
 dmd/declaration.c |    2 +-
 dmd/declaration.h |    3 +--
 dmd/doc.c         |    2 +-
 dmd/expression.c  |    6 +++---
 dmd/interpret.c   |    4 ++--
 dmd/mtype.c       |    2 +-
 dmd/mtype.h       |    2 +-
 dmd/parse.c       |    4 ++--
 dmd/struct.c      |    2 +-
 10 files changed, 14 insertions(+), 15 deletions(-)
2010-01-06 15:18:22 -03:00
Leandro Lucarella
072ac6c4e3 Merge DMD r301: a little refactor and harmonize
---
 dmd/declaration.h |    1 +
 dmd/func.c        |   30 ++++++++++++++++++++++++++++++
 dmd/mtype.c       |   51 +++++++++++++++++++++++++++++++++++++--------------
 3 files changed, 68 insertions(+), 14 deletions(-)
2010-01-06 15:18:21 -03:00
Leandro Lucarella
ddb0f3f209 Merge DMD r278: bugzilla 370 Compiler stack overflow on recursive...
bugzilla 370 Compiler stack overflow on recursive typeof in function
declaration.
---
 dmd/expression.c |    1 +
 dmd/mtype.c      |    7 +++++--
 2 files changed, 6 insertions(+), 2 deletions(-)
2010-01-06 15:18:21 -03:00
Leandro Lucarella
357dc9c1a9 Merge DMD r253: refactor: Argument => Parameter
---
 dmd/arrayop.c     |   30 ++++----
 dmd/arraytypes.h  |    2 +-
 dmd/class.c       |    8 +-
 dmd/declaration.c |   10 ++--
 dmd/declaration.h |   16 ++--
 dmd/doc.c         |   12 ++--
 dmd/dsymbol.c     |    4 +-
 dmd/expression.c  |   48 +++++++-------
 dmd/expression.h  |   32 +++++-----
 dmd/func.c        |   78 +++++++++++-----------
 dmd/init.c        |    2 +-
 dmd/interpret.c   |    8 +-
 dmd/mtype.c       |  190 ++++++++++++++++++++++++++--------------------------
 dmd/mtype.h       |   32 +++++-----
 dmd/opover.c      |   34 +++++-----
 dmd/parse.c       |   40 ++++++------
 dmd/parse.h       |    2 +-
 dmd/statement.c   |   90 +++++++++++++-------------
 dmd/statement.h   |   14 ++--
 dmd/struct.c      |    8 +-
 dmd/template.c    |   30 ++++----
 gen/functions.cpp |   10 ++--
 gen/functions.h   |    2 +-
 gen/tocall.cpp    |   10 ++--
 gen/typinf.cpp    |    6 +-
 25 files changed, 359 insertions(+), 359 deletions(-)
2010-01-06 15:18:20 -03:00
Christian Kamm
3479e91996 Merge DMD 1.051 2009-11-06 23:58:01 +01:00
Christian Kamm
72d1f1e6dd Make the auto storage class never have the same meaning as scope.
This changes the meaning of
auto class MyClass {} and
auto MyClass ident;
Both have been made an error to prevent accidents.
2009-07-12 16:15:21 +02:00
Christian Kamm
723cfef519 Another shot at fixing the issues with (constant) struct literals and their addresses. See DMD2682, #218, #324.
The idea is to separate the notion of const from 'this variable can always be
replaced with its initializer' in the frontend. To do that, I introduced
Declaration::isSameAsInitializer, which is overridden in VarDeclaration to
return false for constants that have a struct literal initializer.

So
{{{
const S s = S(5);
void foo() { auto ps = &s; }
// is no longer replaced by
void foo() { auto ps = &(S(5)); }
}}}

To make taking the address of a struct constant with a struct-initializer
outside of function scope possible, I made sure that AddrExp::optimize doesn't
try to run the argument's optimization with WANTinterpret - that'd again
replace the constant with a struct literal temporary.
2009-06-14 19:49:58 +02:00
Frits van Bommel
81cf30688a Patch to allow compiling LDC with MinGW, by mp4 / [1]jaffa (slightly edited).
Closes #300.
2009-05-18 14:02:50 +02:00
Tomas Lindquist Olsen
e8780d50e8 Merged DMD 1.045 !!! 2009-05-16 22:21:31 +02:00
Christian Kamm
9812a8c8ae Commit workaround for TypeFunction comparing issue. 2009-04-30 23:16:21 +02:00
Kelly Wilson
d21cdb1df0 Changes for mingw to compile properly 2009-04-22 14:49:49 -06:00
Tomas Lindquist Olsen
1c79df3817 Fixed all issues preventing Tango 0.99.8 to compile with `sh build-tango.sh --verbose ldc'. 2009-04-17 14:38:29 +02:00
Tomas Lindquist Olsen
37cf5a5789 Added Doxygen file.
Completely seperated type and symbol generation. Should fix a lot of bugs, but is not yet 100% complete.
2009-04-15 20:06:25 +02:00
Tomas Lindquist Olsen
3d1f8cc565 Merged DMD 1.042. 2009-04-03 17:59:34 +02:00
Tomas Lindquist Olsen
9c4b2b4036 Started seperating type resolution from the rest of codegen again, the merge had too many regressions. 2009-04-03 16:34:11 +02:00
Christian Kamm
8d01068c9b Apply small includes patch for FreeBSD. Thanks kimelto! 2009-04-02 19:16:44 +02:00
Tomas Lindquist Olsen
daef67acc3 Changed use of toObjFile to a new codegen method.
More versioning of DMD specific codegen code.
2009-03-27 17:54:27 +01:00
Tomas Lindquist Olsen
c42c90ea80 * Moved ir/irsymbol.cpp/h into ir/irdsymbol.cpp/h.
* Added #if IN_DMD versioning around DMD backend specific code in the D1 frontend, D2 is currently broken.
* All part of a greater cleanup scheme.
2009-03-26 20:45:53 +01:00
Tomas Lindquist Olsen
3ac45285fc Cleanup DMD 1.041 merge. 2009-03-23 20:26:33 +01:00
Frits van Bommel
434cb74980 Fix a bug where ::warning() was called with a va_list argument instead of an
actual vararg list.
Also cleaned up the format for warnings. (Previously some would start with
"warning - warning - Warning:" which was a bit redundant)
2009-03-18 15:03:17 +01:00
Tomas Lindquist Olsen
8b751cce0e - Updated to DMD frontend 1.041.
- Removed dmd/inifile.c , it's not under a free license, replaced with libconfig based config file.
2009-03-12 20:37:27 +01:00
Christian Kamm
ed9591d81f Make IrFuncTy a member of TypeFunction. Reset between modules compiled in the
same LDC call.
2009-03-07 14:25:30 +01:00
Tomas Lindquist Olsen
c3a53c0128 Added hasUnalignedFields helper to check if a type has unaligned fields - as per request from fvbommel. Result is cached in TypeStruct. 2009-03-03 15:08:26 +01:00
Tomas Lindquist Olsen
5dbe3ee8e2 Abstracted more (most) ABI details out of the normal codegen. 2009-03-03 02:51:21 +01:00
Tomas Lindquist Olsen
c3504e59f3 Fixed alignsize for void types. (it's one byte) 2009-03-01 01:33:08 +01:00
Frits van Bommel
d4fdbf59a1 Use LLVM alignment data instead of hand-picked. 2009-02-28 16:09:44 +01:00
Frits van Bommel
99ed181690 Preparation for next patch. Don't ask about why this is needed.
I hate the preprocessor. Let's just leave it at that.
2009-02-28 16:09:35 +01:00
Christian Kamm
d3ea6fb855 Fix alignment info of cdouble, cfloat. They align the same as double, float now. 2009-02-28 13:48:49 +01:00
Christian Kamm
b3de4e773e Fix #217. getInternalTypeInfo doesn't work with LDC. 2009-02-17 18:57:11 +01:00
Christian Kamm
c3cdcab8d2 Convert struct arg to integer when passing inreg to make sure LLVM doesn't
ignore the attribute!
2009-02-04 18:39:33 +01:00
Christian Kamm
bbcea86cf2 Follow the D ABI and pass the last arg in a register if it is a struct that fits. 2009-02-03 21:46:46 +01:00
Christian Kamm
01f19c466c Fix #198 and #199 by making CTFE on static struct initializers work.
Renamed SymbolDeclaration to StaticStructInitDeclaration to make its usage clearer.
2009-02-01 20:20:56 +01:00
Christian Kamm
ab9b9cc2e9 Solaris compatibility and proc map parsing #183, thanks BlueZeniX! 2009-01-22 18:53:32 +01:00
Tomas Lindquist Olsen
6f3aff87df Fixed 64bit problem in mtype.c with _adReverse runtime call, fixes #161 . 2009-01-10 14:35:48 +01:00
Tomas Lindquist Olsen
16409a3367 Merged DMD 1.038 2009-01-06 16:33:51 +01:00
Christian Kamm
e7f750aee1 Apply BlueZeniX's patch for OpenSolaris compatibility. Fixes #158. 2009-01-04 15:49:28 +01:00
Tomas Lindquist Olsen
6716aecc52 Merged DMD 1.037 frontend 2008-12-13 13:15:31 +01:00