Commit graph

446 commits

Author SHA1 Message Date
Alexey Prokhin
553d5518b3 Implemented casting of a global variable to a pointer in an initializer. Implemented adding to a pointer in an initializer 2011-01-08 13:01:54 +03:00
Alexey Prokhin
cbd0296328 Implemented CommaExp::cacheLvalue(). Fixed CallExp::chackLvalue(). 2011-01-06 19:41:54 +03:00
Alexey Prokhin
c5e9784863 Updated to dmdfe 2.051 2011-01-05 18:21:40 +03:00
Alexey Prokhin
1c59eed83a Check for lower slice bound when bounds checking is enabled 2011-01-03 16:50:08 +03:00
Alexey Prokhin
fd52810f1a Fixed initialization of static arrays 2011-01-03 16:50:08 +03:00
Alexey Prokhin
47239d9058 Work on support for variadic arguments. Updated headers in druntime/import. 2011-01-02 19:14:52 +03:00
Alexey Prokhin
4b34601a79 Make sure that a l-value of a binassign expressions is only evaluated once. 2011-01-02 17:38:40 +03:00
Alexey Prokhin
023b55a772 Run postblit constructors for elements of an array. 2010-12-30 14:04:24 +03:00
Alexey Prokhin
fbbb832187 Added suppport for custom allocators for structs. 2010-12-19 13:02:09 +03:00
Alexey Prokhin
e7c880cd08 Store the right context frame in nested structs and classes. 2010-12-19 12:13:00 +03:00
Alexey Prokhin
7e6807b0df Fixed calling of _d_delmemory() and _d_delinterface() 2010-12-17 12:55:28 +03:00
Alexey Prokhin
349a6c1c3f Fixed calling of final methods of interfaces 2010-12-17 12:55:28 +03:00
Alexey Prokhin
bb644d5c91 Fix for delegates.
The following code works correctly now:
auto dg = &super.virtualFunc();
2010-12-15 21:47:22 +03:00
Alexey Prokhin
c47bfbcc32 Implemented mod operator for complex numbers 2010-12-15 20:30:38 +03:00
Alexey Prokhin
6d22dd7999 Updated to 2.050 2010-11-08 16:55:35 +03:00
Alexey Prokhin
59d1ec5e0b Another fix for nested context in structs. 2010-11-05 11:55:23 +03:00
Alexey Prokhin
20b2b4b7f5 Added missing calls of postBlit 2010-11-04 12:50:19 +03:00
Alexey Prokhin
d7047f639e Rehash associative array right after its creating (DMD seems to be doing the same) 2010-11-03 19:46:19 +03:00
Alexey Prokhin
3943b2866b Fixed nested context for delegates initialized in structs and classes 2010-11-02 13:22:19 +03:00
Alexey Prokhin
2fe8635e5a Struct constructors are supported now 2010-11-02 13:22:10 +03:00
Alexey Prokhin
360a99caa9 Resolving nested context for structs.
* * *
Another fix for nested structs
* * *
Yet another fix for nested structs
2010-11-02 13:21:36 +03:00
Alexey Prokhin
e3afcf8a8d Workaround for a bug in llvm 2.8 which appears only when all optimizations are off 2010-11-02 13:20:21 +03:00
Alexey Prokhin
24c92d3a7c CallExp::cacheLvalue is back 2010-10-30 20:51:31 +04:00
Eldar Insafutdinov
f95fa16f58 fix compile errors 2010-10-29 22:58:11 +01:00
Alexey Prokhin
e4c3179d43 Different fixes: phobos compiles now 2010-10-28 14:53:01 +04:00
Alexey Prokhin
b1e5993873 Started work on phobos 2010-10-27 18:13:46 +04:00
Alexey Prokhin
4d7a6eda23 Different fixes for d2 2010-10-07 22:35:32 +04:00
Moritz Warning
c151d37365 fixes #434 :: add llvm 2.8 support 2010-10-23 13:38:26 +02:00
Kelly Wilson
b38845e88e Apply patch from klickverbot. This is his 'proper fix' patch for bug #395. 2010-03-08 23:37:40 -07:00
Christian Kamm
9cd32549c4 Improve array append performance.
Actually use the appropriate runtime function, instead of just
growing the array by one!
2010-02-14 10:11:05 +01:00
Robert Clipsham
98e869c7ec Fixed DStress tests nocompile/c/{const_32_B.d,const_32_C.d}.
Updated the runtest script to build libtangobos-partial.a if it hasn't already been built.
Added in signbit() and va_arg!()() to libtangobos-partial.a so more of the phobos dependent DStress tests pass.
2009-11-08 16:16:17 +00:00
Moritz Warning
b7c0c9e25e allow forward referencing, fix #361 2009-09-09 20:13:17 +02:00
Benjamin Kramer
d24643bb50 Avoid some unecessary heap allocations by using llvm's StringRef class. 2009-08-14 01:43:30 +02:00
Benjamin Kramer
c220dcac05 IntegerType is now contextifed.
Requires llvm >= 78969. resistor says this will be the last context API change :)
2009-08-14 00:39:18 +02:00
Benjamin Kramer
977fa551ee Push the context through StructType::get.
Requires LLVM >= 78258. Also remove old #if's.
2009-08-06 01:47:39 +02:00
Tomas Lindquist Olsen
84f820b442 Added framework for writing a static printf call checker for bearophile to implement. 2009-08-06 16:52:43 +02:00
Benjamin Kramer
4c5457ba61 getNullValue is in Constant again
Requires LLVM >= r77721
2009-07-31 23:01:29 +02:00
Benjamin Kramer
0a1d467ac7 getTrue/getFalse were moved back to ConstantInt
Requires LLVM >= r77685
2009-07-31 19:11:07 +02:00
Benjamin Kramer
652a4b39c0 ConstantAggregateZero moved back to LLVM 2.5-style API
Requires LLVM >= 77635
2009-07-31 01:16:30 +02:00
Benjamin Kramer
66101517d7 LLVMContext changes up to r77366 2009-07-30 15:25:10 +02:00
Benjamin Kramer
a398cd39b3 ConstantInt::get{True,False} moved to LLVMContext
Non-breaking build fix for LLVM r76533. Also fixes a context related
bug in GarbageCollect2Stack.
2009-07-21 13:11:39 +02:00
Benjamin Kramer
d7049de966 More factory methods moved to LLVMContext 2009-07-15 18:09:41 +02:00
Benjamin Kramer
0ee2f34611 Don't use llvm::getGlobalContext() anymore 2009-07-13 20:16:15 +02:00
Benjamin Kramer
331319dab1 Build fix for the latest LLVMContext changes (LLVM r75445)
This shouldn't break the build with older LLVM revs. We include
LLVMContext.h in gen/llvm.h now to make the transition a little bit
easier.
2009-07-13 12:17:58 +02:00
Christian Kamm
756a2cb2a1 Adjust LDC to work with the LLVMContext LLVM changes.
This means we now require a fairly new LLVM revision. I use 75234.
2009-07-10 21:30:02 +02:00
Christian Kamm
5658d9bb38 Emit file and line info for 'Array operation ... not recognized' error.
Fixes #326.
2009-06-22 19:31:25 +02:00
Christian Kamm
265cbea170 Make == for associative arrays test for equality, not identity.
_aaEq was added to runtime/internal/aaA.d which forwards to
TypeInfo_AssociativeArray.equals in genobj.d. On the codegen side, DtoAAEquals
was added to gen/aa.cpp and is called from EqualExp::toElem in gen/toir.cpp.

I assume that the frontend will produce an error if == is used on associative
arrays of different type.

This fixes DMD bug 1429.
2009-06-21 19:05:24 +02:00
Frits van Bommel
62dee01d35 Implement equality comparison for associative arrays. The semantics aren't in
the spec, but DMD does a simple pointer comparison. Complaints about this go to
http://d.puremagic.com/issues/show_bug.cgi?id=1429 :P.
2009-06-21 00:12:29 +02:00
Christian Kamm
7dbe9baa37 Made is and !is use the same numeric comparison as == and !=, fixes #328
Factored out common code from EqualExp and IdentityExp into
DtoBinNumericEquals in binexp.cpp.
2009-06-16 23:00:27 +02:00
Christian Kamm
e54d75354c Cannot take the address of a slice or struct literal as a constant expression. 2009-06-14 12:27:51 +02:00