[svn r12] fixed accessing aggregate fields of aggregates

removed some useless branches for successive scopes ala {}{}{}
This commit is contained in:
Tomas Lindquist Olsen
2007-09-27 06:03:06 +02:00
parent 2fe995a0c7
commit 1609cb80d4
8 changed files with 95 additions and 31 deletions

View File

@@ -13,5 +13,11 @@ class C
void main()
{
//C c = new C;
C c = new C;
long* lp = void;
{c.s.l = 64;}
{assert(c.s.l == 64);}
{lp = &c.s.l;}
{assert(*lp == 64);}
printf("classes5 success\n");
}

10
test/scope1.d Normal file
View File

@@ -0,0 +1,10 @@
module scope1;
void main()
{
printf("1\n");
{
scope(exit) printf("2\n");
}
printf("3\n");
}

View File

@@ -2,8 +2,8 @@ module structs3;
struct S
{
float l;
char c;
float f;
}
struct T
@@ -14,4 +14,17 @@ struct T
void main()
{
T t;
float f = void;
float* fp = void;
{f = t.s.f;}
{t.s.f = 0.0;}
{fp = &t.s.f;}
{*fp = 1.0;}
{assert(t.s.f == 1.0);}
{assert(*(&t.s.f) == 1.0);}
{t.s.c = 'a';}
{assert(t.s.c == 'a');}
{t.l = 64;}
{assert(t.l == 64);}
}