diff options
author | Samuel Arzt <arzt.samuel@live.de> | 2017-09-22 18:48:25 +0300 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2017-09-22 18:48:25 +0300 |
commit | 5705c262df6b6da588e65eb4d7224700e10d9c87 (patch) | |
tree | ebbfba2eee46d006cb3998ba2ee065af068472ce /src/ILCompiler.Compiler | |
parent | 6e9831a42ded8fd660f0298a663f69cc9389afc5 (diff) |
[ILVerify] Fix block re-verification possibly causing endless loop (#4575)
* Fixed block re-verification after stack merge possibly causing endless loop.
* Refactored BasicBlock.EndOffset to BasicBlock.ImportState.
Diffstat (limited to 'src/ILCompiler.Compiler')
-rw-r--r-- | src/ILCompiler.Compiler/src/IL/ILImporter.Scanner.cs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ILCompiler.Compiler/src/IL/ILImporter.Scanner.cs b/src/ILCompiler.Compiler/src/IL/ILImporter.Scanner.cs index 4a099c9a6..b30e9e7b4 100644 --- a/src/ILCompiler.Compiler/src/IL/ILImporter.Scanner.cs +++ b/src/ILCompiler.Compiler/src/IL/ILImporter.Scanner.cs @@ -34,10 +34,16 @@ namespace Internal.IL private class BasicBlock { // Common fields + public enum ImportState : byte + { + Unmarked, + IsPending + } + public BasicBlock Next; public int StartOffset; - public int EndOffset; + public ImportState State = ImportState.Unmarked; public bool TryStart; public bool FilterStart; |