Skip to content

Commit 43df0cd

Browse files
committed
C++: Add a failing test.
1 parent 4d3d07a commit 43df0cd

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
void sink(int); // $ MISSING: ir
2+
void indirect_sink(int*); // $ MISSING: ir
3+
int source();
4+
5+
void test() {
6+
int x = source();
7+
sink(x);
8+
9+
int* p = &x;
10+
indirect_sink(p);
11+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
testFailures
2+
failures
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import TestUtilities.dataflow.FlowTestCommon
2+
import semmle.code.cpp.dataflow.new.DataFlow
3+
4+
module ParamConfig implements DataFlow::ConfigSig {
5+
predicate isSource(DataFlow::Node source) { source.asExpr().(Call).getTarget().hasName("source") }
6+
7+
predicate isSink(DataFlow::Node sink) {
8+
sink.asParameter().getFunction().hasName("sink")
9+
or
10+
sink.asParameter(1).getFunction().hasName("indirect_sink")
11+
}
12+
}
13+
14+
module IRFlow = DataFlow::Global<ParamConfig>;
15+
16+
import MakeTest<IRFlowTest<IRFlow>>

0 commit comments

Comments
 (0)