Geoffrey White
5d87117dc7
C++: Model std::set::lower_bound, upper_bound, equal_range.
2020-10-12 10:10:40 +01: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
Geoffrey White
fc19bba0bd
C++: Model std::set::merge and correct test annotations.
2020-10-12 10:01:57 +01: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
Geoffrey White
c63f7cb409
C++: Taint through emplace from qualifier to return value.
2020-10-09 17:41:24 +01:00
Geoffrey White
270517d379
C++: Revise model of emplace and emplace_hint. Note that 2 of the 3 taint regressions we shouldn't be getting because we don't yet do taint through keys.
2020-10-09 17:27:18 +01:00
Geoffrey White
49c121d370
C++: More test cases covering other std::pair constructors.
2020-10-09 17:22:29 +01:00
Anders Schack-Mulligen
091e3a2931
Dataflow: Adjust test output.
2020-10-09 16:25:14 +02:00
Geoffrey White
61a78e28ac
C++: Fix map::merge.
2020-10-09 14:46:23 +01:00
Anders Schack-Mulligen
1c043447e8
Dataflow: Introduce consistency check for flow targeting PostUpdateNodes.
2020-10-09 14:29:52 +02:00
Jonas Jensen
4c9ffcec27
Merge pull request #4396 from geoffw0/stringsets
...
C++: Use [, ...] syntax more widely.
2020-10-09 13:30:05 +02:00
Alexander Eyers-Taylor
b0d01cfe8d
Merge pull request #4370 from jbj/range-analysis-mega-change-note
...
C++: Change note for several range-analysis PRs
2020-10-09 10:45:11 +01:00
Geoffrey White
1f1be3bf9a
C++: Block try_emplace arg 0.
2020-10-09 10:04:22 +01:00
Geoffrey White
8786fe1ab8
C++: Add test missing test case involving tainted key.
2020-10-09 10:00:22 +01:00
Geoffrey White
493b80c44d
C++: Fix incorrect translations to hasQualifiedName.
2020-10-08 17:56:57 +01:00
Dave Bartolomeo
e4bfb75f90
C++: Fix pointer flow through temporary objects
2020-10-08 12:24:59 -04:00
Geoffrey White
c555cfa22a
C++: Replace isParameterDeref(_).
2020-10-08 16:55:45 +01:00
Geoffrey White
e01e4b5bde
C++: Fix QLDoc comments.
2020-10-08 14:29:08 +01:00
Geoffrey White
5c1a510e4a
C++: Model map::lower_bound, upper_bound and equal_range.
2020-10-08 14:22:43 +01:00
Geoffrey White
ef9a7c8cdb
C++: Model map::merge.
2020-10-08 14:22:43 +01:00
Geoffrey White
b7ab89c892
C++: Model map::emplace, emplace_hint and map::try_emplace.
2020-10-08 14:22:43 +01: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
Geoffrey White
6394b1b478
C++: Additional test cases for emplace.
2020-10-08 14:11:24 +01:00
Geoffrey White
61d5372d07
C++: Test spacing.
2020-10-08 13:43:49 +01:00
Geoffrey White
4c4dd0c959
C++: Fix a bug in the tests.
2020-10-08 12:57:30 +01:00
Gulshan Singh
662736eb2d
Fix compiler error after removing getLOp/getROp
2020-10-07 12:45:08 -07:00
Dave Bartolomeo
1e455f08a3
Fix test expectations
2020-10-07 13:14:54 -04:00
Dave Bartolomeo
bf8340f102
Fix test expectations in syntax-zoo
2020-10-07 10:26:02 -04:00
Gulshan Singh
7233ffa50f
Address review comments
2020-10-07 00:21:06 -07:00
Dave Bartolomeo
22638fdfc7
Merge remote-tracking branch 'upstream/main' into work
2020-10-06 18:33:14 -04:00
Dave Bartolomeo
80b832eb49
Fix test expectations
2020-10-06 18:27:33 -04:00
Tamas Vajk
56604e005a
C#: Upgrade to .net core app 3.1
2020-10-06 16:01:14 +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
Dave Bartolomeo
badb11750a
AST and IR support for TemporaryObjectExpr
2020-10-05 17:53:35 -04: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
Robert Marsh
b7dcd5c557
Merge pull request #4395 from geoffw0/modelbeginend
...
C++: Merge StdSequenceContainerBeginEnd into the general BeginOrEndFunction
2020-10-05 12:22:27 -04:00
Geoffrey White
4db964fca9
Merge branch 'main' into set
2020-10-05 15:16:42 +01:00
Geoffrey White
d93b37d5c5
C++: Autoformat some more files.
2020-10-05 15:11:23 +01:00
Mathias Vorreiter Pedersen
a6d7b1f9d9
Update cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll
...
Co-authored-by: Jonas Jensen <jbj@github.com >
2020-10-05 15:21:15 +02: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
Geoffrey White
591c17d7cf
C++: Rearrange comments.
2020-10-05 12:22:08 +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
Geoffrey White
488a55b9dd
C++: Autoformat.
2020-10-05 10:39:32 +01:00
Mathias Vorreiter Pedersen
4c14f5dbb7
Merge branch 'main' into no-more-flow-into-read-side-effect
2020-10-05 11:03:42 +02:00
Mathias Vorreiter Pedersen
d38121f54a
Merge pull request #4394 from geoffw0/oddsends2
...
C++: Clean up and add to taint tests
2020-10-05 09:16:50 +02:00