286 lines
4.5 KiB
D
286 lines
4.5 KiB
D
|
|
/* PERMUTE_ARGS: -O
|
|
*/
|
|
|
|
import core.stdc.stdio;
|
|
|
|
version (all)
|
|
{
|
|
|
|
/************************************/
|
|
|
|
int func1(int[] data)
|
|
{
|
|
int j;
|
|
for (int i = 0; i < 10; i++) {
|
|
data[i*10] = i;
|
|
j = data[0] * 10;
|
|
}
|
|
return j;
|
|
}
|
|
|
|
void test1()
|
|
{
|
|
int[100] data = [1,7,6,3,8,9,7,2,2,4,
|
|
1,7,6,3,8,9,7,2,2,4,
|
|
1,7,6,3,8,9,7,2,2,4,
|
|
1,7,6,3,8,9,7,2,2,4,
|
|
1,7,6,3,8,9,7,2,2,4,
|
|
1,7,6,3,8,9,7,2,2,4,
|
|
1,7,6,3,8,9,7,2,2,4,
|
|
1,7,6,3,8,9,7,2,2,4,
|
|
1,7,6,3,8,9,7,2,2,4,
|
|
1,7,6,3,8,9,7,2,2,4,
|
|
];
|
|
int i = func1(data[]);
|
|
if (i != 0)
|
|
assert(0);
|
|
printf("%d\n", i);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test2()
|
|
{
|
|
int result = 0;
|
|
for (int i = 0; i < 10; ++i)
|
|
result += i;
|
|
printf("%d\n", result);
|
|
if (result != 45)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test3()
|
|
{
|
|
int result = 0;
|
|
for (int i = 0; i < 10; i++)
|
|
result += i;
|
|
printf("%d\n", result);
|
|
if (result != 45)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test4()
|
|
{
|
|
int result = 0;
|
|
for (int i = 0; i < 10; i += 1)
|
|
result += i;
|
|
printf("%d\n", result);
|
|
if (result != 45)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test5()
|
|
{
|
|
int result = 0;
|
|
for (int i = 0; i < 10; i -= -1)
|
|
result += i;
|
|
printf("%d\n", result);
|
|
if (result != 45)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test6()
|
|
{
|
|
int result = 0;
|
|
for (uint i = 0; i < 10; i++)
|
|
result += i;
|
|
printf("%d\n", result);
|
|
if (result != 45)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test7()
|
|
{
|
|
int result = 0;
|
|
for (long i = 0; i < 10; i++)
|
|
result += i;
|
|
printf("%d\n", result);
|
|
if (result != 45)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test8()
|
|
{
|
|
int result = 0;
|
|
for (ulong i = 0; i < 10; i++)
|
|
result += i;
|
|
printf("%d\n", result);
|
|
if (result != 45)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test9()
|
|
{
|
|
int result = 0;
|
|
for (ulong i = 0; i < 5; i++)
|
|
result += i;
|
|
printf("%d\n", result);
|
|
if (result != 10)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test10()
|
|
{
|
|
__gshared int i;
|
|
int result = 0;
|
|
for (i = 0; i < 10; i++)
|
|
result += i;
|
|
printf("%d\n", result);
|
|
if (result != 45)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test11()
|
|
{
|
|
int result = 0;
|
|
for (int i = 0; i < 10; i += 10)
|
|
result += i;
|
|
printf("%d\n", result);
|
|
if (result != 0)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test12()
|
|
{
|
|
int result = 0;
|
|
for (int i = 0; i < 10; i += 5)
|
|
result += i;
|
|
printf("%d\n", result);
|
|
if (result != 5)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test13()
|
|
{
|
|
int result = 0;
|
|
int i;
|
|
int* p = &i;
|
|
|
|
int foo() { return *p; }
|
|
|
|
for (i = 0; i < 10; ++i)
|
|
{
|
|
if (foo() != i)
|
|
assert(0);
|
|
result += i;
|
|
}
|
|
printf("%d\n", result);
|
|
if (result != 45)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test14()
|
|
{
|
|
int result = 0;
|
|
int i;
|
|
|
|
int foo() { return i; }
|
|
|
|
for (i = 0; i < 10; ++i)
|
|
{
|
|
if (foo() != i)
|
|
assert(0);
|
|
result += i;
|
|
}
|
|
printf("%d\n", result);
|
|
if (result != 45)
|
|
assert(0);
|
|
}
|
|
|
|
/************************************/
|
|
|
|
void test15()
|
|
{
|
|
int result = 0;
|
|
int i;
|
|
|
|
try
|
|
{
|
|
for (i = 0; i < 10; ++i)
|
|
{
|
|
if (i == 1)
|
|
throw new Exception("hello");
|
|
result += i;
|
|
}
|
|
assert(0);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
assert(i == 1);
|
|
}
|
|
}
|
|
|
|
/************************************/
|
|
|
|
int main()
|
|
{
|
|
test1();
|
|
test2();
|
|
test3();
|
|
test4();
|
|
test5();
|
|
test6();
|
|
test7();
|
|
test8();
|
|
test9();
|
|
test10();
|
|
test11();
|
|
test12();
|
|
test13();
|
|
test14();
|
|
test15();
|
|
return 0;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
void main()
|
|
{
|
|
int result = 0;
|
|
int i;
|
|
|
|
try
|
|
{
|
|
for (i = 0; i < 10; ++i)
|
|
{
|
|
if (i == 1)
|
|
throw new Exception("hello");
|
|
result += i;
|
|
}
|
|
assert(0);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
assert(i == 1);
|
|
}
|
|
}
|
|
|
|
}
|