C++: Add a failing test.

This commit is contained in:
Mathias Vorreiter Pedersen
2024-04-17 17:57:54 +01:00
parent 4d3d07a964
commit 43df0cd5f4
3 changed files with 29 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
void sink(int); // $ MISSING: ir
void indirect_sink(int*); // $ MISSING: ir
int source();
void test() {
int x = source();
sink(x);
int* p = &x;
indirect_sink(p);
}

View File

@@ -0,0 +1,2 @@
testFailures
failures

View File

@@ -0,0 +1,16 @@
import TestUtilities.dataflow.FlowTestCommon
import semmle.code.cpp.dataflow.new.DataFlow
module ParamConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node source) { source.asExpr().(Call).getTarget().hasName("source") }
predicate isSink(DataFlow::Node sink) {
sink.asParameter().getFunction().hasName("sink")
or
sink.asParameter(1).getFunction().hasName("indirect_sink")
}
}
module IRFlow = DataFlow::Global<ParamConfig>;
import MakeTest<IRFlowTest<IRFlow>>