Geoffrey White
689c637d48
C++: Rename things.
2020-08-20 12:52:40 +01:00
Geoffrey White
61158e759b
C++: Improve StdContainerConstructor model.
2020-08-20 11:04:59 +01:00
Geoffrey White
f2ac4fa94a
C++: Autoformat.
2020-08-20 10:44:54 +01:00
Geoffrey White
cda9fd250b
C++: Model vector methods.
2020-08-20 10:30:01 +01:00
Geoffrey White
620126d38c
C++: Add vector taint cases to test.
2020-08-20 10:27:25 +01:00
Geoffrey White
43c8efdf63
C++: Repair the range based for test.
2020-08-20 10:19:54 +01:00
Geoffrey White
8afa92d881
C++: Add more detail to the vector class in the test stl.h.
2020-08-20 09:39:35 +01:00
Jonas Jensen
b1c0e6f626
Merge remote-tracking branch 'upstream/main' into SimpleRangeAnalysis-mul-constant
2020-08-20 08:20:31 +02:00
Robert Marsh
6b1243e8b4
C++: respond to PR comments on Iterator.qll
2020-08-19 16:23:00 -07:00
Robert Marsh
20188b7bc2
C++: input iterator models
2020-08-19 12:11:36 -07:00
Robert Marsh
d32d6c9d8d
WIP: more iterator cases
2020-08-19 11:51:41 -07:00
Robert Marsh
d50dd090be
C++: rename to Iterator*Operator
2020-08-19 11:51:41 -07:00
Robert Marsh
85af74eb06
C++: Models for bidirectional input iterators
2020-08-19 11:51:41 -07:00
Robert Marsh
a457d54ad1
Merge pull request #4078 from jbj/SimpleRangeAnalysis-AssignMulExpr
...
C++: Range analysis for unsigned AssignMulExpr
2020-08-19 14:42:04 -04:00
Jonas Jensen
b14bc42756
Merge pull request #4090 from geoffw0/strmethods
...
C++: Model taint through many more methods in std::string
2020-08-19 16:40:46 +02:00
Jonas Jensen
21d16d13fc
Merge remote-tracking branch 'upstream/main' into SimpleRangeAnalysis-AssignMulExpr
2020-08-19 14:50:40 +02:00
Jonas Jensen
83884c0dc5
Merge pull request #4089 from jbj/jbj/printFloat-precise
...
C++: Accept float.toString changes in tests
2020-08-19 12:58:27 +02:00
Mathias Vorreiter Pedersen
eed6fe96ae
Merge branch 'main' into alternative-instruction-operand-flow
2020-08-19 11:18:51 +02:00
Nick Rolfe
d7849bc13f
C++: fix compilation errors in ssa.cpp
2020-08-18 18:39:00 +01:00
Jonas Jensen
01a226bdcf
C++: Rename multipliesBy->effectivelyMultipliesBy
...
From code review of #4098 .
2020-08-18 16:53:29 +02:00
Jonas Jensen
b65f82210f
Merge remote-tracking branch 'upstream/main' into SimpleRangeAnalysis-mul-constant
2020-08-18 16:51:56 +02:00
Jonas Jensen
f79c140dc1
C++: Cosmetic: use [0, 1] instead of [0 .. 1]
2020-08-18 16:48:23 +02:00
Jonas Jensen
fd0937eb01
C++: Accept improved IntegerOverflowTainted test
2020-08-18 16:47:29 +02:00
Jonas Jensen
dd5b561f08
C++: Use getValue(e) instead of e.getValue()
2020-08-18 16:45:24 +02:00
Jonas Jensen
b316644ac2
C++: SimpleRangeAnalysis for *= by constant
2020-08-18 15:07:20 +02:00
Jonas Jensen
ca1f5317b3
Merge pull request #4068 from geoffw0/uncontrolled-alloc-size
...
C++: Downgrade `cpp/uncontrolled-allocation-size` query precision.
2020-08-18 13:59:53 +02:00
Anders Schack-Mulligen
f75f5ab125
Merge pull request #3838 from hvitved/dataflow/flow-fwd-ctx
...
Data flow: Use precise call contexts in `flowFwd()`
2020-08-18 13:06:11 +02:00
Jonas Jensen
b6b72729f6
C++: SimpleRangeAnalysis for MulExpr by constant
2020-08-18 11:37:59 +02:00
Jonas Jensen
2e2f99cabf
C++: Correctly classify the MulExpr rounding bugs
2020-08-18 10:39:57 +02:00
Jonas Jensen
a7d9715fd9
C++: BinaryOperation.hasOperands
...
QLDoc borrowed from JavaScript. Implementation borrowed from Java.
Parameter names changed.
2020-08-18 10:28:59 +02:00
Jonas Jensen
27345c64f3
C++: Also accept PointlessComparison test changes
2020-08-18 09:32:05 +02:00
Geoffrey White
5d485859af
Merge remote-tracking branch 'upstream/main' into
...
uncontrolled-alloc-size
2020-08-17 20:49:35 +01:00
Geoffrey White
390af0d7d2
C++: Autoformat.
2020-08-17 17:55:52 +01:00
Geoffrey White
0234bca6ca
C++: Fix a hole in StdStringAppend and clarify comments.
2020-08-17 17:55:44 +01:00
Robert Marsh
9decb47bf0
Merge pull request #4076 from jbj/SimpleRangeAnalysis-AssignOperation
...
C++: Fix SimpleRangeAnalysis for AssignOperation
2020-08-17 12:55:26 -04:00
Geoffrey White
a11ca06189
C++: Implement more std::string models.
2020-08-17 17:33:09 +01:00
Geoffrey White
9204940830
C++: Add test cases for std::string methods.
2020-08-17 17:31:26 +01:00
Geoffrey White
789e781eb7
C++: Add prototypes for std::string methods to test.
2020-08-17 16:01:25 +01:00
Mathias Vorreiter Pedersen
bb3254d4ab
Merge branch 'main' into alternative-instruction-operand-flow
2020-08-17 16:21:10 +02:00
Geoffrey White
4b4b8a9faa
Merge pull request #4074 from jbj/SimpleRangeAnalysis-extensible
...
C++: extensible range analysis
2020-08-17 14:46:57 +01:00
Tom Hvitved
a2fc92b9db
Data flow: Address review comments
2020-08-17 15:46:43 +02:00
Jonas Jensen
e03fe81ce7
C++: Accept float.toString changes in tests
2020-08-17 15:07:00 +02:00
Jonas Jensen
edc5e5fbcf
C++: Simplify defDependsOnDef for AssignOperation
...
These cases were unnecessarily transitive. There is no need for
`defDependsOnDef` to be transitive since that's handled in
`defDependsOnDefTransitively`.
The dependency information from the LHS of an `AssignmentOperation` is
now deduced the say way as the information from the RHS: by calling
`exprDependsOnDef`. This should effectively give us the same information
and recursion structure as if the operation (`x += e`) were desugared
(`x = x + e`).
2020-08-17 11:06:39 +02:00
Geoffrey White
89c2b6dc4b
Merge remote-tracking branch 'upstream/master' into split
2020-08-14 14:03:34 +01:00
Jonas Jensen
fe72b559d3
C++: Range analysis for unsigned AssignMulExpr
...
This is essentially a copy-paste job of `AssignAddExpr`, together with
the math from the `UnsignedMulExpr` support.
2020-08-14 14:19:54 +02:00
Jonas Jensen
f90d779122
C++: Fix SimpleRangeAnalysis for AssignOperation
...
The range analysis wasn't producing useful bounds for `AssignOperation`s
(`+=`, `-=`) unless their RHS involved a variable. This is because a
shortcut was made in the `analyzableDef` predicate, which used to
specify that an analyzable definition was one for which we'd specified
the dependencies. But we can't distinguish between having _no
dependencies_ and having _no specification of the dependencies_.
The fix is to be more explicit about which definitions are analyzable.
To avoid too much repetition I'm still calling out to `analyzableExpr`
in the new code.
2020-08-14 14:15:58 +02:00
Jonas Jensen
e01e702f46
Merge pull request #4060 from bgianfo/patch-1
...
C++: Detect GoogleTest tests cases in FNumberOfTests.ql
2020-08-14 12:42:12 +02:00
Jonas Jensen
f7273b8665
C++: Add custom modeling to extensibility.ql
2020-08-14 12:27:30 +02:00
Jonas Jensen
ee3312503e
C++: Add test for extensible range analysis
...
This commit demonstrates that the range is too wide before custom
modeling has been added to the test.
2020-08-14 12:27:30 +02:00
Jonas Jensen
bf7732ec9d
C++: Silence QL compiler errors
2020-08-14 12:27:30 +02:00