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