Michael Nebel
|
f365477996
|
C#: Address review comments and update test output.
|
2022-02-04 11:48:12 +01:00 |
|
Tom Hvitved
|
6bb71f051b
|
Merge pull request #7791 from hvitved/dataflow/inline-local-flow-star
Data flow: Inline `local(Expr|Instruction)?(Flow|Taint)`
|
2022-02-03 09:02:43 +01:00 |
|
Arthur Baars
|
33b97f3e0c
|
Update synchronized files
|
2022-02-02 13:30:45 +01:00 |
|
Tom Hvitved
|
712418e5f8
|
Merge pull request #7781 from hvitved/dataflow/summary-stack-bottom-less-nonlinear
Data flow: Reduce non-linear recursion in `SummaryComponentStack::bottom`
|
2022-02-02 10:35:53 +01:00 |
|
Michael Nebel
|
7d1d2e792c
|
C#: Add specialized ql classes for each attribute kind and update AST printing.
|
2022-02-01 13:29:26 +01:00 |
|
Michael Nebel
|
e86ac73628
|
C#: Add attribute kind to the dbscheme for the attribute relation.
|
2022-02-01 13:29:26 +01:00 |
|
Nick Rolfe
|
990e07b986
|
Ruby/C#: add semmle.order attribute to edges in CFG tests
|
2022-01-31 20:08:24 +00:00 |
|
Tom Hvitved
|
f2352d8272
|
Data flow: Inline local(Expr|Instruction)?(Flow|Taint)
Computing a full transitive closure is often bad; by inlining all calls we are
providing more context to the QL optimizer.
|
2022-01-31 14:33:41 +01:00 |
|
Tom Hvitved
|
4bf07825a1
|
Data flow: Reduce non-linear recursion in SummaryComponentStack::bottom
Before:
```
[2022-01-28 09:45:34] (449s) Tuple counts for FlowSummaryImpl::Public::SummaryComponentStack::bottom_dispred#ff/2@i23#25a5eew4 after 432ms:
0 ~0% {2} r1 = SCAN FlowSummaryImpl::Public::SummaryComponentStack::length#ff#prev_delta OUTPUT In.0 'this', (In.1 - 1)
0 ~0% {2} r2 = JOIN r1 WITH FlowSummaryImpl::Public::SummaryComponentStack::drop#fff#prev ON FIRST 2 OUTPUT Rhs.2, Lhs.0 'this'
0 ~0% {2} r3 = JOIN r2 WITH FlowSummaryImpl::Public::SummaryComponentStack::head_dispred#ff#prev ON FIRST 1 OUTPUT Lhs.1 'this', Rhs.1 'result'
4171589 ~5% {2} r4 = SCAN FlowSummaryImpl::Public::SummaryComponentStack::length#ff#prev OUTPUT In.0 'this', (In.1 - 1)
4171589 ~0% {2} r5 = JOIN r4 WITH FlowSummaryImpl::Public::SummaryComponentStack::drop#fff#prev ON FIRST 2 OUTPUT Rhs.2, Lhs.0 'this'
0 ~0% {2} r6 = JOIN r5 WITH FlowSummaryImpl::Public::SummaryComponentStack::head_dispred#ff#prev_delta ON FIRST 1 OUTPUT Lhs.1 'this', Rhs.1 'result'
62238 ~0% {3} r7 = SCAN FlowSummaryImpl::Public::SummaryComponentStack::drop#fff#prev_delta OUTPUT In.2, In.0 'this', In.1
62238 ~8% {3} r8 = JOIN r7 WITH FlowSummaryImpl::Public::SummaryComponentStack::head_dispred#ff#prev ON FIRST 1 OUTPUT Lhs.1 'this', Lhs.2, Rhs.1 'result'
62238 ~5% {5} r9 = JOIN r8 WITH FlowSummaryImpl::Public::SummaryComponentStack::length#ff#prev ON FIRST 1 OUTPUT Lhs.0 'this', Lhs.1, Lhs.2 'result', Rhs.1, (Rhs.1 - 1)
10373 ~6% {5} r10 = SELECT r9 ON In.4 = In.1
10373 ~0% {2} r11 = SCAN r10 OUTPUT In.0 'this', In.2 'result'
10373 ~0% {2} r12 = r6 UNION r11
10373 ~0% {2} r13 = r3 UNION r12
10373 ~0% {2} r14 = r13 AND NOT FlowSummaryImpl::Public::SummaryComponentStack::bottom_dispred#ff#prev(Lhs.0 'this', Lhs.1 'result')
return r14
```
After:
```
[2022-01-28 09:52:48] (6s) Tuple counts for FlowSummaryImpl::Public::SummaryComponentStack::bottom#ff/2@i21#6243afwv after 5ms:
0 ~0% {2} r1 = JOIN FlowSummaryImpl::Public::SummaryComponentStack::bottom#ff#prev_delta WITH FlowSummaryImpl::Private::TConsSummaryComponentStack#fff#reorder_1_0_2#prev ON FIRST 1 OUTPUT Lhs.1 'result', Rhs.2 'this'
10373 ~3% {2} r2 = SCAN FlowSummaryImpl::Private::TConsSummaryComponentStack#fff#prev_delta OUTPUT In.1, In.2 'this'
10373 ~2% {2} r3 = JOIN r2 WITH FlowSummaryImpl::Public::SummaryComponentStack::bottom#ff#prev ON FIRST 1 OUTPUT Rhs.1 'result', Lhs.1 'this'
10373 ~2% {2} r4 = r1 UNION r3
10373 ~2% {2} r5 = r4 AND NOT FlowSummaryImpl::Public::SummaryComponentStack::bottom#ff#prev(Lhs.1 'this', Lhs.0 'result')
10373 ~0% {2} r6 = SCAN r5 OUTPUT In.1 'this', In.0 'result'
return r6
```
|
2022-01-28 13:00:04 +01:00 |
|
Nick Rolfe
|
cd5010fe11
|
C#: sync changes from Ruby to improve ordering of graph test output
|
2022-01-27 15:34:01 +00:00 |
|
Tom Hvitved
|
6975ade0ff
|
C#: Restrict stub logic to QL test DBs
|
2022-01-26 13:59:24 +01:00 |
|
Tom Hvitved
|
fdd787b89c
|
Merge pull request #7658 from hvitved/csharp/dataflow/no-negative-positions
C#: Get rid of negative parameter/argument data-flow positions
|
2022-01-25 09:01:44 +01:00 |
|
Tom Hvitved
|
6efa595478
|
Merge pull request #7688 from hvitved/dataflow/required-component-stack
Data flow: Restructure `RequiredSummaryComponentStack`
|
2022-01-24 15:10:08 +01:00 |
|
Tom Hvitved
|
64f19637d4
|
Address review comments
|
2022-01-24 13:33:18 +01:00 |
|
Tom Hvitved
|
9d89cace95
|
Merge pull request #7643 from michaelnebel/csharp/struct-improvements
C#: Struct (and to a minor extent anonymous types) improvements
|
2022-01-21 14:51:26 +01:00 |
|
Tom Hvitved
|
f9b906d1e2
|
C#: Update uses of RequiredSummaryComponentStack
|
2022-01-21 09:42:16 +01:00 |
|
Tom Hvitved
|
f1a2b21e44
|
Data flow: Restructure RequiredSummaryComponentStack
|
2022-01-21 09:42:16 +01:00 |
|
Tom Hvitved
|
cbea5eaeaa
|
C#: Simplify argument/parameter positions for captured variables
|
2022-01-20 17:08:12 +01:00 |
|
Michael Nebel
|
97d9985e0b
|
C#: Add support for flow via object initializer for anonymous types.
|
2022-01-20 13:12:19 +01:00 |
|
Erik Krogh Kristensen
|
4e8e3a7420
|
simplify expressions that could be type-casts
|
2022-01-20 10:41:35 +01:00 |
|
Michael Nebel
|
547f492be0
|
Merge pull request #7577 from michaelnebel/csharp/line-pragma
C#: Make support for Line span pragma
|
2022-01-20 09:51:57 +01:00 |
|
Tom Hvitved
|
128682b59e
|
C#: Replace Argument[-1] with Argument[Qualifier] in all flow summaries
|
2022-01-19 18:54:24 +01:00 |
|
Tom Hvitved
|
0990a1b404
|
C#: Get rid of negative parameter/argument data-flow positions
|
2022-01-19 17:14:37 +01:00 |
|
Michael Nebel
|
d7cd1cf0b9
|
C#: Address review comments.
|
2022-01-19 13:50:02 +01:00 |
|
Tom Hvitved
|
c8509cc382
|
C#: Introduce extractor mode to identify DBs created with codeql test run
|
2022-01-19 13:46:22 +01:00 |
|
Michael Nebel
|
55f787bcae
|
Merge pull request #7605 from michaelnebel/csharp/record-struct
C#: Support for record structs
|
2022-01-19 10:39:52 +01:00 |
|
Anders Schack-Mulligen
|
fff3b5c5b4
|
Dataflow: Add qldoc.
|
2022-01-18 10:39:55 +01:00 |
|
Anders Schack-Mulligen
|
71e39353ca
|
Dataflow: Sync.
|
2022-01-18 10:36:52 +01:00 |
|
Anders Schack-Mulligen
|
dfa79f6119
|
Dataflow: Sync.
|
2022-01-18 10:30:09 +01:00 |
|
Chris Smowton
|
2c37885f6e
|
Sync dataflow
|
2022-01-18 10:30:09 +01:00 |
|
Michael Nebel
|
93255dfe13
|
C#: Add QL library support for the Line span directive.
|
2022-01-18 09:32:14 +01:00 |
|
Owen Mansel-Chan
|
065043b311
|
Merge pull request #7588 from owen-mc/add-specific-needs-reference-predicates
Dataflow: Add language-specific NeedsReference predicates
|
2022-01-17 15:51:34 +00:00 |
|
Michael Nebel
|
b927aad6ed
|
C#: Address review comments related to record structs.
|
2022-01-17 16:16:18 +01:00 |
|
Michael Nebel
|
9770f09839
|
C#: Deprecate Record and introduce RecordClass instead. Also make flow summary support for record struct constructors.
|
2022-01-17 16:16:18 +01:00 |
|
Michael Nebel
|
55cb2aa160
|
C#: Use modifier to decide, if a type is a record like type and implement support for record struct types.
|
2022-01-17 16:16:18 +01:00 |
|
Tom Hvitved
|
2ecf0d3264
|
Merge pull request #7550 from michaelnebel/csharp/global-using
C#: Support for identifying whether a using directive is "global".
|
2022-01-14 20:03:18 +01:00 |
|
Michael Nebel
|
e09009cd8e
|
Merge pull request #7118 from michaelnebel/csharp-primary-ql-class
C#: PrimaryQlClass
|
2022-01-14 16:14:28 +01:00 |
|
Michael Nebel
|
8c6c8b0adb
|
C#: Remove un-needed ql doc comment.
|
2022-01-14 12:55:54 +01:00 |
|
Michael Nebel
|
6009d71e9a
|
C#: Add getAPrimaryQlClass override to UnknownExpr.
|
2022-01-14 10:41:44 +01:00 |
|
Tom Hvitved
|
6c20585fc7
|
C#: Eliminate bad magic optimization
```
[2022-01-14 08:57:14] (253s) Tuple counts for Stmt::getAChild#bbf/3@8dfbc66f after 1m53s:
4922010396 ~5% {3} r1 = JOIN ControlFlowElement::ControlFlowElement::getEnclosingCallable_dispred#ff_10#join_rhs WITH ControlFlowElement::ControlFlowElement::getEnclosingCallable_dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.1 'cfe', Rhs.1 'cfe', Lhs.0 'c'
1597068 ~2% {3} r2 = JOIN r1 WITH Element::Element::getAChild_dispred#ff ON FIRST 2 OUTPUT Lhs.0 'cfe', Lhs.2 'c', Lhs.1 'result'
return r2
```
|
2022-01-14 10:10:23 +01:00 |
|
Michael Nebel
|
c118d9bf6f
|
C#: Add support for the global modifier for using directives.
|
2022-01-14 10:10:22 +01:00 |
|
Anders Schack-Mulligen
|
0b24af901d
|
Merge pull request #7349 from aschackmull/dataflow/state
Dataflow: Add support for flow state
|
2022-01-14 09:12:38 +01:00 |
|
Owen Mansel-Chan
|
d41c55c69c
|
Add needed predicates for Ruby and C#
This was done manually.
|
2022-01-13 15:10:19 +00:00 |
|
Owen Mansel-Chan
|
2de6340ff5
|
Sync FlowSummaryImpl.qll
Done using sync-files.py
|
2022-01-13 15:09:25 +00:00 |
|
Anders Schack-Mulligen
|
c44cf29992
|
Merge pull request #7587 from owen-mc/add-default-taint-sanitizer-guard
Dataflow: Add default taint sanitizer guard
|
2022-01-13 14:44:55 +01:00 |
|
Anders Schack-Mulligen
|
f7cf327e71
|
Dataflow: Sync
|
2022-01-13 13:28:43 +01:00 |
|
Michael Nebel
|
85fc127c0a
|
C#: Fix BDD limit issue (thank you @jbj).
|
2022-01-13 12:46:56 +01:00 |
|
Michael Nebel
|
6b937a939b
|
C#: Add getAPrimaryQlClass overrides
|
2022-01-13 12:20:41 +01:00 |
|
Owen Mansel-Chan
|
8e8278764b
|
Add predicate defaultTaintSanitizerGuard for each language
This was done manually, as these files are not synced by sync-files.py.
|
2022-01-12 14:44:56 +00:00 |
|
Owen Mansel-Chan
|
c112980b81
|
Sync TaintTrackingImpl.qll
Done automatically using sync-files.py
|
2022-01-12 14:44:55 +00:00 |
|