Jonas Jensen
78560833a1
C++: Add a test distilled from real code
...
Author: @rvermeulen.
The consistency warnings go away because `sink` is defined with a body
in this file.
2020-09-15 16:24:37 +02:00
Jonas Jensen
bdce24735c
C++: Add flow through arrays
...
This works by adding data-flow edges to skip over array expressions when
reading from arrays. On the post-update side, there was already code to
skip over array expressions when storing to arrays. That happens in
`valueToUpdate` in `AddressFlow.qll`, which needed just a small tweak to
support assignments with non-field expressions at the top-level LHS,
like `*a = ...` or `a[0] = ...`.
The new code in `AddressFlow.qll` is copy-pasted from `EscapesTree.qll`,
and there is already a note in these files saying that they share a lot
of code and must be maintained in sync.
2020-09-15 14:46:11 +02:00
Jonas Jensen
27b8dc2b13
C++: Add tests for flow through arrays
2020-09-15 14:19:34 +02:00
Mathias Vorreiter Pedersen
0ba72c6685
C++: Accept changes.
2020-09-15 12:49:22 +02:00
Mathias Vorreiter Pedersen
d18dd5ab09
C++: Add testcase demonstrating the underlying problem in 6ca9c449af.
2020-09-15 12:32:15 +02:00
Mathias Vorreiter Pedersen
7cd6137b34
Merge branch 'main' into mathiasvp/array-field-flow
2020-09-14 20:45:06 +02:00
Mathias Vorreiter Pedersen
41147d245d
C++: Accept test changes
2020-09-08 14:35:22 +02:00
Mathias Vorreiter Pedersen
c67951682a
C++: Fix two bad join orders in readStep and storeStep. And use a min aggregate to guarentee that a FieldContent's toString has at most one result.
2020-09-04 17:12:30 +02:00
Mathias Vorreiter Pedersen
472363b86e
Merge branch 'main' into mathiasvp/read-step-without-memory-operands
2020-09-01 11:08:52 +02:00
Mathias Vorreiter Pedersen
3cca74e654
C++: Accept test changes
2020-09-01 10:54:46 +02:00
Rasmus Lerchedahl Petersen
750735c70c
Dataflow: Update test expectations
2020-08-28 15:00:01 +02:00
Mathias Vorreiter Pedersen
e4807c0181
C++: Accept test changes
2020-08-26 15:51:09 +02:00
Mathias Vorreiter Pedersen
2a8ee90828
C++: Demonstrate lack of flow when taking the address of a field and loading it afterwards
2020-08-26 15:50:57 +02:00
Tom Hvitved
de3dc734ff
C++: Follow-up changes
2020-06-30 17:44:16 +02:00
Nick Rolfe
133838dbf3
C++: update tests to expect type of this
2020-06-26 14:20:45 +01:00
Jonas Jensen
5a5df4de26
Revert "Merge pull request #3419 from MathiasVP/flat-structs"
...
There was unfortunately a semantic merge conflict between #3419 and
#3587 that caused a performance regression on (at least) OpenJDK.
This reverts commit 982fb38807 , reversing
changes made to b841cacb83 .
2020-06-22 14:09:06 +02:00
Robert Marsh
1c9b6f0a48
Merge branch 'master' into ir-this-parameter-2
...
Accept test changes - dataflow changes are all positive
2020-06-16 11:28:49 -07:00
Mathias Vorreiter Pedersen
c30d1a618e
C++: Add charpred to partial definition node classes in qltest
2020-06-16 09:55:37 +02:00
Mathias Vorreiter Pedersen
6748f3887e
C++: Add test demonstrating differences between AST and IR field flow. Also refactored the partial definitions test
2020-06-15 09:39:15 +02:00
Robert Marsh
65f4ef712e
C++: accept false positive tests after merge
...
The IR false positives are due to the same path length limit as the AST
false positives on the same line.
2020-06-11 15:27:13 -07:00
Robert Marsh
a7efa0d602
Merge branch 'master' into ir-this-parameter-2
2020-06-11 13:21:52 -07:00
Mathias Vorreiter Pedersen
b48168fc03
C++: Accept tests
2020-06-08 12:26:25 +02:00
Mathias Vorreiter Pedersen
01f3793159
C++: Add ReadSideEffect as a possible end instruction for load chains
2020-06-08 11:05:30 +02:00
Mathias Vorreiter Pedersen
a4388e9258
C++: Add example demonstrating missing flow
2020-06-08 11:03:36 +02:00
Robert Marsh
cce99f92a1
C++: exclude conversions in IR field flow tests
2020-06-05 16:19:02 -07:00
Robert Marsh
53a87fa378
C++: accept field flow test changes after merge
2020-06-05 15:41:10 -07:00
Robert Marsh
0d2f8f3825
Merge branch 'master' into ir-this-parameter-2
2020-06-05 13:52:56 -07:00
Mathias Vorreiter Pedersen
4b16067af2
C++: Fix testcases after merge from master
2020-06-04 11:02:03 +02:00
Mathias Vorreiter Pedersen
2cf9bcef86
Merge branch 'master' into flat-structs
2020-06-04 10:52:25 +02:00
Mathias Vorreiter Pedersen
d295e2139a
C++: Accept tests after merge from master
2020-06-03 15:13:44 +02:00
Mathias Vorreiter Pedersen
43a0d4c97d
Merge branch 'master' into flat-structs
2020-06-03 15:11:14 +02:00
Jonas Jensen
8f702d4b49
C++: Override toString on argument indirections
...
Without this override, end users would see the string
`BufferReadSideEffect` in path explanations.
2020-06-03 13:04:10 +02:00
Jonas Jensen
10dfa497a5
Merge remote-tracking branch 'upstream/master' into dataflow-indirect-args
...
Fixed a semantic merge conflict by accepting test changes in
`cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected`.
2020-06-02 18:03:34 +02:00
Mathias Vorreiter Pedersen
2a1ba6d592
C++: Share configurations in testcases
2020-06-02 16:50:57 +02:00
Mathias Vorreiter Pedersen
b9af1123d9
C++: Make path-problem versions of ir-flow.ql and flow.ql
2020-06-02 16:28:01 +02:00
Jonas Jensen
5f0d283212
Merge remote-tracking branch 'upstream/master' into dataflow-indirect-args
...
The conflicts came from how `this` is now a parameter but not a
`Parameter` on `master`.
Conflicts:
cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/defaulttainttracking.cpp
cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/tainted.expected
cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/test_diff.expected
cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected
cpp/ql/test/library-tests/dataflow/fields/ir-flow.expected
cpp/ql/test/library-tests/syntax-zoo/dataflow-ir-consistency.expected
2020-06-02 15:35:02 +02:00
Robert Marsh
5ee37bcd5a
Merge branch 'master' into ir-this-parameter-2
...
Bring in fix for duplicate virtual variables for parameter indirections
2020-05-29 14:40:45 -07:00
Mathias Vorreiter Pedersen
3adc10fdb4
C++: Accept tests
2020-05-29 15:33:55 +02:00
Mathias Vorreiter Pedersen
335baaef73
C++: Add testcases for partial definitions with long access paths
2020-05-29 12:15:39 +02:00
Jonas Jensen
7d4d435f25
Merge remote-tracking branch 'upstream/master' into Expr-location-workaround
...
Conflicts:
cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected
2020-05-29 10:04:12 +02:00
Jonas Jensen
9813258a3e
Merge remote-tracking branch 'upstream/master' into Expr-location-workaround
...
Conflicts and semantic conflicts in `library-tests/dataflow/fields` and
`library-tests/ir/ir`.
2020-05-29 08:44:37 +02:00
Robert Marsh
a897caec76
C++: outbound dataflow via this indirections
2020-05-28 15:30:41 -07:00
Dave Bartolomeo
476f27e427
Merge from master
2020-05-28 17:27:08 -04:00
Dave Bartolomeo
01ef8795bf
C++: Updated fixed test expectation
2020-05-28 17:24:38 -04:00
Robert Marsh
d8b5d3bce8
C++: accept test fixes
2020-05-28 08:45:01 -07:00
Robert Marsh
693789c2cc
Merge branch 'master' into ir-this-parameter
...
Bring in new tests so their output can be fixed
2020-05-28 08:32:10 -07:00
Jonas Jensen
1b23f3ec90
C++: Accept two more changed tests
2020-05-28 11:18:14 +02:00
Jonas Jensen
9153f568be
C++: Accept test results with location fixes
2020-05-28 09:42:49 +02:00
Mathias Vorreiter Pedersen
97edd97778
C++: Add getLocation to TNode IPA type in testcase
2020-05-27 08:28:18 +02:00
Robert Marsh
fb46002332
C++: Fix ThisParameterNode after IR changes
2020-05-26 13:35:08 -07:00