Commit Graph

4493 Commits

Author SHA1 Message Date
Ian Lynagh
62cbd2506c C++: Update stats to add coroutines 2020-09-01 11:48:00 +01:00
Ian Lynagh
ce9432edda C++: Add an upgrade script 2020-08-28 13:52:54 +01:00
Ian Lynagh
8d67418870 C++: Remove co_await range-based-for support for now
Initial impl won't support it
2020-08-28 13:52:54 +01:00
Ian Lynagh
7068a2b5be C++: Split CoReturnStmt.getExpr into CoReturnStmt.{getOperand,getExpr} 2020-08-28 13:52:54 +01:00
Matthew Gretton-Dann
0e9fefd383 Actually sort add Statement support
This commit fixes the previous one.
2020-08-28 13:52:54 +01:00
Matthew Gretton-Dann
79a91bb2a2 Add initial QL support classes for coroutines
Add classes for expressions co_yield and co_await.
Adds classes for statements co_return and `for co_await`.
2020-08-28 13:52:54 +01:00
Matthew Gretton-Dann
c3efacf2df C++: Add DB schema support for coroutines 2020-08-28 13:52:54 +01:00
Jonas Jensen
55d7ac88f9 Merge pull request #4148 from geoffw0/vecextra
C++: Improvements to string and vector models.
2020-08-28 10:05:42 +02:00
Mathias Vorreiter Pedersen
ceddc2497a Merge pull request #4151 from geoffw0/reftaint
C++: Taint tests for array and reference assignments.
2020-08-27 20:00:13 +02:00
Geoffrey White
9b3da1f6c7 C++: Autoformat. 2020-08-27 16:55:45 +01:00
Geoffrey White
208cd4c888 C++: Fix assign in the test stl.h. 2020-08-27 16:52:22 +01:00
Geoffrey White
927a4faa58 C++: Remove the non-reference case that we shouldn't need. 2020-08-27 15:42:40 +01:00
Geoffrey White
071b303ea0 C++: Make the other versions consistent with this. 2020-08-27 15:24:48 +01:00
Rasmus Wriedt Larsen
36ac111659 Merge pull request #4152 from tausbn/python-sync-inline-test-expectations-files
Python: Sync InlineExpectationsTest.qll between Python and C++
2020-08-27 16:23:08 +02:00
Geoffrey White
865d91de80 C++: Fix getAValueTypeParameterIndex(). 2020-08-27 15:08:58 +01:00
Jonas Jensen
c507b337f2 Merge pull request #3921 from catenacyber/NullCheckParam
C++: Adds another redundant null check rule
2020-08-27 16:07:13 +02:00
Geoffrey White
816b8abd7c C++: Add a test case using a const int *. 2020-08-27 15:05:23 +01:00
Taus Brock-Nannestad
797e290a67 Python+CPP: Change values to value 2020-08-27 14:12:40 +02:00
Taus Brock-Nannestad
dccbcc15b3 Python: Sync InlineExpectationsTest.qll between Python and C++
Also changes `valuesasas` to `values` in the test example.
2020-08-27 13:37:26 +02:00
Geoffrey White
a5a3078b58 C++: Add a test case using a typedef int. 2020-08-27 12:11:56 +01:00
Geoffrey White
6f62803e1f C++: Taint tests for array and reference assignments. 2020-08-27 11:26:25 +01:00
Geoffrey White
111da4c352 C++: Add a model of std::vector::assign. 2020-08-27 10:22:31 +01:00
Geoffrey White
0952fb9777 C++: Minor correction in one of the string models. 2020-08-27 10:13:12 +01:00
Geoffrey White
fbac4ce44f C++: Split StdStringCStr and allow reverse flow on data. 2020-08-27 10:11:03 +01:00
Geoffrey White
fbff44ea45 C++: Add reverse taint as well. 2020-08-27 10:09:51 +01:00
Geoffrey White
6ae96baaf6 C++: Model std::vector::data. 2020-08-27 10:08:58 +01:00
Geoffrey White
2235c19593 C++: Add test cases for 'assign' and extra cases for 'data'. 2020-08-27 10:08:42 +01:00
Taus Brock-Nannestad
0f221ccfa2 Merge branch 'main' into python-cpp-make-inline-test-libs-language-agnostic 2020-08-26 17:23:25 +02:00
Taus Brock-Nannestad
a824d75e4f C++: Add documentation for the LineComment class 2020-08-26 16:02:26 +02:00
Jonas Jensen
f60abd8cf9 Merge pull request #4125 from geoffw0/oparray2
C++: Model operator[]
2020-08-26 13:44:02 +02:00
Nick Rolfe
00316dca8b Merge pull request #4120 from github/igfoo/global_vars
C++: Give fewer types to global variables
2020-08-26 12:29:41 +01:00
Taus Brock-Nannestad
f8ba4c1579 CPP: Make inline expectation test library language agnostic.
In preparation for adding this to Python, I have split out the
definition of the comment class in a separate file (which will be
specific to each language).
2020-08-26 13:06:24 +02:00
Geoffrey White
3f04530d84 C++: Autoformat. 2020-08-26 09:34:06 +01:00
Geoffrey White
fdf45f02f1 C++: Autoformat. 2020-08-25 18:53:19 +01:00
Geoffrey White
c083c6235d C++: Explicitly model data flow in through reference return values. 2020-08-25 16:20:12 +01:00
Geoffrey White
76a07f7292 C++: Use [, ...] syntax. 2020-08-25 12:30:06 +01:00
Geoffrey White
d31987d496 C++: Additional QLDoc. 2020-08-25 12:21:06 +01:00
Geoffrey White
23a792b8c6 C++: Add tests of nested vectors. 2020-08-25 12:13:32 +01:00
Geoffrey White
adbfad21ef C++: Correct the localFlow test. 2020-08-24 18:05:30 +01:00
Geoffrey White
ae807f7f33 C++: Autoformat. 2020-08-24 17:36:07 +01:00
Geoffrey White
1c38a4d5d6 Update cpp/ql/src/semmle/code/cpp/dataflow/internal/TaintTrackingUtil.qll
Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com>
2020-08-24 14:33:51 +01:00
Geoffrey White
d3c8ffb995 C++: Clean up, comment, and restrict the new flow to the post-update node of the returned reference. 2020-08-24 14:07:06 +01:00
Geoffrey White
f2caa8a2b0 C++: Reverse taint through function models returning a reference. 2020-08-24 14:05:04 +01:00
Geoffrey White
f25ef26c37 C++: Permit taint flow to the left side of an assignment. 2020-08-24 14:01:49 +01:00
Geoffrey White
1da78ada14 C++: Model 'operator[]' and 'at' for std::string, std::vector and other containers. 2020-08-24 13:58:43 +01:00
Geoffrey White
f6770c5b88 C++: Add tests for std::string 'operator[]' and 'at()'. 2020-08-24 13:49:39 +01:00
Jonas Jensen
b2cd98a98f C++: Confirm correct behaviour on C++20
Making `constexpr` imply `const` was correct for C++11 and was a correct
emulation of a GCC bug on GCC < 5.0. This test confirms that the problem
isn't there in C++20.
2020-08-24 13:42:40 +02:00
Philippe Antoine
07610e0899 Format document 2020-08-24 13:12:54 +02:00
Ian Lynagh
3ead154c9a C++: Add VariableDeclarationEntry test to library-tests/variables/global 2020-08-24 11:51:52 +01:00
Jonas Jensen
cd8e9a1ece C++: Demonstrate that constexpr implies const
This test shows that a member function declared `constexpr` also gets a
`const` specifier.
2020-08-24 11:39:41 +02:00