mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-03-02 10:33:13 +01:00
[svn r12] fixed accessing aggregate fields of aggregates
removed some useless branches for successive scopes ala {}{}{}
This commit is contained in:
@@ -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
10
test/scope1.d
Normal file
@@ -0,0 +1,10 @@
|
||||
module scope1;
|
||||
|
||||
void main()
|
||||
{
|
||||
printf("1\n");
|
||||
{
|
||||
scope(exit) printf("2\n");
|
||||
}
|
||||
printf("3\n");
|
||||
}
|
||||
@@ -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);}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user