140 references to ControlFlowBranchSemantics
GenerateDocumentationAndConfigFiles (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics != ControlFlowBranchSemantics.Throw && 179branch.Semantics != ControlFlowBranchSemantics.Rethrow && 180current.FallThroughSuccessor.Semantics == ControlFlowBranchSemantics.StructuredExceptionHandling; 212case ControlFlowBranchSemantics.None: 213case ControlFlowBranchSemantics.ProgramTermination: 214case ControlFlowBranchSemantics.StructuredExceptionHandling: 215case ControlFlowBranchSemantics.Error: 219case ControlFlowBranchSemantics.Throw: 220case ControlFlowBranchSemantics.Rethrow: 225case ControlFlowBranchSemantics.Regular: 226case ControlFlowBranchSemantics.Return:
ILLink.RoslynAnalyzer (1)
DataFlow\LocalDataFlowVisitor.cs (1)
108if (block.Block.FallThroughSuccessor?.Semantics == ControlFlowBranchSemantics.Throw)
Microsoft.CodeAnalysis (56)
Operations\ControlFlowBranch.cs (2)
25ControlFlowBranchSemantics semantics, 47public ControlFlowBranchSemantics Semantics { get; }
Operations\ControlFlowGraphBuilder.BasicBlockBuilder.cs (1)
318public ControlFlowBranchSemantics Kind { get; set; }
Operations\ControlFlowGraphBuilder.cs (53)
303if (current.Ordinal == lastBlockOrdinal && branch.Kind != ControlFlowBranchSemantics.Throw && branch.Kind != ControlFlowBranchSemantics.Rethrow) 325case ControlFlowBranchSemantics.None: 326case ControlFlowBranchSemantics.ProgramTermination: 327case ControlFlowBranchSemantics.StructuredExceptionHandling: 328case ControlFlowBranchSemantics.Throw: 329case ControlFlowBranchSemantics.Rethrow: 330case ControlFlowBranchSemantics.Error: 334case ControlFlowBranchSemantics.Regular: 335case ControlFlowBranchSemantics.Return: 398blocks[@finally.LastBlockOrdinal].FallThrough.Kind == ControlFlowBranchSemantics.StructuredExceptionHandling; 713Debug.Assert(predecessor.FallThrough.Kind == ControlFlowBranchSemantics.Regular); 726Debug.Assert((block.BranchValue != null && !block.HasCondition) == (next.Kind == ControlFlowBranchSemantics.Return || next.Kind == ControlFlowBranchSemantics.Throw)); 728(next.Kind == ControlFlowBranchSemantics.ProgramTermination || 729next.Kind == ControlFlowBranchSemantics.Throw || 730next.Kind == ControlFlowBranchSemantics.Rethrow || 731next.Kind == ControlFlowBranchSemantics.Error || 732next.Kind == ControlFlowBranchSemantics.StructuredExceptionHandling)); 735if (next.Kind == ControlFlowBranchSemantics.StructuredExceptionHandling) 761next.Destination == null && next.Kind == ControlFlowBranchSemantics.StructuredExceptionHandling && 803if (next.Kind == ControlFlowBranchSemantics.StructuredExceptionHandling) 836Debug.Assert(next.Kind == ControlFlowBranchSemantics.Regular || 837next.Kind == ControlFlowBranchSemantics.Return || 838next.Kind == ControlFlowBranchSemantics.Throw || 839next.Kind == ControlFlowBranchSemantics.Rethrow || 840next.Kind == ControlFlowBranchSemantics.Error || 841next.Kind == ControlFlowBranchSemantics.ProgramTermination); 863if (!block.HasPredecessors && next.Kind == ControlFlowBranchSemantics.Return) 952if (next.Kind == ControlFlowBranchSemantics.StructuredExceptionHandling) 957Debug.Assert(next.Kind == ControlFlowBranchSemantics.Regular || 958next.Kind == ControlFlowBranchSemantics.Return || 959next.Kind == ControlFlowBranchSemantics.Throw || 960next.Kind == ControlFlowBranchSemantics.Rethrow || 961next.Kind == ControlFlowBranchSemantics.Error || 962next.Kind == ControlFlowBranchSemantics.ProgramTermination); 1105Debug.Assert(predecessorBranch.Kind == ControlFlowBranchSemantics.Regular); 1234Debug.Assert(branch.Kind == ControlFlowBranchSemantics.Regular); 1236branch.Kind = ControlFlowBranchSemantics.Error; 1377private static void LinkBlocks(BasicBlockBuilder prevBlock, BasicBlockBuilder nextBlock, ControlFlowBranchSemantics branchKind = ControlFlowBranchSemantics.Regular) 3295return new BasicBlockBuilder.Branch() { Destination = destination, Kind = ControlFlowBranchSemantics.Regular }; 3718continueDispatchBlock.FallThrough.Kind = ControlFlowBranchSemantics.StructuredExceptionHandling; 3780continueDispatchBlock.FallThrough.Kind = ControlFlowBranchSemantics.StructuredExceptionHandling; 3851LinkBlocks(CurrentBasicBlock, _exit, returnedValue is null ? ControlFlowBranchSemantics.Regular : ControlFlowBranchSemantics.Return); 3952Debug.Assert(current.FallThrough.Kind == ControlFlowBranchSemantics.None); 3954current.FallThrough.Kind = exception == null ? ControlFlowBranchSemantics.Rethrow : ControlFlowBranchSemantics.Throw; 4129endOfFinally.FallThrough.Kind = ControlFlowBranchSemantics.StructuredExceptionHandling; 4411endOfFinally.FallThrough.Kind = ControlFlowBranchSemantics.StructuredExceptionHandling; 5719Debug.Assert(current.FallThrough.Kind == ControlFlowBranchSemantics.None); 5720current.FallThrough.Kind = ControlFlowBranchSemantics.ProgramTermination;
Microsoft.CodeAnalysis.Analyzers (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics != ControlFlowBranchSemantics.Throw && 179branch.Semantics != ControlFlowBranchSemantics.Rethrow && 180current.FallThroughSuccessor.Semantics == ControlFlowBranchSemantics.StructuredExceptionHandling; 212case ControlFlowBranchSemantics.None: 213case ControlFlowBranchSemantics.ProgramTermination: 214case ControlFlowBranchSemantics.StructuredExceptionHandling: 215case ControlFlowBranchSemantics.Error: 219case ControlFlowBranchSemantics.Throw: 220case ControlFlowBranchSemantics.Rethrow: 225case ControlFlowBranchSemantics.Regular: 226case ControlFlowBranchSemantics.Return:
Microsoft.CodeAnalysis.AnalyzerUtilities (17)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\BranchWithInfo.cs (3)
33kind: ControlFlowBranchSemantics.Regular, 46ControlFlowBranchSemantics kind, 64public ControlFlowBranchSemantics Kind { get; }
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (3)
720case ControlFlowBranchSemantics.Return: 724case ControlFlowBranchSemantics.Throw: 725case ControlFlowBranchSemantics.Rethrow:
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics != ControlFlowBranchSemantics.Throw && 179branch.Semantics != ControlFlowBranchSemantics.Rethrow && 180current.FallThroughSuccessor.Semantics == ControlFlowBranchSemantics.StructuredExceptionHandling; 212case ControlFlowBranchSemantics.None: 213case ControlFlowBranchSemantics.ProgramTermination: 214case ControlFlowBranchSemantics.StructuredExceptionHandling: 215case ControlFlowBranchSemantics.Error: 219case ControlFlowBranchSemantics.Throw: 220case ControlFlowBranchSemantics.Rethrow: 225case ControlFlowBranchSemantics.Regular: 226case ControlFlowBranchSemantics.Return:
Microsoft.CodeAnalysis.CodeStyle (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics != ControlFlowBranchSemantics.Throw && 179branch.Semantics != ControlFlowBranchSemantics.Rethrow && 180current.FallThroughSuccessor.Semantics == ControlFlowBranchSemantics.StructuredExceptionHandling; 212case ControlFlowBranchSemantics.None: 213case ControlFlowBranchSemantics.ProgramTermination: 214case ControlFlowBranchSemantics.StructuredExceptionHandling: 215case ControlFlowBranchSemantics.Error: 219case ControlFlowBranchSemantics.Throw: 220case ControlFlowBranchSemantics.Rethrow: 225case ControlFlowBranchSemantics.Regular: 226case ControlFlowBranchSemantics.Return:
Microsoft.CodeAnalysis.ResxSourceGenerator (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics != ControlFlowBranchSemantics.Throw && 179branch.Semantics != ControlFlowBranchSemantics.Rethrow && 180current.FallThroughSuccessor.Semantics == ControlFlowBranchSemantics.StructuredExceptionHandling; 212case ControlFlowBranchSemantics.None: 213case ControlFlowBranchSemantics.ProgramTermination: 214case ControlFlowBranchSemantics.StructuredExceptionHandling: 215case ControlFlowBranchSemantics.Error: 219case ControlFlowBranchSemantics.Throw: 220case ControlFlowBranchSemantics.Rethrow: 225case ControlFlowBranchSemantics.Regular: 226case ControlFlowBranchSemantics.Return:
Microsoft.CodeAnalysis.Workspaces (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics != ControlFlowBranchSemantics.Throw && 179branch.Semantics != ControlFlowBranchSemantics.Rethrow && 180current.FallThroughSuccessor.Semantics == ControlFlowBranchSemantics.StructuredExceptionHandling; 212case ControlFlowBranchSemantics.None: 213case ControlFlowBranchSemantics.ProgramTermination: 214case ControlFlowBranchSemantics.StructuredExceptionHandling: 215case ControlFlowBranchSemantics.Error: 219case ControlFlowBranchSemantics.Throw: 220case ControlFlowBranchSemantics.Rethrow: 225case ControlFlowBranchSemantics.Regular: 226case ControlFlowBranchSemantics.Return:
Roslyn.Diagnostics.Analyzers (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (11)
178continueDispatchAfterFinally[current.EnclosingRegion] = branch.Semantics != ControlFlowBranchSemantics.Throw && 179branch.Semantics != ControlFlowBranchSemantics.Rethrow && 180current.FallThroughSuccessor.Semantics == ControlFlowBranchSemantics.StructuredExceptionHandling; 212case ControlFlowBranchSemantics.None: 213case ControlFlowBranchSemantics.ProgramTermination: 214case ControlFlowBranchSemantics.StructuredExceptionHandling: 215case ControlFlowBranchSemantics.Error: 219case ControlFlowBranchSemantics.Throw: 220case ControlFlowBranchSemantics.Rethrow: 225case ControlFlowBranchSemantics.Regular: 226case ControlFlowBranchSemantics.Return: