blob: b614d1bdf7f43f25530496d7c10232099652d2bf [file] [log] [blame]
/*
PERMUTE_ARGS: -O
RUN_OUTPUT:
---
0
45
45
45
45
45
45
45
10
45
0
5
45
45
---
*/
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);
}
}
}