Jonas Jensen
0459248b9f
Merge remote-tracking branch 'upstream/main' into SimpleRangeAnalysis-guard-overflow
2020-10-12 14:32:29 +02:00
Geoffrey White
6440db786d
Merge pull request #4420 from jbj/SimpleRangeAnalysis-widen-Expr
...
C++: SimpleRangeAnalysis: widen recursive *, +, -
2020-10-12 11:20:09 +01:00
Jonas Jensen
30b9d13a45
C++: Correct annotation in test
2020-10-12 11:25:38 +02:00
Jonas Jensen
9b12ceae8d
C++: SimpleRangeAnalysis: widen recursive *, +, -
...
The number of candidate bounds during the main `SimpleRangeAnalysis`
recursion was in principle always exponential in the size of the
program, but in practice it did not get out of hand when only `+` and
`-` operations were supported. Now that `*` is also supported, the range
analysis started timing out on the SinaMostafanejad/OpenRDM project. The
problematic expressions in that project are of the form
a*x*x*x + b*x*x + c*x + d
where most of the variables involved are recursive definitions and are
therefore likely to have a large number of candidate bounds.
The fix here is to identify those few binary operations that are most
likely to cause an explosion in the number of bounds and apply widening
to them. Previously, widening was only applied at definitions.
2020-10-12 11:09:01 +02:00
Jonas Jensen
bbeea452e1
C++: Add test with widening of binary Expr
2020-10-12 11:08:41 +02:00
Anders Schack-Mulligen
725194a3b8
Merge pull request #4447 from aschackmull/dataflow/postupdate-flow-consistency
...
Dataflow: Introduce consistency check for flow targeting PostUpdateNodes
2020-10-12 08:56:19 +02:00
Anders Schack-Mulligen
091e3a2931
Dataflow: Adjust test output.
2020-10-09 16:25:14 +02:00
Jonas Jensen
b409cf6cea
Merge pull request #4389 from gsingh93/bitwise-and
...
Improve range analysis for bitwise and
2020-10-08 15:18:15 +02:00
Jonas Jensen
984194d308
Merge pull request #4406 from geoffw0/set
...
C++: Models for std::set and std::unordered_set
2020-10-06 15:43:12 +02:00
Jonas Jensen
1d9acbfca9
C++: Demonstrate overflowing guard bounds
2020-10-06 15:31:34 +02:00
Jonas Jensen
6b2ae5d1ad
Merge pull request #4393 from MathiasVP/no-more-flow-into-read-side-effect
...
C++: No more flow into ReadSideEffect instructions
2020-10-05 19:46:32 +02:00
Geoffrey White
4db964fca9
Merge branch 'main' into set
2020-10-05 15:16:42 +01:00
Mathias Vorreiter Pedersen
e95aefe0b2
C++: Now that PrimaryArgumentNode is an OperandNode we want a specialized toString on it
2020-10-05 15:13:33 +02:00
Mathias Vorreiter Pedersen
d162c3d8c6
C++: Accept more test changes
2020-10-05 14:29:57 +02:00
Geoffrey White
855d2b50d7
C++: Correct test comments.
2020-10-05 13:00:51 +01:00
Geoffrey White
c757813d65
Merge branch 'main' into map
2020-10-05 12:32:49 +01:00
Mathias Vorreiter Pedersen
6c87b08c69
C++: Respond to review comments:
...
- ArgumentNode is now abstract
- PrimaryArgumentNode is now an OperandNode.
- ArgumentIndirectionNode is now merged into SideEffectArgumentNode.
2020-10-05 12:54:11 +02:00
Mathias Vorreiter Pedersen
4c14f5dbb7
Merge branch 'main' into no-more-flow-into-read-side-effect
2020-10-05 11:03:42 +02:00
Geoffrey White
8d5febf9c4
C++: Add a couple more test cases that have been discussed.
2020-10-02 18:03:07 +01:00
Geoffrey White
cc170bd513
C++: Test layout.
2020-10-02 18:03:07 +01:00
Geoffrey White
0d6bd6facb
Merge branch 'main' into map
2020-10-02 16:24:03 +01:00
Geoffrey White
88a93964a7
Merge branch 'main' into set
2020-10-02 16:17:48 +01:00
Geoffrey White
28ab092e9f
C++: Add 'tainted' markers to standalone_iterators.cpp test.
2020-10-02 15:54:26 +01:00
Mathias Vorreiter Pedersen
072e1967c1
C++: Accept more tests
2020-10-02 15:51:29 +02:00
Mathias Vorreiter Pedersen
48902c07a4
C++: Accept test changes
2020-10-02 14:10:58 +02:00
Mathias Vorreiter Pedersen
8f4982d3f5
C++: Remove flow into ReadSideEffect instructions in simpleInstructionLocalFlowStep
2020-10-02 14:10:28 +02:00
Geoffrey White
4b0e9a4fb1
C++: Remove the model of make_pair.
2020-10-02 10:55:13 +01:00
Geoffrey White
0b6096ebfe
C++: Define make_pair and declare std::forward in the test.
2020-10-02 10:51:34 +01:00
Gulshan Singh
f026d3a1e6
C++: Improve bitwise and range analysis
2020-10-01 23:30:51 -07:00
Gulshan Singh
78625b764d
C++: Add test for bitwise and ranges
2020-10-01 23:30:48 -07:00
Geoffrey White
ad9f306352
C++: Model taint flow only when the second component of a pair would be tainted.
2020-10-01 17:38:09 +01:00
Ian Lynagh
e555b6b2a8
Merge pull request #4380 from github/igfoo/unnamed
...
C++: Accept test changes in unnamed entity naming
2020-10-01 17:16:20 +01:00
Geoffrey White
cafd320953
C++: Add set/map constructor models.
2020-09-30 17:41:06 +01:00
Geoffrey White
6520f9d0fb
C++: Add basic std::set models.
2020-09-30 17:23:56 +01:00
Geoffrey White
5bc7d3a9b2
C++: Add tests for std::set and std::unordered_set.
2020-09-30 17:23:56 +01:00
Geoffrey White
952cc89c2a
C++: Improve make_pair in stl.h (using remove_reference).
2020-09-30 16:17:06 +01:00
Geoffrey White
7ecd229ce7
C++: Improve make_pair in stl.h (jbj solution).
2020-09-30 16:16:53 +01:00
Geoffrey White
282d3e8f7e
Merge pull request #4322 from jbj/range-analysis-custom-defs
...
C++: Support custom defs in SimpleRangeAnalysis
2020-09-30 15:43:32 +01:00
Jonas Jensen
b1c826e5c0
Merge pull request #4135 from rdmarsh2/rdmarsh2/cpp/output-iterators-1
...
C++: Output iterators in AST taint tracking
2020-09-30 12:54:55 +02:00
Ian Lynagh
d5f8cbc50c
C++: Accept test changes in unnamed entity naming
2020-09-29 17:30:33 +01:00
Geoffrey White
6de29a6dd3
C++: Provide std::pair constructor initializers.
2020-09-28 17:52:33 +01:00
Geoffrey White
773bc48a91
C++: Use a more modern make_pair.
2020-09-28 16:54:41 +01:00
Nick Rolfe
7609ce2d47
C++: accept test changes from extractor frontend upgrade
2020-09-28 12:23:26 +01:00
Geoffrey White
ec3c1568d2
C++: Model erase.
2020-09-24 18:38:29 +01:00
Geoffrey White
8b91d5077d
C++: Model find.
2020-09-24 18:38:29 +01:00
Geoffrey White
d550741c0c
C++: Model insert_or_assign.
2020-09-24 18:38:28 +01:00
Geoffrey White
c51294e423
C++: Model operator[] and at.
2020-09-24 18:38:28 +01:00
Geoffrey White
13b15d9bcd
C++: Model swap.
2020-09-24 18:38:27 +01:00
Geoffrey White
6119bf3430
C++: Model begin and end.
2020-09-24 18:38:27 +01:00
Geoffrey White
25e0c680c6
C++: Model insert.
2020-09-24 18:38:27 +01:00