Mercurial > projects > ldc
annotate tests/mini/b.d @ 1605:1d5721f9ae18
[WIP] Merge DMD r251: bugzilla 111 (appending a dchar to a char[])
This patch needs some work in the code generation, because of the runtime
changes (functions "_d_arrayappendcd" and "_d_arrayappendwd" are added).
This doesn't affect existing code though, it just makes with patch
a little useless, because something like this:
char [] s;
s ~= '\u6211';
That failed to compile with a nice error message previously to this
change, now fails with and ugly error message (a failed assertion).
Apparently there is a regression introduced by this patch too, when
compiling Dil I get this assertion message:
ldc: /home/luca/tesis/ldc/gen/statements.cpp:132: virtual void ReturnStatement::toIR(IRState*): Assertion `p->topfunc()->getReturnType() == llvm::Type::getVoidTy(gIR->context())' failed.
0 ldc 0x08a91628
Thank god we have bisecting capabilities in VCSs now ;)
---
dmd/expression.c | 47 +++++++++++++++++++++++++++++++++++++++++------
1 files changed, 41 insertions(+), 6 deletions(-)
author | Leandro Lucarella <llucax@gmail.com> |
---|---|
date | Wed, 06 Jan 2010 15:18:19 -0300 |
parents | 1bb99290e03a |
children |
rev | line source |
---|---|
1 | 1 module b; |
2 | |
270
d9d5d59873d8
[svn r291] Fixed a bunch of the old Phobos tests to work with Tango.
lindquist
parents:
87
diff
changeset
|
3 extern(C) int printf(char*, ...); |
d9d5d59873d8
[svn r291] Fixed a bunch of the old Phobos tests to work with Tango.
lindquist
parents:
87
diff
changeset
|
4 |
1 | 5 struct S |
6 { | |
7 int i; | |
8 float[4] f; | |
9 } | |
10 | |
11 void main() | |
12 { | |
13 S s; | |
14 int i = s.i; | |
87 | 15 int* p = &s.i; |
1 | 16 *p = 42; |
17 printf("%d == %d\n", *p, s.i); | |
18 | |
19 float* f = &s.f[0]; | |
20 printf("%f == %f\n", *f, s.f[0]); | |
21 *f = 3.1415; | |
22 printf("%f == %f\n", *f, s.f[0]); | |
23 s.f[0] = 123.456; | |
87 | 24 printf("%f == %f\n", *f, s.f[0]); |
1 | 25 } |