AndreiDiaconu1
53ebe23db6
Better retrieval for the GetEnumerator call
2019-09-09 12:33:19 +01:00
Tom Hvitved
77d7db323d
Merge pull request #1895 from calumgrant/cs/date-queries
...
C#: Tidy up cs/unsafe-year-construction and cs/mishandling-japanese-era
2019-09-09 11:24:49 +02:00
Jonas Jensen
d51e5212fb
Merge remote-tracking branch 'upstream/master' into dataflow-TTwo
...
Conflicts:
cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll
cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll
cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll
cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll
cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll
cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll
cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll
cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll
cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll
cpp/ql/test/library-tests/dataflow/fields/flow.expected
csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll
csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll
csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll
csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll
csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll
java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl.qll
java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl2.qll
java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl3.qll
java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl4.qll
java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl5.qll
2019-09-08 21:08:43 +02:00
AndreiDiaconu1
320cd6b96c
More PR fixes
2019-09-06 18:10:54 +01:00
AndreiDiaconu1
765414430d
More PR fixes
2019-09-06 18:10:54 +01:00
AndreiDiaconu1
9ecbb4a3f3
More fixes for the PR comments
2019-09-06 18:10:54 +01:00
AndreiDiaconu1
fe3645f26d
Fix some PR comments
2019-09-06 18:09:15 +01:00
AndreiDiaconu1
db213bbf80
Fixed sanity checks
...
The foreach was erroneously labelling the `True` and `False` edges as backedges.
Added a case for the compiler generated while in the predicate `getInstructionBackEdgeSuccessor/2`
from the file `IRConstruction.qll` so that only the edges from inside the body are labeled as back edges.
2019-09-06 18:09:15 +01:00
AndreiDiaconu1
46d7b9e3bf
Lock stmt
...
Added support for the lock stmt
Added a test case and updated the expected output
2019-09-06 18:09:15 +01:00
AndreiDiaconu1
4dd548bfa2
Foreach stmt
...
Addded support for the foreach stmt (for now only the "canonical" desugaring).
Added a test and updated the expected output.
2019-09-06 18:09:15 +01:00
AndreiDiaconu1
a5ec763035
Delegate creation and call
...
Added support for delegate creation and call.
Added a test case and updated the expected output.
2019-09-06 18:08:03 +01:00
AndreiDiaconu1
331707f3a3
Framework for the translation of compiler elements
...
Added a framework for the translation of compiler generated elements, so that the process of adding a new desugaring process is almost mechanical.
The files in `internal` serve as the superclasses for all the compiler generated elements.
The file `Common.qll` captures common patterns for the compiler generated code to improve code sharing (by pattern I mean an element that appears in multiple desugarings). For example the `try...finally` pattern appears in the desugaring process of both the `lock` and the `foreach` stmts, so a class the provides a blueprint for this pattern is exposed. Several other patterns are present.
The expected output has also been updated (after a rebase) and it should be ignored.
2019-09-06 18:08:03 +01:00
AndreiDiaconu1
80b7512fe2
Initial restructure
...
The `raw/internal` folder has been restructured to better enhance code sharing between compiler generated elements and AST generated elements.
The translated calls classes have been refactored to better fit the C# library.
A new folder has been added, `common` that provides blueprints for the classes that deal with translations of calls, declarations, exprs and conditions.
Several `TranslatedX.qll` files have been modified so that they use those blueprint classes.
2019-09-06 18:08:03 +01:00
Calum Grant
f9b99ae245
C#: Adjust date query severity and add precisions. Tidy up tags.
2019-09-06 16:44:29 +01:00
Anders Schack-Mulligen
343230402a
C#: Autoformat.
2019-09-06 09:04:16 +02:00
Jonas Jensen
9c9b7ac651
C#/C++/Java: Revert AccessPathNil.toString changes
...
This caused too many `*.expected` files to change, also in our internal
repo.
2019-09-02 15:59:36 +02:00
Jonas Jensen
a98992f0f9
C#/C++/Java: distinguish toString of nil from cons
2019-09-02 14:22:03 +02:00
Jonas Jensen
cdede8744f
C#/C++/Java: Prettier PartialAccessPath.toString
2019-09-02 14:05:50 +02:00
Jonas Jensen
c3bc9f8575
C#/C++/Java: Unbreak partial data flow support
...
Partial data flow had a semantic merge conflict with this branch. The
problem is that partial data flow doesn't (and shouldn't) cause the
initial pruning steps to run, but the length-2 access paths depend on
the `consCand` information that comes from that initial pruning. The
solution is to restore the old `AccessPath` class, now called
`PartialAccessPath` for use only by partial data flow.
With this change, partial data flow will in some cases allow more field
flow than non-partial data flow.
2019-09-02 14:02:39 +02:00
Jonas Jensen
dec0c3a0ee
C#/C++/Java: Make AccessPath abstract
...
This was requested by @hvitved in code review. There is no difference in
the generated DIL.
2019-09-02 13:14:30 +02:00
Jonas Jensen
b1be123e31
C#/C++/Java: Prettier AccessPath.toString
...
The `ppReprType` predicate should now be `none()` instead of `result=""`
to signal that there is nothing to print. That seems clearer to me.
2019-09-02 13:14:20 +02:00
Jonas Jensen
b2c94cc6b4
C++/C#/Java: Restore the AccessPathCons class
2019-09-02 13:14:13 +02:00
Jonas Jensen
fbe34015f3
C++/C#/Java: AccessPath class names reflect length
...
One -> ConsNil
Two -> ConsCons
2019-09-02 13:13:59 +02:00
Jonas Jensen
e8006bb2cc
C++/C#/Java: data flow AccessPath up to length 2
...
This commit does not include updates to test results.
2019-09-02 13:13:46 +02:00
semmle-qlci
0cf872ed32
Merge pull request #1846 from hvitved/csharp/autoformat
...
Approved by jbj
2019-09-02 08:31:43 +01:00
Tom Hvitved
675255755b
C#: Speedup Completion::isValidFor()
2019-09-01 10:34:52 +02:00
Tom Hvitved
508055fdc8
C#: Add a few pragma[nomagic]
2019-09-01 10:34:51 +02:00
Tom Hvitved
1e7ee8ddad
C#: Loop unrolling for foreach statements
2019-09-01 10:34:51 +02:00
Tom Hvitved
bb735c0220
C#: Teach guards library about collections
2019-09-01 10:34:51 +02:00
yh-semmle
f54545522e
Merge pull request #1759 from aschackmull/java/flow-exploration
...
Java/C++/C#: Add support for dataflow exploration by partial paths.
2019-08-30 17:00:17 -04:00
Tom Hvitved
3e716bf806
Merge pull request #1749 from calumgrant/cs/extractor-tidy
...
C#: Refactor extractor trap generation code
2019-08-30 15:44:35 +02:00
Anders Schack-Mulligen
5e6326d1d5
Java/C++/C#: Add support for dataflow exploration by partial paths.
2019-08-30 14:32:55 +02:00
semmle-qlci
394563de43
Merge pull request #1807 from hvitved/csharp/dataflow/barrier-guard
...
Approved by calumgrant
2019-08-30 12:40:25 +01:00
Calum Grant
ec61877ce8
Merge pull request #1805 from hvitved/csharp/dataflow/nested-fields
...
C#: Nested field flow
2019-08-30 10:26:10 +01:00
Calum Grant
0129b42c54
C#: Address review comments.
2019-08-30 10:11:01 +01:00
Calum Grant
40f56ff4b3
C#: Code tidy. Rename variables, delete dead code, format whitespace, improve comments.
2019-08-30 10:11:01 +01:00
Calum Grant
97522c506e
C#: Add more CIL consistency tests.
2019-08-30 10:11:01 +01:00
Calum Grant
b776421602
C#: Fix up tests. Fix cil_class, and add locations for constructed methods and types.
2019-08-30 10:11:01 +01:00
Tom Hvitved
9f59e385d1
C#: Autoformat
2019-08-30 09:53:50 +02:00
Tom Hvitved
6e7ef66642
C#: Revert to using GuardedDataFlowNode in TaintedPath.qll
2019-08-30 09:37:23 +02:00
Tom Hvitved
751985dcf2
C#: Address review comments
2019-08-30 09:37:23 +02:00
Tom Hvitved
ae5fb7f330
C#: Introduce BarrierGuards
2019-08-30 09:37:16 +02:00
Calum Grant
83d1e0eaa6
C#: Name DotNet::Namespace a declaration.
2019-08-29 18:12:58 +01:00
Calum Grant
5613769654
C#: Add NamespaceAccess, and make namespaces declarations.
2019-08-29 18:11:00 +01:00
Calum Grant
8aeeec01ff
C#: Add namespace_access_expr because of nameof(Namespace)
2019-08-29 18:11:00 +01:00
Tom Hvitved
982f90dc2b
C#: Refactor local data flow step relations
2019-08-29 13:35:19 +02:00
Calum Grant
d2bee79370
Merge pull request #1600 from AndreiDiaconu1/ircsharp
...
C#: Initial port of IR for C#
2019-08-29 09:26:34 +01:00
AndreiDiaconu1
deeff07322
Fixed unused predicate error
2019-08-28 15:50:39 +01:00
AndreiDiaconu1
489dbe1d01
Fixed errors
...
Added some new classes for built in operations that for the moment
have no effect (added to remove errors)
2019-08-28 14:23:42 +01:00
AndreiDiaconu1
05ae04df72
Synced files
2019-08-28 12:30:17 +01:00