mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
223 lines
2.5 KiB
C
223 lines
2.5 KiB
C
|
|
int test(int x, int w, int z) {
|
|
int j;
|
|
long y = 50;
|
|
|
|
// simple comparison
|
|
if (x > 0) {
|
|
y = 20;
|
|
z = 10;
|
|
} else {
|
|
y = 30;
|
|
}
|
|
|
|
z = x + y;
|
|
|
|
// More complex
|
|
if(x < 0 && y > 1)
|
|
y = 40;
|
|
else
|
|
y = 20; /* The && expression does not control this block as the x<0 expression jumps here if false. */
|
|
|
|
|
|
z = 10;
|
|
|
|
// while loop
|
|
while(x > 0) {
|
|
y = 10;
|
|
x--;
|
|
}
|
|
|
|
z += y;
|
|
|
|
// for loop
|
|
for(j = 0; j < 10; j++) {
|
|
y = 0;
|
|
w = 10;
|
|
}
|
|
|
|
z += w;
|
|
|
|
// nested control flow
|
|
for(j = 0; j < 10; j++) {
|
|
y = 30;
|
|
if(z > 0)
|
|
if(y > 0) {
|
|
w = 0;
|
|
break;
|
|
} else {
|
|
w = 20;
|
|
}
|
|
else {
|
|
w = 10;
|
|
continue;
|
|
}
|
|
x = 0;
|
|
}
|
|
|
|
if (x == 0 || y < 0) {
|
|
y = 60;
|
|
z = 10;
|
|
} else
|
|
return z;
|
|
|
|
z += x;
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
int test2(int x, int w, int z) {
|
|
int j;
|
|
long y = 50;
|
|
|
|
// simple comparison
|
|
if (x == 0) {
|
|
y = 20;
|
|
z = 10;
|
|
} else {
|
|
y = 30;
|
|
}
|
|
|
|
z = x + y;
|
|
|
|
// More complex
|
|
if(x == 0 && y != 0)
|
|
y = 40;
|
|
else
|
|
y = 20;
|
|
|
|
|
|
z = 10;
|
|
|
|
// while loop
|
|
while(x != 0) {
|
|
y = 10;
|
|
x--;
|
|
}
|
|
|
|
z += y;
|
|
|
|
// for loop
|
|
for(j = 0; j < 10; j++) {
|
|
y = 0;
|
|
w = 10;
|
|
}
|
|
|
|
z += w;
|
|
|
|
if (x == 0 || y < 0) {
|
|
y = 60;
|
|
z = 10;
|
|
} else
|
|
return z;
|
|
|
|
z += x;
|
|
|
|
return 0;
|
|
}
|
|
|
|
int test3_condition();
|
|
void test3_action();
|
|
|
|
void test3() {
|
|
int b = 0;
|
|
|
|
if (1 && test3_condition()) {
|
|
b = 1;
|
|
test3_action();
|
|
}
|
|
|
|
if (b) {
|
|
test3_action();
|
|
}
|
|
}
|
|
|
|
void test4(int i) {
|
|
if (0) {
|
|
if (i) {
|
|
;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
void test5(int x) {
|
|
if (!x) {
|
|
test3();
|
|
}
|
|
}
|
|
|
|
void test6(char* p) {
|
|
if(p) {
|
|
|
|
}
|
|
}
|
|
|
|
void test7(char* p) {
|
|
if(!p) {
|
|
|
|
}
|
|
}
|
|
|
|
void test8(short s) {
|
|
if(s) {
|
|
|
|
}
|
|
}
|
|
|
|
void test9(short s) {
|
|
if(!s) {
|
|
|
|
}
|
|
}
|
|
|
|
void test10(int a, int b) {
|
|
if(!(a < b)) {
|
|
|
|
}
|
|
}
|
|
|
|
void test11(double foo) {
|
|
if(!(foo >= 1e-6 && foo < 1.0)) {
|
|
|
|
}
|
|
}
|
|
|
|
void test12(int a, int b) {
|
|
int c = a != b;
|
|
|
|
if (!c) {
|
|
|
|
}
|
|
}
|
|
|
|
void test13(int a) {
|
|
int b = a > 10;
|
|
|
|
if (!b) {
|
|
|
|
}
|
|
}
|
|
|
|
void test14(int a, int b) {
|
|
int c = a > b;
|
|
|
|
if (!c) {
|
|
|
|
}
|
|
}
|
|
|
|
# define likely(x) __builtin_expect(!!(x), 1)
|
|
|
|
void test15(int a, int b)
|
|
{
|
|
if (likely(a > b)) {
|
|
|
|
}
|
|
|
|
if (likely(a > 42)) {
|
|
|
|
}
|
|
}
|