Jonas Jensen
daabb2c5d0
Merge pull request #2082 from rdmarsh2/rdmarsh/cpp/ir-getASTVariable
...
IR: add getASTVariable to VariableInstruction
2019-10-09 08:56:01 +02:00
Robert Marsh
7fefe4385a
Merge pull request #1963 from jbj/predictableInstruction
...
C++: Implement predictableInstruction without Expr
2019-10-04 10:04:52 -07:00
ian-semmle
ebc10cf5db
Merge pull request #2084 from matt-gretton-dann/cpp-445-synthetic_destructor_call-INVALID_KEY-warnings
...
Update keysets for synthetic_destructor_call and *variables tuple
2019-10-04 16:38:35 +01:00
Geoffrey White
0e478d1c0e
Merge pull request #2066 from jbj/dataflow-conditionAlwaysTrue-perf
...
C++: Improve join orders for QL CFG
2019-10-04 14:16:41 +01:00
Geoffrey White
e465f4cc81
Merge pull request #2064 from jbj/leapyear-extends-abstract
...
C++: Avoid `extends Operation` in LeapYear.qll
2019-10-04 14:15:21 +01:00
Tom Hvitved
9b58d799cb
Java/C++/C#: Tweak AccessPathNil::toString()
...
Move the type annotation outside the brackets, to avoid prefixes such as
`[ : T]`.
2019-10-04 11:09:44 +02:00
Robert Marsh
6e587f3f2a
IR: Add VariableInstruction.getASTVariable
2019-10-03 13:12:06 -07:00
Robert Marsh
c1e3821ab0
IR: rename getVariable to getIRVariable
2019-10-03 13:10:49 -07:00
Matthew Gretton-Dann
618d0a9603
C++: Update DB Stats
2019-10-03 15:16:50 +01:00
Matthew Gretton-Dann
a7f682a9be
C++: Update *variables keysets.
2019-10-03 15:16:50 +01:00
Matthew Gretton-Dann
d62730a9f3
C++: Update synthetic_destructor_call keysets.
...
Reorder the [ destructor_call, expr ] tuple.
Add a [ expr, i ] tuple.
2019-10-03 15:16:50 +01:00
Matthew Gretton-Dann
06d1d6ed5d
C++: Fix synthetic_destructor_call key uniqueness.
2019-10-03 15:16:50 +01:00
Jonas Jensen
dca39f0fad
Merge pull request #2027 from zlaski-semmle/zlaski/memset-model
...
[zlaski/memset-model] QL model for `memset` and friends
2019-10-03 14:31:23 +02:00
Tom Hvitved
e5380aa6a7
Merge pull request #2038 from aschackmull/java/dataflow-fixes
...
Java/C++/C#: Misc. dataflow fixes.
2019-10-02 16:39:01 +02:00
Anders Schack-Mulligen
f87cb4d6ac
Java/C++/C#: Address review comments and fix test.
2019-10-02 14:32:17 +02:00
Jonas Jensen
3c7d79481f
C++: Autoformat FlowVar.qll
2019-10-01 15:54:41 +02:00
Jonas Jensen
0990ceb09a
C++: Remove bbNotInLoop and its caller in FlowVar
...
This change is needed when enabling the QL CFG on certain snapshots such
as notaz/picodrive. It removes the `bbNotInLoop` predicate, which was
always a liability because it's inherently quadratic. The real slowdown
came in `skipLoop`, where all true-upon-entry loops were crossed with
all definitions of variables that should take their definition from the
loop body.
2019-10-01 14:33:28 +02:00
Jonas Jensen
eed24f1933
C++: Improve join orders with QL CFG
...
Size estimates are slightly different when we enable the QL CFG, and
this caused bad join orders in these predicates.
2019-10-01 14:33:28 +02:00
Jonas Jensen
34b625900a
C++: Avoid extends Operation in LeapYear.qll
...
The `Operation` class is abstract, and extending it caused cached stages
to be recomputed all the way down to the AST. This meant that the leap
year queries evaluated their own copy of SSA and data flow.
2019-10-01 11:50:33 +02:00
Robert Marsh
a45a6e48f8
C++: remove side effect operands from non-reads
2019-09-30 12:00:55 -07:00
Robert Marsh
9f20cb83c3
C++/C#: Autoformat
2019-09-30 12:00:55 -07:00
Robert Marsh
fcfc11052a
C++: add QLDoc to side effect functions
2019-09-30 12:00:54 -07:00
Robert Marsh
8649978a43
C++: add indexes for specific side effects
2019-09-30 12:00:53 -07:00
Robert Marsh
24574be007
C++: add SizedBuffer side effect instructions
2019-09-30 12:00:53 -07:00
Robert Marsh
554d6390f7
C++: clean up after rebase
2019-09-30 12:00:53 -07:00
Robert Marsh
49088e7f09
C++: Fix formatting and dropped line
2019-09-30 12:00:53 -07:00
Robert Marsh
3d562243e4
C++: add side effects for outparams
2019-09-30 12:00:52 -07:00
Ziemowit Laski
a0cbd87d1f
[zlaski/memset-model] Rename predicate usage as per PR/1938.
2019-09-30 10:47:59 -07:00
Ziemowit Laski
ae169e9c33
[zlaski/memset-model] Add AliasFunction as base class of MemsetFunction; override predicates parameterNeverEscapes, parameterEscapesOnlyViaReturn and parameterIsAlwaysReturned.
2019-09-30 10:44:12 -07:00
Ziemowit Laski
aaa2a60b93
[zlaski/memset-model] Remove taint tracking from Memset.qll. Add Memset.qll to Models.qll.
2019-09-30 10:44:12 -07:00
Ziemowit Laski
144aacb09d
[zlaski/memset-model] New Memset.qll file.
2019-09-30 10:44:12 -07:00
Jonas Jensen
f417640da4
Merge pull request #1938 from dave-bartolomeo/dave/InNOut
...
C++: Rename predicates in `FunctionInputsAndOutputs.qll` and add QLDoc
2019-09-30 13:30:19 +02:00
Dave Bartolomeo
c1e5db0b96
C++ More PR feedback
2019-09-27 17:54:18 -07:00
Dave Bartolomeo
28aa7dcae2
C++: Fix PR feedback
2019-09-26 13:56:43 -07:00
Geoffrey White
18b28b1b57
Merge pull request #1959 from jbj/const-pmf
...
C++: Classify more expressions as constant
2019-09-26 17:13:27 +01:00
Anders Schack-Mulligen
f97958296d
Java/C++/C#: Sync.
2019-09-26 17:12:08 +02:00
semmle-qlci
24240177c5
Merge pull request #2023 from ian-semmle/agglit
...
Approved by jbj
2019-09-25 11:35:33 +01:00
Ian Lynagh
142e1cb9fb
C++: Implement AggregateLiteral.mayBeImpure()
2019-09-25 10:34:30 +01:00
Ziemowit Laski
a6d619cfe1
[zlaski/what-buffer-function] Rename CustomModels to Models
2019-09-24 18:17:34 -07:00
Ziemowit Laski
7e14e2a950
[zlaski/what-buffer-function] Rename references to BufferFunction to ArrayFunction.
2019-09-24 18:02:14 -07:00
Jonas Jensen
22e57a6559
Merge pull request #1860 from matt-gretton-dann/add-using-aliases
...
Add support for using aliases
2019-09-23 16:53:51 +02:00
Jonas Jensen
898976121b
Merge pull request #1987 from geoffw0/toomanyformat
...
CPP: WrongNumberOfFormatArguments.ql Fix
2019-09-23 16:05:11 +02:00
Robert Marsh
90c91a78f8
Merge pull request #1976 from pavgust/fix/hashcons-perf
...
C++: HashCons: Further performance improvements
2019-09-23 06:37:03 -07:00
Matthew Gretton-Dann
4606587fe8
C++: Apply style guide to TypedefType.qll
2019-09-23 13:57:50 +01:00
Matthew Gretton-Dann
af3b0d9e73
C++: Update stats.
2019-09-23 13:57:50 +01:00
Matthew Gretton-Dann
5468b8def7
C++: Add support for C++ using aliases
...
Previously these were identified as typedefs.
2019-09-23 13:57:50 +01:00
Geoffrey White
9100ab9360
CPP: Autoformat.
2019-09-20 15:30:59 +01:00
Geoffrey White
f7607313e7
CPP: Fix FPs.
2019-09-20 15:12:55 +01:00
Pavel Avgustinov
1c971d3f88
HashCons: Further performance improvements
...
The key insight here is that `HC_FieldCons` and `HC_Array` are
functionally determined by the things that arise in another
recursive call. Lifting them to their own predicate, therefore,
reduces nonlinearity and constrains the join order in a way that
cannot be asymptotically bad -- and, indeed, makes quite a big
difference in practice.
2019-09-20 12:00:33 +01:00
Robert Marsh
d3f2d8169e
Merge pull request #1967 from jbj/tainttracking-ir-2
...
C++: DefaultTaintTracking flow from a to a[i]
2019-09-19 15:00:29 -07:00