Tom Hvitved
a5dfc10197
C#: Add tests for custom null guards
2018-11-08 20:21:34 +01:00
Tom Hvitved
5921a9ea51
C#: Teach guards library about assertions
2018-11-08 20:21:34 +01:00
Tom Hvitved
0fb7ddc956
C#: Add assertion guard tests
2018-11-08 20:21:34 +01:00
Tom Hvitved
5d8162cc8b
C#: Improve AccessorCall::getArgument()
...
- Handle tuple assignments.
- Handle compound `+=` assignments.
2018-11-07 11:30:04 +01:00
Tom Hvitved
7423916214
C#: Add tests for calls to accessors with arguments
2018-11-07 10:38:36 +01:00
Tom Hvitved
2d25a04a2e
C#: Add test for guard implications logic
2018-11-05 16:47:10 +01:00
Tom Hvitved
f5e6b79add
C#: Address review comments
2018-11-05 16:14:15 +01:00
Tom Hvitved
665173692c
C#: Fix whitespaces
2018-10-30 13:15:46 +01:00
Tom Hvitved
e76e448953
C#: Unify logic in guards library
...
Unify the logic for Boolean/nullness/matching guards.
2018-10-30 13:15:15 +01:00
Tom Hvitved
a3d74b00e0
C#: Address review comments
2018-10-25 14:15:09 +02:00
Tom Hvitved
515d6b6d26
C#: Detect constantly failing assertions in the CFG
2018-10-19 14:07:40 +02:00
Tom Hvitved
acea4ddfc4
C#: Introduce control flow exit completions
2018-10-19 14:07:35 +02:00
Tom Hvitved
0c1db6afc3
C#: Add more CFG tests
...
Added tests for exits inside `try` statements and constantly failing assertions.
2018-10-19 14:05:30 +02:00
Tom Hvitved
b233961a9a
C#: Add assertion tests
2018-10-19 14:05:30 +02:00
Tom Hvitved
603c3d6a43
C#: Teach null-guards library about pattern matching
2018-10-15 10:55:16 +02:00
semmle-qlci
76af2d2e3d
Merge pull request #249 from hvitved/csharp/cfg/boolean-splitting
...
Approved by calumgrant
2018-10-11 20:14:37 +01:00
Tom Hvitved
98db3f89c2
C#: Extend pre-SSA consistency tests
2018-10-11 13:59:06 +02:00
Tom Hvitved
e8cd99335a
C#: Simple Boolean control flow graph splitting
2018-09-28 14:59:39 +02:00
Tom Hvitved
d0f63ca303
C#: Introduce SplitKind class
2018-09-28 14:59:39 +02:00
Tom Hvitved
05e00ab05b
C#: Fix whitespaces
2018-09-28 14:59:39 +02:00
Tom Hvitved
a48d77f7b8
C#: Add internal PreSsa library
2018-09-28 14:59:38 +02:00
Tom Hvitved
b8caa117f1
C#: Add internal PreBasicBlocks library
2018-09-28 14:59:38 +02:00
Dave Bartolomeo
1f36f5552f
Normalize all text files to LF
...
Use `* text=auto eol=lf`
2018-09-23 16:24:31 -07:00
Dave Bartolomeo
26abf5d4a2
Force LF for basically everything.
2018-09-23 16:24:31 -07:00
Tom Hvitved
70e713122f
Merge branch 'rc/1.18' into merge-rc
2018-09-11 09:11:03 +02:00
calum
ecb3efba34
C#: Fix merge conflicts.
2018-09-07 18:12:28 +01:00
calum
9ec2172dca
C#: Fix CFG for unknown expressions, and add a test that also covers object initializer lists fixed by the extractor.
2018-09-07 17:56:44 +01:00
Tom Hvitved
04f29951a5
Merge pull request #98 from calumgrant/cs/literal-conversion-fix
...
C#: Regression test for extractor
2018-09-07 08:42:00 +02:00
calum
d5eacf8c13
C#: Change expected output. Address review comments.
2018-09-06 18:20:01 +01:00
calum
cff00506ba
C#: Implementation of case ... when ...: which was not previously handled. Move getCondition to CaseStmt. Implement the CFG and tests.
2018-09-05 17:47:31 +01:00
calum
8c2d773866
C#: Extractor test for join ... into
2018-09-05 17:19:04 +01:00
calum
7a77740979
C#: Extractor tests for
...
- While statements
- Object initializers
2018-09-05 17:19:04 +01:00
Tom Hvitved
42faabc552
C#: Rename and restructure control flow graph entities
...
Follow a naming structure similar to the data flow library:
- `ControlFlowNode` -> `ControlFlow::Node`.
- `CallableEntryNode` -> `ControlFlow::Nodes::EntryNode`.
- `CallableExitNode` -> `ControlFlow::Nodes::ExitNode`.
- `ControlFlowEdgeType` -> `ControlFlow::SuccessorType`.
- `ControlFlowEdgeSuccessor` -> `ControlFlow::SuccessorTypes::NormalSuccessor`.
- `ControlFlowEdgeConditional -> ControlFlow::SuccessorTypes::ConditionalSuccessor`.
- `ControlFlowEdgeBoolean` -> `ControlFlow::SuccessorTypes::BooleanSuccessor`.
- `ControlFlowEdgeNullness` -> `ControlFlow::SuccessorTypes::NullnessSuccessor`.
- `ControlFlowEdgeMatching` -> `ControlFlow::SuccessorTypes::MatchingSuccessor`.
- `ControlFlowEdgeEmptiness` -> `ControlFlow::SuccessorTypes::EmptinessSuccessor`.
- `ControlFlowEdgeReturn` -> `ControlFlow::SuccessorTypes::ReturnSuccessor`.
- `ControlFlowEdgeBreak` -> `ControlFlow::SuccessorTypes::BreakSuccessor`.
- `ControlFlowEdgeContinue` -> `ControlFlow::SuccessorTypes::ContinueSuccessor`.
- `ControlFlowEdgeGotoLabel` -> `ControlFlow::SuccessorTypes::GotoLabelSuccessor`.
- `ControlFlowEdgeGotoCase` -> `ControlFlow::SuccessorTypes::GotoCaseSuccessor`.
- `ControlFlowEdgeGotoDefault` -> `ControlFlow::SuccessorTypes::GotoDefaultSuccessor`.
- `ControlFlowEdgeException` -> `ControlFlow::SuccessorTypes::ExceptionSuccessor`
2018-09-05 14:20:26 +02:00
Tom Hvitved
124a00ba10
C#: Update expected output in SSA tests
2018-09-04 20:15:33 +02:00
Tom Hvitved
9a7746e9b5
C#: Fix bug in BaseSsa library
2018-09-04 15:16:20 +02:00
Tom Hvitved
81122ca7a4
C#: Add test that reveals bug in BaseSsa implementation
2018-09-04 13:58:59 +02:00
calum
41382dd732
C#: A regression test for extractor crash when wrong expression type is used for a literal.
2018-08-23 17:45:40 +01:00
Tom Hvitved
4560468cb8
C#: Update expected test output
2018-08-21 08:57:03 +02:00
Tom Hvitved
b1451b079e
C#: Add CFG test that mixes finally splitting and catch splitting
2018-08-20 13:10:09 +02:00
Tom Hvitved
91ed111735
C#: Improve CFG for exception handlers
...
Use generic CFG splitting to add a new type of split for exception handlers,
`ExceptionHandlerSplit`, which tags eachs node belonging to a `catch` clause
with the type of exception being caught. This allows for a more accurate CFG
for `try-catch` statements, where exception filters are handled properly.
2018-08-20 13:08:28 +02:00
Tom Hvitved
a705b3afa5
C#: Generic control flow graph splitting
...
Refactor existing logic for splitting control flow nodes belonging to a `finally`
block. A `Split` defines (1) when to enter the split, (2) when to stay in the split,
and (3) when to leave the split. With only these definitions, control flow splitting
is achieved by tagging each control flow element with the set of splits that apply
to it.
2018-08-20 13:04:29 +02:00
Tom Hvitved
1365761f72
C#: Change toString() for FinallySplitControlFlowNode
2018-08-20 09:41:54 +02:00
Tom Hvitved
0edd0057fc
C#: Do not use @kind graph in ql tests
2018-08-17 17:55:13 +02:00
Tom Hvitved
f7a515c8e9
C#: Prune CFG for obviously impossible nullness/matching edges
2018-08-06 13:45:23 -07:00
Tom Hvitved
9a1e148e85
C#: Various minor CFG bug fixes
2018-08-06 13:45:23 -07:00
Tom Hvitved
b161ff195b
C#: Additional CFG tests
2018-08-06 13:45:23 -07:00
Pavel Avgustinov
b55526aa58
QL code and tests for C#/C++/JavaScript.
2018-08-02 17:53:23 +01:00