mirror of
https://github.com/github/codeql.git
synced 2025-12-19 10:23:15 +01:00
101 lines
1.8 KiB
C#
101 lines
1.8 KiB
C#
using System;
|
|
|
|
class Test
|
|
{
|
|
void SameCondition()
|
|
{
|
|
for (int i=0; i<10; ++i)
|
|
{
|
|
// GOOD: Same condition
|
|
for (; i<10; ++i)
|
|
{
|
|
Console.WriteLine(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
void DifferentCondition1()
|
|
{
|
|
for (int i=0; i<10; ++i)
|
|
{
|
|
// BAD: considered to be a different condition
|
|
for (; 10>i; ++i)
|
|
{
|
|
Console.WriteLine(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
void DifferentCondition2()
|
|
{
|
|
for (int i=0; i<10; ++i)
|
|
{
|
|
// BAD: different condition
|
|
for (; i<9; ++i)
|
|
{
|
|
Console.WriteLine(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
void DifferentConditions3()
|
|
{
|
|
for (int i=0; i<10; ++i)
|
|
{
|
|
// BAD: different condition
|
|
for (; i<=10; ++i)
|
|
{
|
|
Console.WriteLine(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
void UseAfterInnerLoop()
|
|
{
|
|
for (int i=0; i<10; ++i)
|
|
{
|
|
for (; i<10; ++i)
|
|
{
|
|
}
|
|
|
|
// BAD: i is not guarded
|
|
Console.WriteLine(i);
|
|
}
|
|
}
|
|
|
|
void GuardedAfterInnerLoop()
|
|
{
|
|
for (int i=0; i<10; ++i)
|
|
{
|
|
|
|
// GOOD: same condition
|
|
for (; i<10; ++i)
|
|
{
|
|
}
|
|
|
|
if (10 > i)
|
|
{
|
|
// GOOD: i is guarded
|
|
Console.WriteLine(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
void GuardedByContinue()
|
|
{
|
|
for (int i=0; i<10; ++i)
|
|
{
|
|
|
|
// GOOD: same condition
|
|
for (; i<10; ++i)
|
|
{
|
|
}
|
|
|
|
if (10 <= i) continue;
|
|
|
|
// GOOD: i is guarded
|
|
Console.WriteLine(i);
|
|
}
|
|
}
|
|
}
|