Files
codeql/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp
Mathias Vorreiter Pedersen 2b31928c7b C++: Add MaD barrier guard tests.
2026-01-19 11:30:17 +00:00

50 lines
819 B
C++

bool checkArgument(int* x);
void sink(int);
void testCheckArgument(int* p) {
if (checkArgument(p)) {
sink(*p); // $ indirect_barrier=int barrier=int*
}
}
void testCheckArgument(int p) {
if (checkArgument(&p)) {
sink(p); // $ barrier=glval<int> indirect_barrier=int
}
}
int* get_clean_value(int* x) { return x; }
bool is_clean_value(int*);
int* get_clean_pointer(int* x) { return x; }
bool is_clean_pointer(int*);
void sink(int);
void sink(int*);
void test_mad(int x, int* p) {
{
if(is_clean_value(&x)) {
sink(x); // $ MISSING: external=int
}
}
{
if(is_clean_value(p)) {
sink(*p); // $ MISSING: external=int
}
}
{
if(is_clean_pointer(p)) {
sink(p); // $ MISSING: external=int*
}
}
{
if(is_clean_pointer(&x)) {
sink(x); // $ MISSING: external=glval<int>
}
}
}