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
Jonas Jensen
e03fe81ce7
C++: Accept float.toString changes in tests
2020-08-17 15:07:00 +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
Geoffrey White
498b350add
Merge remote-tracking branch 'upstream/master' into plus
2020-08-13 18:21:28 +01:00
Geoffrey White
a839f1fae5
C++: Split off stringstream.cpp.
2020-08-13 18:17:24 +01:00
Geoffrey White
49d2f66ddb
C++: Tidy up sources and sinks.
2020-08-13 18:08:58 +01:00
Geoffrey White
f343eb9143
C++: Split stl.cpp into string.cpp and vector.cpp.
2020-08-13 18:04:46 +01:00
Geoffrey White
5d7f771933
C++: Split off stl.h from stl.cpp.
2020-08-13 18:04:45 +01:00
Geoffrey White
7349333006
C++: Taint through char append.
2020-08-13 15:13:47 +01:00
Geoffrey White
3c0e7a709f
C++: Add a test of append with CharT.
2020-08-13 14:52:34 +01:00
Geoffrey White
732a8fa4c9
C++: Add another member function.
2020-08-13 14:52:34 +01:00
Jonas Jensen
93d8d8eb1d
C++: Demonstrate range analysis MulExpr bugs
...
Unless these issues can be reproduced in far less contrived code, I
don't think they will cause problems in practice.
2020-08-12 12:10:23 +02:00
Jonas Jensen
1ee96a4b4f
C++: SimpleRangeAnalysis: unsigned multiplication
2020-08-12 10:03:04 +02:00
Geoffrey White
f62ad75048
C++: Taint through std::string operator+=.
2020-08-11 17:03:02 +01:00
Geoffrey White
cf6f530823
C++: Taint through std::string operator+.
2020-08-11 16:58:55 +01:00
Geoffrey White
a57dfd6b67
C++: Taint through std::string append.
2020-08-11 16:54:39 +01:00
Geoffrey White
f824a893ca
C++: Add test cases for appending strings.
2020-08-11 16:50:52 +01:00
Geoffrey White
030ab4f626
C++: Add string append operators to the test (changes layout).
2020-08-11 16:47:56 +01:00
Jonas Jensen
2ea25b9d90
C++: Precise printing of integer bounds
...
The pretty-printing of a QL `float` didn't include enough digits to tell
whether a large number had accurate bounds. The `toString` value of a
float appears to be more precise.
2020-08-11 16:48:01 +02:00
Jonas Jensen
c8911ab973
C++: Test range-based-for with std::vector too
2020-08-07 12:40:00 +02:00
Jonas Jensen
7cc877cbbb
C++: Taint through RangeBasedForStmt (AST only)
2020-08-06 15:37:41 +02:00
Jonas Jensen
5f635aca36
Merge pull request #3768 from geoffw0/copymove
...
C++: Clean up ConversionConstructor.
2020-08-05 14:35:05 +02:00
Jonas Jensen
ea0896c78b
Merge pull request #3999 from MathiasVP/mathiasvp/range-based-for-loop-taint-tests
...
C++: Add tests for taint through range-based for loops
2020-08-05 09:11:53 +02:00
Geoffrey White
9f5c37ccaa
Merge branch 'master' into copymove
2020-08-04 15:41:27 +01:00
Mathias Vorreiter Pedersen
4990d00498
C++: Add taint tests demonstrating lack of taint through range based for loops
2020-07-31 09:57:35 +02:00
Mathias Vorreiter Pedersen
b88ef56cb4
C++: Add basic iterator definition that matches STL
2020-07-31 09:45:32 +02:00
Mathias Vorreiter Pedersen
a4242bcb5d
Merge pull request #3962 from rdmarsh2/ir-barrierguard-checks-expr
...
C++: make IR BarrierGuard::checks match AST
2020-07-23 09:21:37 +02:00
Robert Marsh
0bb6d0c7ca
C++: make IR BarrierGuard::checks match AST
2020-07-17 15:43:57 -07:00
Mathias Vorreiter Pedersen
c4b97a3a62
C++: Accept more test changes
2020-07-15 16:19:51 +02:00
Geoffrey White
c4940aaa86
Merge branch 'master' into copymove
2020-07-15 15:01:01 +01:00
Mathias Vorreiter Pedersen
174b30461a
C++: Fix syntax error in testfile
2020-07-14 19:47:21 +02:00
Mathias Vorreiter Pedersen
834ad92453
C++: Add test cases for unsigned multiplication and fix missing return value in existing tests
2020-07-14 16:57:47 +02:00
Geoffrey White
37158f46ed
C++: Remove deprecated class from test.
2020-07-14 15:36:48 +01:00
Geoffrey White
61178c5330
Merge branch 'master' into copymove
2020-07-13 14:11:12 +01:00
Jonas Jensen
2fa54552f0
Merge pull request #3914 from geoffw0/cc_followup
...
C++: Repair swap taint tests
2020-07-09 15:54:40 +02:00
Robert Marsh
0e66d0892b
Merge pull request #3785 from MathiasVP/dataflow-operand-nodes
...
C++: Operands as dataflow nodes
2020-07-08 14:50:54 -07:00
Jonas Jensen
0bbbfe58cf
Merge pull request #3916 from geoffw0/cc_followup2
...
C++: Add missing constructor taint test
2020-07-08 16:35:47 +02:00
Geoffrey White
bc7c83a5d6
C++: Add taint test cases confirming that constructor definitions do no need to be present.
2020-07-07 16:01:13 +01:00
Ian Lynagh
0d9b18dbd7
C++: Accept test changes for is_constexpr
...
Generated copy and move constructors may now be marked as constexpr.
2020-07-06 19:24:39 +01:00
Geoffrey White
0caa17ab10
C++: Test the new methods.
2020-07-06 18:47:56 +01:00
Geoffrey White
52e501c41d
C++: Extend the 'swap' taint tests with methods that do not have recognizable signatures (copy/move assignment).
2020-07-06 18:44:37 +01:00
Jonas Jensen
50cd759718
Merge pull request #3733 from geoffw0/models5
...
C++: Constructor and assignment models
2020-07-01 13:58:27 +02:00
Anders Schack-Mulligen
38b73ff684
Merge pull request #3854 from hvitved/dataflow/node-type-interface
...
Data flow: Replace `getErasedRepr()` and `Node::getTypeBound()` with `getNodeType()`
2020-07-01 11:37:19 +02:00
Geoffrey White
8bdcc47a50
C++: Add a test.
2020-06-30 17:46:08 +01:00
Tom Hvitved
de3dc734ff
C++: Follow-up changes
2020-06-30 17:44:16 +02:00
Geoffrey White
3016798101
Merge branch 'master' into copymove
2020-06-30 16:20:41 +01:00