75 lines
1.0 KiB
D
75 lines
1.0 KiB
D
|
|
extern(C) int printf(const char*, ...);
|
|
|
|
/***********************/
|
|
|
|
@nogc int test1()
|
|
{
|
|
return 3;
|
|
}
|
|
|
|
/***********************/
|
|
// 3032
|
|
|
|
void test3032() @nogc
|
|
{
|
|
scope o1 = new Object(); // on stack
|
|
scope o2 = new class Object {}; // on stack
|
|
|
|
int n = 1;
|
|
scope fp = (){ n = 10; }; // no closure
|
|
fp();
|
|
assert(n == 10);
|
|
}
|
|
|
|
/***********************/
|
|
// 12642
|
|
|
|
__gshared int[1] data12642;
|
|
|
|
int[1] foo12642() @nogc
|
|
{
|
|
int x;
|
|
return [x];
|
|
}
|
|
|
|
void test12642() @nogc
|
|
{
|
|
int x;
|
|
data12642 = [x];
|
|
int[1] data2;
|
|
data2 = [x];
|
|
|
|
data2 = foo12642();
|
|
}
|
|
|
|
/***********************/
|
|
// 12936
|
|
|
|
void test12936() @nogc
|
|
{
|
|
foreach (int[1] a; [[1]])
|
|
{
|
|
assert(a == [1]);
|
|
}
|
|
foreach (i, int[1] a; [[1], [2]])
|
|
{
|
|
if (i == 0) assert(a == [1]);
|
|
else if (i == 1) assert(a == [2]);
|
|
else assert(0);
|
|
}
|
|
}
|
|
|
|
/***********************/
|
|
|
|
int main()
|
|
{
|
|
test1();
|
|
test3032();
|
|
test12642();
|
|
test12936();
|
|
|
|
printf("Success\n");
|
|
return 0;
|
|
}
|