Dave Bartolomeo
603a3af19b
C++: Treat implicit end of body of non-void function as Unreached
...
When the extractor can't prove that control flow will never reach the end of a non-`void`-returning function without reaching an explicit `return` statement, it inserts an implicit `return` without an operand. If control actually reaches this point, the behavior is undefined.
We were previously generating invalid IR for these implicit `return` statements, because the lack of an operand meant that there was no definition of the return value variable along that path. Instead, I've changed the IR generation to emit an `Unreached` instruction for the implicit `return`. This ensures that we don't create a control flow edge from the end of the body to the function epilogue.
The change to the range analysis test avoids having that test depend on the previous bad IR behavior, while still preserving the original spirit of the test.
2020-04-13 18:09:44 -04:00
Robert Marsh
f24c4e51c5
C++: add method qldoc in Diagnostics.qll
2020-04-13 14:58:30 -07:00
Robert Marsh
d065389a6b
C++: add method commetns in Compilation.qll
2020-04-13 14:41:25 -07:00
Robert Marsh
de29d93ede
C++: add method qldoc for Comment.qll
2020-04-13 14:39:51 -07:00
Robert Marsh
8779177839
C++: accept minor test change
2020-04-13 14:03:02 -07:00
Robert Marsh
a5e7db73b2
Merge branch 'rc/1.24' into rdmarsh/cpp/ir-flow-through-outparams
...
For submodule consistency
2020-04-13 12:02:59 -07:00
Mathias Vorreiter Pedersen
cde34c9b1b
C++: Accept test output which I previously forgot to accept
2020-04-13 16:19:21 +02:00
Mathias Vorreiter Pedersen
daac5c5ab3
Merge branch 'master' into ir-flow-fields
2020-04-13 14:19:17 +02:00
Mathias Vorreiter Pedersen
945ecffd05
C++: Add charpred to ParameterNode
2020-04-13 14:18:57 +02:00
Pavel Avgustinov
7c5c9ea8ea
Merge pull request #3240 from Semmle/update-license-in-readme
...
Update README to reflect new license
2020-04-10 17:36:36 +01:00
Rebecca Valentine
8e91f10030
Python: ObjectAPI to ValueAPI: UselessClass: Adds preliminary modernization
2020-04-09 15:25:38 -07:00
Rebecca Valentine
339758fa70
Python: ObjectAPI to ValueAPI: WrongNameForArgumentInClassInstantiation: Adds preliminary modernization
2020-04-09 15:04:44 -07:00
Rebecca Valentine
8dc1933a02
Python: ObjectAPI to ValueAPI: WrongNumberArgumentsInClassInstantiation: Adds preliminary modernization
2020-04-09 14:58:30 -07:00
Rebecca Valentine
336e48c5c6
Python: ObjectAPI to ValueAPI: IncorrectlySpecifiedOverriddenMethod: Adds preliminary modernization
2020-04-09 14:50:26 -07:00
Rebecca Valentine
be00d71b99
Python: ObjectAPI to ValueAPI: IncorrectlyOverriddenMethod: Adds preliminary modernization
2020-04-09 14:41:22 -07:00
Rebecca Valentine
7a586c97a4
Python: ObjectAPI to ValueAPI: IterReturnsNonIterature: Replaces custom return_type predicate with call to getAnInferredReturnType
2020-04-09 14:30:40 -07:00
Max Schaefer
c38edf77ce
Update stats.
2020-04-09 16:39:47 +01:00
Max Schaefer
a837d5f4ce
Add support for extracting Go frontend errors.
2020-04-09 16:39:47 +01:00
Dave Bartolomeo
9f18a15a93
Merge pull request #3231 from MathiasVP/qualified-static-calls-are-static
...
C++: Do not generate this parameters and read/write side effects from static member functions
2020-04-09 10:48:59 -04:00
Pavel Avgustinov
6737e99d65
Merge pull request #3209 from hmakholm/baselib-extractor
...
Add extractor field in base language QL packs
2020-04-09 15:24:49 +01:00
Mathias Vorreiter Pedersen
7f5330dd0a
Merge branch 'master' into ir-flow-fields
2020-04-09 16:08:44 +02:00
Geoffrey White
ba3a8d0872
C++: Improve naming and QLDoc.
2020-04-09 15:06:23 +01:00
Geoffrey White
a7979fdc12
C++: Base results purely on allocations now, not multiplications by a sizeof.
2020-04-09 15:05:29 +01:00
Geoffrey White
febbbc4423
C++: Additional test cases.
2020-04-09 15:03:35 +01:00
James Fletcher
6e88b6d4f4
Merge pull request #3239 from jf205/update-support-project
...
docs: Update support project to use fewer reusables
2020-04-09 14:18:55 +01:00
Geoffrey White
2f7ec49684
Merge pull request #3238 from MathiasVP/TlsSettingsMisconfiguration-id-no-underscores
...
C++: Replace underscores with dashes in query @id
2020-04-09 13:07:08 +01:00
Henry Mercer
5af7d5f03a
Update README to reflect new license
...
Per https://github.com/Semmle/ql/pull/3205 , code is now licensed under the MIT License.
2020-04-09 13:06:53 +01:00
Asger Feldthaus
c070416fbe
JS: Update test output
2020-04-09 12:24:11 +01:00
james
878109ccc4
docs: move language support into reusables folders
2020-04-09 12:20:27 +01:00
james
f7b3205cae
docs: move supported frameworks into single reusable
2020-04-09 12:19:58 +01:00
Max Schaefer
cf8eff543c
Merge pull request #94 from max-schaefer/more-testing-frameworks
...
Recognise more testing frameworks
2020-04-09 11:57:46 +01:00
Mathias Vorreiter Pedersen
0c5bca8f4e
C++: Replace underscores with dashes in query @id
2020-04-09 12:09:15 +02:00
Max Schaefer
d344687f52
Add change note.
2020-04-09 09:41:09 +01:00
Max Schaefer
1bf835f156
Add tests.
2020-04-09 09:41:02 +01:00
Max Schaefer
d5c8570bfc
Recognise imports of well-known testing frameworks.
2020-04-09 09:40:53 +01:00
Max Schaefer
e30e5685b2
Fix recognition of Test, Benchmark, and Example as test cases.
2020-04-09 09:40:25 +01:00
Asger Feldthaus
25d5cc78cb
JS: Use entry location instead of whole container
2020-04-09 09:18:26 +01:00
Max Schaefer
be9e9720d5
Introduce class TestFile and use it.
2020-04-09 09:16:45 +01:00
Asger Feldthaus
d9f81b082b
JS: Autoformat
2020-04-09 07:45:00 +01:00
Mathias Vorreiter Pedersen
6c7e1cdd46
C++: Make sure non-member functions are not reported to have a qualifier
2020-04-09 08:22:47 +02:00
luchua-bc
b7f2d32fb0
Address improper URL authorization
2020-04-08 22:41:11 -04:00
luchua-bc
e1a680cd86
Address improper URL authorization
2020-04-08 22:41:11 -04:00
Robert Marsh
3b591183c9
C++: remove partial flow from UnknownType
2020-04-08 17:09:30 -07:00
Robert Marsh
1199ff92e8
C++: autoformat
2020-04-08 16:41:29 -07:00
Robert Marsh
7e299e7494
C++/C#: Document ReturnIndirectionInstruction::getParameter
2020-04-08 16:41:07 -07:00
Robert Marsh
b37c13de91
C++: restore flow for non-class partial reads
...
This would otherwise have lost a good qltest result at
CWE-134/semmle/funcs/funcsLocal.c:58:9:58:10
2020-04-08 16:30:45 -07:00
Jonas Jensen
9f40886af9
C++: Don't allow taint out of a field read
...
except if it's from a union. This prevents field conflation through
buffers of `UnknownType`.
2020-04-08 14:02:33 -07:00
Robert Marsh
a0b26d66a4
C++: remove partial flow to IR loads
2020-04-08 13:56:56 -07:00
Robert Marsh
c38ccaaab6
Merge branch 'master' into rdmarsh/cpp/ir-flow-through-outparams
2020-04-08 12:32:35 -07:00
Asger Feldthaus
47934310ef
JS: Hide captured nodes in path explanations
2020-04-08 19:58:36 +01:00