1 write to FirstBlockOrdinal
Microsoft.CodeAnalysis (1)
Operations\ControlFlowRegion.cs (1)
75FirstBlockOrdinal = firstBlockOrdinal;
73 references to FirstBlockOrdinal
ILLink.RoslynAnalyzer (1)
DataFlow\ControlFlowGraphProxy.cs (1)
232 new BlockProxy (ControlFlowGraph.Blocks[region.Region.FirstBlockOrdinal]);
Microsoft.CodeAnalysis (12)
Operations\ControlFlowGraph.cs (1)
47Debug.Assert(root.FirstBlockOrdinal == 0);
Operations\ControlFlowGraphBuilder.cs (4)
381@finally.FirstBlockOrdinal, 472toVisit.Add(blocks[@catch.FirstBlockOrdinal]); 476BasicBlockBuilder entryBlock = blocks[@catch.FirstBlockOrdinal]; 478Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
Operations\ControlFlowGraphBuilder.RegionBuilder.cs (1)
356for (int i = firstBlockWithoutRegion; i < region.FirstBlockOrdinal; i++)
Operations\ControlFlowRegion.cs (6)
99Debug.Assert(NestedRegions[0].FirstBlockOrdinal == firstBlockOrdinal); 101Debug.Assert(NestedRegions[0].LastBlockOrdinal + 1 == NestedRegions[1].FirstBlockOrdinal); 107Debug.Assert(NestedRegions[0].FirstBlockOrdinal == firstBlockOrdinal); 113Debug.Assert(previousLast + 1 == r.FirstBlockOrdinal); 134Debug.Assert(previousLast < r.FirstBlockOrdinal); 149return FirstBlockOrdinal <= destinationOrdinal && LastBlockOrdinal >= destinationOrdinal;
Microsoft.CodeAnalysis.AnalyzerUtilities (19)
src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\BasicBlockExtensions.cs (3)
124var ordinalToCompare = first ? enclosingRegion.FirstBlockOrdinal : enclosingRegion.LastBlockOrdinal; 165if (basicBlock.EnclosingRegion?.FirstBlockOrdinal != basicBlock.Ordinal) 174if (enclosingRegion?.FirstBlockOrdinal != basicBlock.Ordinal)
src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\ControlFlowRegionExtensions.cs (3)
12=> controlFlowRegion.FirstBlockOrdinal <= nestedRegion.FirstBlockOrdinal && 17for (var i = controlFlowRegion.FirstBlockOrdinal; i <= controlFlowRegion.LastBlockOrdinal; i++)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysis.cs (12)
235p => p >= tryRegion.FirstBlockOrdinal && 279Debug.Assert(block.EnclosingRegion.FirstBlockOrdinal == block.Ordinal); 299block.EnclosingRegion.EnclosingRegion.FirstBlockOrdinal == block.Ordinal) 353for (int i = finallyRegion.FirstBlockOrdinal; i <= finallyRegion.LastBlockOrdinal; i++) 497if (catchRegion == null || sourceBlock.Ordinal >= catchRegion.FirstBlockOrdinal) 513var catchBlock = cfg.Blocks[catchRegion.FirstBlockOrdinal]; 593if (block.EnclosingRegion?.FirstBlockOrdinal == block.Ordinal) 654var destination = cfg.Blocks[firstFinally.FirstBlockOrdinal]; 675successor = new BranchWithInfo(destination: cfg.Blocks[finallyRegion.FirstBlockOrdinal]); 699if (finallyRegion.LastBlockOrdinal < catchRegion.FirstBlockOrdinal) 701var successor = new BranchWithInfo(destination: cfg.Blocks[catchRegion.FirstBlockOrdinal]); 718worklist.Add(catchRegion.FirstBlockOrdinal);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (1)
3795return tryRegion.FirstBlockOrdinal <= pendingThrow.BasicBlockOrdinal && tryRegion.LastBlockOrdinal >= pendingThrow.BasicBlockOrdinal;
Microsoft.CodeAnalysis.CodeStyle (12)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowRegionExtensions.cs (1)
10=> region.FirstBlockOrdinal <= destinationOrdinal && region.LastBlockOrdinal >= destinationOrdinal;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (7)
133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 280var previousAnalysisData = analyzer.GetCurrentAnalysisData(blocks[@finally.FirstBlockOrdinal]); 290@finally.FirstBlockOrdinal, 326var currentAnalysisData = analyzer.GetCurrentAnalysisData(blocks[fromRegion.FirstBlockOrdinal]); 384toVisit.Add(@catch.FirstBlockOrdinal); 388var entryBlock = blocks[@catch.FirstBlockOrdinal]; 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (4)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 397var firstBasicBlockInOutermostRegion = ControlFlowGraph.Blocks[containingTryCatchFinallyRegion.FirstBlockOrdinal]; 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))
Microsoft.CodeAnalysis.Test.Utilities (17)
Compilation\ControlFlowGraphVerifier.cs (9)
145Assert.Equal(0, currentRegion.FirstBlockOrdinal); 399if (region.FirstBlockOrdinal != block.Ordinal) 739adjustAndGetEntryState(entryStates, blocks[region.EnclosingRegion.NestedRegions[1].FirstBlockOrdinal], state); 748adjustAndGetEntryState(entryStates, blocks[@finally.FirstBlockOrdinal], state); 1306for (int i = lastBlockOrdinal; i >= region.FirstBlockOrdinal; i--) 1320Debug.Assert(firstBlockOrdinal >= region.FirstBlockOrdinal); 1415if (region.FirstBlockOrdinal != firstBlockOrdinal) 1436Assert.Equal(firstBlockOrdinal, region.EnclosingRegion.FirstBlockOrdinal); 1442Assert.Equal(firstBlockOrdinal, region.EnclosingRegion.FirstBlockOrdinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowRegionExtensions.cs (1)
10=> region.FirstBlockOrdinal <= destinationOrdinal && region.LastBlockOrdinal >= destinationOrdinal;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (7)
133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 280var previousAnalysisData = analyzer.GetCurrentAnalysisData(blocks[@finally.FirstBlockOrdinal]); 290@finally.FirstBlockOrdinal, 326var currentAnalysisData = analyzer.GetCurrentAnalysisData(blocks[fromRegion.FirstBlockOrdinal]); 384toVisit.Add(@catch.FirstBlockOrdinal); 388var entryBlock = blocks[@catch.FirstBlockOrdinal]; 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
Microsoft.CodeAnalysis.Workspaces (12)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowRegionExtensions.cs (1)
10=> region.FirstBlockOrdinal <= destinationOrdinal && region.LastBlockOrdinal >= destinationOrdinal;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (7)
133if (current.Ordinal == current.EnclosingRegion.FirstBlockOrdinal) 280var previousAnalysisData = analyzer.GetCurrentAnalysisData(blocks[@finally.FirstBlockOrdinal]); 290@finally.FirstBlockOrdinal, 326var currentAnalysisData = analyzer.GetCurrentAnalysisData(blocks[fromRegion.FirstBlockOrdinal]); 384toVisit.Add(@catch.FirstBlockOrdinal); 388var entryBlock = blocks[@catch.FirstBlockOrdinal]; 390Debug.Assert(entryBlock.Ordinal == @catch.NestedRegions[0].FirstBlockOrdinal);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (4)
354basicBlock.EnclosingRegion.FirstBlockOrdinal != basicBlock.Ordinal) 361while (outermostEnclosingRegionStartingBlock.EnclosingRegion?.FirstBlockOrdinal == basicBlock.Ordinal) 397var firstBasicBlockInOutermostRegion = ControlFlowGraph.Blocks[containingTryCatchFinallyRegion.FirstBlockOrdinal]; 402foreach (var (symbol, write) in GetOrCreateSymbolWritesInBlockRange(containingTryCatchFinallyRegion.FirstBlockOrdinal, basicBlock.Ordinal - 1, cancellationToken))