Commit Graph

3287 Commits

Author SHA1 Message Date
David Nadlinger
eb14970fd0 Minor nested context doc comment improval. 2013-06-14 17:10:50 +02:00
David Nadlinger
349305cd1d Fix array op argument evaluation order regression.
Fixes DMD testcase 'arrayop'.
2013-06-14 17:02:58 +02:00
David Nadlinger
9dc387aa91 Do not invoke postblit twice on struct literal creation.
The frontend seems to explicitly insert __cpctor now.

Fixes DMD testcase 'sdtor'.
2013-06-14 16:43:41 +02:00
David Nadlinger
86563a2ee1 Allow casting AAs to bool.
Fixed DMD testcase 'nulltype'.
2013-06-14 16:01:09 +02:00
David Nadlinger
9c0514a9b1 Correctly load context for nested class members with own nested context.
Fixes DMD testcase 'xtest46'.
2013-06-14 15:49:15 +02:00
David Nadlinger
4901877d24 Handle side-effects in TupleExp::e0.
Fixes DMD testcase 'aliasthis'.
2013-06-14 15:03:24 +02:00
David Nadlinger
83415eeeb8 Minor debug log fixes. 2013-06-14 15:03:24 +02:00
David Nadlinger
cbe2c45b83 Fold in rudimentary rt.sections implementation. 2013-06-14 15:03:24 +02:00
David Nadlinger
c64c4f479a Handle static array typed SliceExps.
Fixes DMD testcase 'testbounds2'.
2013-06-13 18:45:07 +02:00
David Nadlinger
48f784eda8 Fold in out-of-source test build adaption changes. 2013-06-13 00:17:39 +02:00
David Nadlinger
95b34c3625 zext bool to i8 in makeLValue. 2013-06-12 20:39:34 +02:00
David Nadlinger
bc910004a4 Adapt codegen to removal of old _d_invariant from druntime.
We should think about using symbolic constants for runtime function
names though, this is not maintainable in the long run.
2013-06-12 20:34:50 +02:00
David Nadlinger
4c788699ae Initial, incomplete ClassReferenceExp::toConstElem implementation.
Allows us to get through a Phobos build without errors.
2013-06-12 20:23:27 +02:00
David Nadlinger
b1465ae7e3 Extended DtoLinkage comments. 2013-06-12 20:16:37 +02:00
David Nadlinger
d3f89f81a8 Never emit naked functions as available_externally. 2013-06-12 20:16:37 +02:00
David Nadlinger
d7526157ab Expression::optimize everything to resolve manifest constants in inline asm. 2013-06-12 20:16:37 +02:00
David Nadlinger
2ebf677661 Handle explicit AddrExp for naked asm memory references. 2013-06-12 20:16:37 +02:00
David Nadlinger
a9e620d428 Work around invalid special ref var initializations in 2.063. 2013-06-12 20:16:37 +02:00
David Nadlinger
fd3c696d94 Call Expression::init() during startup.
Was added in 2.063.
2013-06-12 20:16:37 +02:00
David Nadlinger
33245282ef More trivial DMD diff reduction. 2013-06-12 20:16:37 +02:00
David Nadlinger
24e3abff34 Unions are always static since Issue 9244. 2013-06-12 20:16:37 +02:00
David Nadlinger
6898d0fa4a Removed last bit of interpret.c diff. 2013-06-12 20:16:37 +02:00
David Nadlinger
ab7ffa9988 Removed obsolete importprot members. 2013-06-12 20:16:37 +02:00
David Nadlinger
4d3f9333c6 Never make functions without body available_externally. 2013-06-12 20:16:37 +02:00
David Nadlinger
292caa1438 Merge the 2.063 frontend. 2013-06-12 20:16:37 +02:00
David Nadlinger
981a6af17e Remove dead declaration. 2013-06-12 20:16:05 +02:00
David Nadlinger
5b5ad8e0f7 Add some no-op virtual destructors to silence GCC warning. 2013-06-12 20:16:05 +02:00
David Nadlinger
9a016a1002 Refactor struct initializers codegen.
This not only reduces code duplication, but the unification
also enables code a la StructLiteralExp to handle classes
(for CTFE class constant support in 2.063).
2013-06-12 20:16:05 +02:00
David Nadlinger
2cebe6408c Divided ir/irtypestruct.* in general aggregate and struct specific part.
This is just to improve clarity, as it was rather non-obvious
what of the code also applied to classes before.

