Matthew Gretton-Dann
45ec8527c3
C++: Update expected test output.
2019-11-05 11:39:22 +00:00
Matthew Gretton-Dann
809d97de02
C++: Print print nontype template params
2019-11-05 11:39:22 +00:00
Matthew Gretton-Dann
ca898d4be0
C++: Further nontype template testcases.
2019-11-05 11:39:22 +00:00
Matthew Gretton-Dann
57cd9b3990
C++: Update test results
...
We now support getting the name used for non-type template parameters
2019-11-05 11:39:22 +00:00
Matthew Gretton-Dann
469832668f
C++: Add some simple non-type template tests
2019-11-05 11:39:22 +00:00
Matthew Gretton-Dann
faf5ba432b
C++: Update expected test results
2019-11-05 11:39:22 +00:00
Geoffrey White
3e8b28a0a8
Merge pull request #2213 from jbj/BarrierGuard
...
C++: Implement DataFlow::BarrierGuard for AST+IR
2019-11-04 11:08:36 +00:00
Robert Marsh
31f25c8cfc
C++: primary instrs for constructor side effects
2019-10-31 11:43:47 -07:00
Robert Marsh
86b5e97f76
Merge branch 'master' of github.com:Semmle/ql into rdmarsh/cpp/ir-constructor-side-effects
2019-10-31 11:34:22 -07:00
Robert Marsh
9477bd5698
Merge branch 'master' of github.com:Semmle/ql into rdmarsh/cpp/ir-buffer-read-call-se
2019-10-31 11:00:01 -07:00
Jonas Jensen
b6038f3caa
C++: Remove best-bound logic from test
...
This logic, in an improved form, is now part of the library itself.
2019-10-29 11:54:32 +01:00
Jonas Jensen
311963906b
C++: Only give the best delta in range analysis
...
This mirrors Java's 6b85fe087a .
2019-10-29 11:49:49 +01:00
Robert Marsh
8076156cb1
Merge branch 'master' into rdmarsh/cpp/ir-callee-side-effects
2019-10-28 16:50:34 -07:00
Robert Marsh
120fa6c330
C++: alias fixes for ReturnIndirection
2019-10-28 15:09:35 -07:00
Robert Marsh
5e946cc9f3
C++: add param read side effects to IR exit blocks
2019-10-28 15:09:04 -07:00
Jonas Jensen
b13535ac7d
C++: Implement DataFlow::BarrierGuard for AST+IR
...
The change note is copied from the Java change note.
2019-10-28 16:22:23 +01:00
Dave Bartolomeo
cc5a689293
C++/C#: Fix up after merge from master
2019-10-25 14:11:34 -07:00
Dave Bartolomeo
f5e320e988
Merge from master
2019-10-25 13:24:19 -07:00
Dave Bartolomeo
56cbd0c152
C++/C#: Make AliasedUse access only non-local memory
...
The `AliasedUse` instruction is supposed to represent future uses of aliased memory after the function returns. Since local variables from that function are no longer allocated after the function returns, the `AliasedUse` instruction should access only the set of aliased locations that does not include locals from the current stack frame.
2019-10-25 13:10:39 -07:00
Jonas Jensen
22de0efc58
Merge pull request #2008 from dave-bartolomeo/dave/IRType2
...
C++: Implement language-neutral IR type system
2019-10-25 09:42:23 +02:00
Dave Bartolomeo
1223388ab6
C++: Fix test expectations
2019-10-24 13:54:21 -07:00
Jonas Jensen
11da4a5328
C++: Accept test results for GVN and sign analysis
2019-10-24 15:17:16 +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
Robert Marsh
e8dd0227ae
C++: accept test changes
2019-10-22 14:27:43 -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
Dave Bartolomeo
63038896f4
C++: Accept test output after changes
2019-10-21 17:06:32 -07:00
Dave Bartolomeo
2cd694756b
C++: Remove mistakenly-added file
2019-10-21 15:58:38 -07:00
Dave Bartolomeo
7241c1aae6
C++/C#: More sanity checks for IRType
2019-10-21 14:22:46 -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
Robert Marsh
8905159de7
C++: add InitializeIndirection for pointer params
2019-10-18 11:06:09 -07:00
Robert Marsh
e57fef093b
C++: accept syntax-zoo changes
2019-10-18 10:08:53 -07:00
Robert Marsh
b29f88450b
C++: buffer read side effects on unmodeled funcs
2019-10-17 12:10:23 -07: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
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
Geoffrey White
6f96d1759f
Merge pull request #2077 from jbj/cfg-enable-pr
...
C++: enable the QL-based CFG code
2019-10-16 14:06:22 +01:00
Matthew Gretton-Dann
692c29d095
C++: Test fun_decl for INVALID_KEYs
2019-10-15 14:47:32 +01:00
Nick Rolfe
6c83c76268
C++: add a test for __builtin_complex
2019-10-14 11:31:59 +01:00
Geoffrey White
1c0fdef0a8
CPP: Add a simplified test case for ImplicitThisFieldAccess.
2019-10-10 10:04:32 +01:00
Geoffrey White
bc4363bc22
CPP: Add a test of FunctionAccess and cases for FieldAccess.
2019-10-10 10:04:31 +01:00
Jonas Jensen
5d7a0b8dd5
Merge remote-tracking branch 'upstream/master' into dataflow-ref-parameter
...
I've accepted the new test output, which shows that this branch fixes
two false negatives in the test cases from #2088 .
2019-10-08 13:09:20 +02:00
Jonas Jensen
19f642fc8d
Merge commit '7434702' into dataflow-ref-parameter
...
This merges #1735 into this branch to resolve the semantic merge
conflicts between them.
2019-10-08 12:55:47 +02:00
Robert Marsh
b60e7c204d
C++: autoformat and accept test output
2019-10-07 14:07:25 -07:00
Robert Marsh
057c634fe4
C++: fix identical chi node operands
2019-10-04 13:05:47 -07:00
Robert Marsh
17e14348d5
C++: sanity test for identical Chi node operands
2019-10-04 12:57:30 -07:00
Robert Marsh
3377f88494
C++: generate Chi nodes on total IndirectMayWrites
2019-10-04 11:59:22 -07:00
Robert Marsh
5f8a3054d1
C++: add UninitializedInstructions for direct init
2019-10-04 11:34:14 -07:00