Geoffrey White
73c677d417
Merge pull request #2189 from jbj/eivc-2019
...
C++: Minor tweaks to ExprInVoidContext
2019-10-24 16:50:35 +01:00
Jonas Jensen
8f58e7e6c9
C++: Clarify qldoc
2019-10-24 17:34:01 +02:00
Geoffrey White
e48936244d
CPP: Reword the query message.
2019-10-24 16:22:51 +01:00
Jonas Jensen
73e217a51e
C++: Un-deprecate class Qualifier
...
It turns out this was used in the internal repo.
2019-10-24 16:47:29 +02:00
Jonas Jensen
6c069ff444
C++: The update of a for-loop is ExprInVoidContext
2019-10-24 15:27:54 +02:00
Jonas Jensen
edc9e23a9d
C++: Deprecate class Qualifier
...
It's not used anywhere outside `VoidContext.qll`, where it was defined.
The use in `VoidContext.qll` is 10 years old and was a workaround for an
extractor bug that no longer exists.
2019-10-24 15:22:44 +02:00
Jonas Jensen
8e31b8167a
C++: Add a sample class in PrintAST.ql
...
I've found myself typing out this class whenever I want to print the AST
of one function. I hope it will be useful to others too.
2019-10-24 14:46:10 +02:00
Dave Bartolomeo
d03a4f86e5
C++/C#: Add AliasedUse instruction to all functions
...
This new instruction is the dual of the existing `AliasedDefinition` instruction. Whereas that instruction defines the contents of aliased memory before the function was called, `AliasedUse` represents the potential use of all aliased memory after the function returns. This ensures that writes to aliased memory do not appear "dead", even if there are no further reads from aliased memory within the function itself.
2019-10-23 11:59:05 -07:00
Jonas Jensen
7a6ec83572
C++: No CopyValue for immediately discarded exprs
...
Expressions like the `e` in `e;` or `e, e2`, whose result is immediately
discarded, should not get a synthetic `CopyValue`. This removes a lot of
redundancy from the IR.
To prevent these expressions from being confused with the expressions
from which they get their result, the predicate
`getInstructionConvertedResultExpression` now suppresses results for
expressions that don't produce their own result. This should fix the
mapping between expressions and IR data-flow nodes.
2019-10-23 11:56:30 +02:00
Jonas Jensen
cbbe9b4718
Merge remote-tracking branch 'upstream/master' into ir-copy-unloaded-result
...
Fixed conflicts by accepting new qltest output.
Conflicts:
cpp/ql/test/library-tests/ir/ir/raw_ir.expected
cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir.expected
cpp/ql/test/library-tests/ir/ssa/unaliased_ssa_ir.expected
cpp/ql/test/library-tests/syntax-zoo/aliased_ssa_sanity.expected
cpp/ql/test/library-tests/syntax-zoo/unaliased_ssa_sanity.expected
2019-10-23 08:46:39 +02:00
Ziemowit Laski
6eb0f0709a
[CPP-434] Update Qhelp.
2019-10-22 17:28:35 -07:00
Ziemowit Laski
ad5aa182df
[CPP-434] When analyzing overflow, discard any explicit casts.
...
Use the simple range analysis library to detect which
additions may in fact overflow.
2019-10-22 15:21:30 -07:00
Ziemowit Laski
ac7a1230e6
[zlaski/bad-addition-qhelp-reword] Left-justify help text so that it renders proerly in MD.
2019-10-22 14:00:02 -07:00
Ziemowit Laski
ad4cd6f2bb
[zlaski/bad-addition-qhelp-reword] Initial change.
2019-10-22 13:43:35 -07:00
Dave Bartolomeo
0219dbeeed
C++: Fix override warning
2019-10-22 11:50:48 -07:00
Robert Marsh
9f0499cce9
Merge pull request #2063 from jbj/dataflow-ref-parameter
...
C++: Data flow through reference parameters
2019-10-22 09:40:15 -07:00
Henning Makholm
347d97c14c
qlpack.json is now qlpack.yml
2019-10-22 17:36:35 +02:00
Geoffrey White
ae20e9ace1
CPP: Fix autoformat.
2019-10-22 16:28:53 +01:00
Geoffrey White
2fa80c7da5
CPP: Fix qhelp.
2019-10-22 15:21:27 +01:00
Geoffrey White
63003894c3
CPP: Fixes.
2019-10-22 14:51:17 +01:00
Henning Makholm
fd768a1af6
Add some new-style suite definitions
2019-10-22 15:51:00 +02:00
Anders Schack-Mulligen
c37195b226
Java/C++/C#: Sync.
2019-10-22 11:42:35 +02:00
Geoffrey White
faf1a2acbe
CPP: Fix typos.
2019-10-22 09:56:50 +01:00
Geoffrey White
31dd3cae84
CPP: Autoformat.
2019-10-22 09:55:48 +01:00
Raul Garcia (MSFT)
cb8dcf7db2
Publishing queries to the OSS Semmle repository
2019-10-22 09:55:39 +01:00
Ziemowit Laski
9bc4c2d9a5
[CPP-434] Ctrl + Shift + F.
2019-10-21 18:40:20 -07:00
Ziemowit Laski
2292518933
[CPP-434] Change query so it flags overflows that were cast to unsigned.
2019-10-21 17:04:46 -07:00
Dave Bartolomeo
1c8e275b40
C++/C#: Autoformat all the things
2019-10-21 15:00:05 -07:00
Dave Bartolomeo
7241c1aae6
C++/C#: More sanity checks for IRType
2019-10-21 14:22:46 -07:00
Dave Bartolomeo
958754bed8
C++: Use max to handle mixed 32/64-bit extraction
2019-10-21 11:56:12 -07:00
Dave Bartolomeo
5776077bf6
C++: Add comment about enum signedness
2019-10-21 11:37:18 -07:00
Dave Bartolomeo
debb662b8c
C++: Reformat comment
2019-10-21 10:55:59 -07:00
Dave Bartolomeo
71a6b5dffe
C++/C#: Fix some duplicate IRType problems, and add a sanity test
2019-10-21 10:46:30 -07:00
Jonas Jensen
defe99503d
Merge pull request #2113 from raulgarciamsft/users/raulga/boost
...
Users/raulga/boost
2019-10-20 13:14:44 +02:00
Dave Bartolomeo
f871c72660
C++: Fix PR feedback
2019-10-18 12:54:03 -07:00
Dave Bartolomeo
8ec15933f5
C++/C#: Blob -> Opaque
2019-10-18 12:51:25 -07:00
Robert Marsh
bea9a1cbb2
autoformat
2019-10-18 12:15:21 -07:00
Robert Marsh
8905159de7
C++: add InitializeIndirection for pointer params
2019-10-18 11:06:09 -07:00
Geoffrey White
5a97a16945
CPP: Autoformat.
2019-10-18 09:46:04 +01:00
Jonas Jensen
dcc446660e
Merge pull request #2149 from rdmarsh2/rdmarsh/cpp/ir-side-effect-primary
...
C++: Add getPrimaryInstruction to specific side effects
2019-10-18 10:31:01 +02:00
Ziemowit Laski
6772fa1352
[CPP-434] Reformat QHelp.
2019-10-17 17:21:14 -07:00
Ziemowit Laski
70441edacf
[CPP-434] Additional test case; improve QHelp by including themes from the BadAdditionOverflowCheck QHelp.
2019-10-17 16:41:17 -07:00
Robert Marsh
5451c394a2
C++/C#: autoformat
2019-10-17 12:20:36 -07:00
Robert Marsh
b29f88450b
C++: buffer read side effects on unmodeled funcs
2019-10-17 12:10:23 -07:00
Matthew Gretton-Dann
bc0d73b86e
C++: Remove unique diagniostic key on diagnostic_for.
2019-10-17 15:34:51 +01:00
Robert Marsh
30d7238921
C++: fix missing getPrimaryInstruction
2019-10-16 17:05:37 -07:00
Robert Marsh
fffe3c2432
C++: add sanity test for side effect primaries
2019-10-16 16:53:55 -07:00
Robert Marsh
6cef936046
C++: add function info to duplicateChiOperand
2019-10-16 15:59:00 -07:00
Dave Bartolomeo
6e61b1dcd0
C++: Fix up after merge from master
...
The one interesting piece that needed to be fixed up was the type of an `Indirect[Read|Write]SideEffect` operand/result. If the parameter type is a pointer or reference to an incomplete type, we need to set the type of the side effect memory access to `Unknown`, because we don't model incomplete types in the IR type system.
I also added minimal support for `__assume` (generated as a `NoOp`), because lack of `__assume` support got in the way of debugging the other issue above.
2019-10-16 15:55:56 -07:00
Dave Bartolomeo
167d2289c4
Merge from master
2019-10-16 10:10:10 -07:00