mirror of
https://github.com/github/codeql.git
synced 2026-05-21 14:47:10 +02:00
50 lines
920 B
C++
50 lines
920 B
C++
|
|
int *global_ptr;
|
|
const char *global_string = "hello, world";
|
|
|
|
void test1(int *ptr, int &ref)
|
|
{
|
|
const char *str;
|
|
int v, *p;
|
|
char c;
|
|
|
|
v = *ptr; // `ptr` dereferenced
|
|
v = ptr[0]; // `ptr` dereferenced
|
|
p = ptr;
|
|
|
|
*ptr = 0; // `ptr` dereferenced
|
|
ptr[0] = 0; // `ptr` dereferenced
|
|
ptr = 0;
|
|
|
|
(*ptr)++; // `ptr`, `*ptr` dereferenced
|
|
*(ptr++); // `ptr++` dereferenced
|
|
ptr++;
|
|
|
|
v = ref; // (`ref` implicitly dereferenced, not detected)
|
|
p = &ref;
|
|
ref = 0; // (`ref` implicitly dereferenced, not detected)
|
|
ref++; // (`ref` implicitly dereferenced, not detected)
|
|
|
|
*global_ptr; // `global_ptr` dereferenced
|
|
str = global_string;
|
|
c = global_string[5]; // `global_string` dereferenced
|
|
}
|
|
|
|
struct myStruct
|
|
{
|
|
int x;
|
|
void f() {};
|
|
void (*g)();
|
|
};
|
|
|
|
void test1(myStruct *ms)
|
|
{
|
|
void (*h)();
|
|
|
|
ms;
|
|
ms->x; // `ms` dereferenced
|
|
ms->f(); // `ms` dereferenced
|
|
ms->g(); // `ms` dereferenced
|
|
h = ms->g; // `ms` dereferenced
|
|
}
|