IrTypeAggr::createInitializerConstant would currently belong in
IrTypeStruct, but this will be refactored anyway.
2013-06-12 17:17:09 +02:00
David Nadlinger
abc6c147dc Fix potential latent struct initialization bug.
Apparently the initializer array never was actually
unsorted so far.
2013-06-12 17:16:52 +02:00
David Nadlinger
5dadec2e70 Remove raw address from log output.
Makes comparing logs harder.
2013-06-12 17:16:46 +02:00
David Nadlinger
55d7fc708e Remove leftover declaration. 2013-06-12 17:16:39 +02:00
David Nadlinger
f2f3c751b3 Renamed IrStruct to IrAggr, as it is also used for classes.
The class-specific parts should probably be factored out.
2013-06-12 17:16:35 +02:00
David Nadlinger
28f39cbdad Remove superfluous Expression::toConstElem overrides.
The error message can be printed by the non-overridden
Expression::toConstElem just as well.
2013-06-12 17:16:31 +02:00
David Nadlinger
e0d78ef0e3 Make irtype.h compile without needing other includes first. 2013-06-12 17:15:55 +02:00
David Nadlinger
39637c844f Merge pull request #395 from klickverbot/remove-disableoptimization
Remove CastExp::disableOptimization.
2013-06-11 11:34:35 -07:00
David Nadlinger
9ad88ef713 Remove CastExp::disableOptimization. 2013-06-11 18:14:13 +02:00
David Nadlinger
354e2713e6 Merge pull request #391 from klickverbot/symoffexp
Re-enable SymOffExp.
2013-06-10 16:35:04 -07:00
David Nadlinger
978c2c1b6a Re-enable SymOffExp and remove associated LLVM-only modifications. 2013-06-11 00:40:48 +02:00
David Nadlinger
b389a3b791 Add virtual destructor to EnclosingHandler to silence warnings. 2013-06-11 00:13:48 +02:00
David Nadlinger
f5e276d6a6 Revert meaning of AddExp/MinExp for pointers to DMD default.
It might be worth considering to move the stride multiplication
down to the glue layer in the upstream sources. But assigning a
different meaning to AST nodes was a giant maintenance
liability, especially with regard to CTFE.
2013-06-10 22:49:01 +02:00
David Nadlinger
049f784e5f Remove extra semicolons after macro invocation.
Silences some Clang warnings.
2013-06-10 19:54:19 +02:00
David Nadlinger
bf0e03df98 Also avoid i1 in TupleExp::toElem. 2013-06-10 19:49:52 +02:00
David Nadlinger
f7aac5201b Remove unused extra argument to overload checking functions. 2013-06-07 21:23:19 +02:00
David Nadlinger
4971321caf Revert "Add debug info for enums."
This reverts commit 001a39642f, as
it leads to debug mode crashes in rt.lifetime and other modules.

Specifically, the type check assertion in IntegerExp::toInteger
(at expression.c:2017) is hit.
2013-06-07 21:20:14 +02:00
David Nadlinger
bf4d679e1a More trivial upstream alignment. 2013-06-07 19:44:04 +02:00
David Nadlinger
dcfc61cf3f Merge pull request #386 from klickverbot/store-bool-as-i8
Store bool as i8.
2013-06-07 10:32:50 -07:00
kai
001a39642f Add debug info for enums.
Previously enums were reduced to the underlying type.
Now the symbolic constants can be used.
2013-06-07 16:37:57 +02:00
David Nadlinger
848dee32d4 Store bools as i8.
I really hope we can refactor this to use a less leaky
abstraction later – it should at least be possible to merge
voidToI8 and i1ToI8.
2013-06-07 03:20:54 +02:00
David Nadlinger
7e92984ebe Downgraded accepts-invalid workaround error to assertion.
Bug 9268 was fixed in 2.062.
2013-06-07 03:20:39 +02:00