1 using System; 2 using System.Runtime.CompilerServices; 3 4 class T { 5 6 static object o = null; 7 8 [MethodImpl (MethodImplOptions.NoInlining)] level3(int op)9 static void level3 (int op) { 10 level2 (op); 11 } 12 13 [MethodImpl (MethodImplOptions.NoInlining)] level2(int op)14 static void level2 (int op) { 15 level1 (op); 16 } 17 18 [MethodImpl (MethodImplOptions.NoInlining)] level1(int op)19 static void level1 (int op) { 20 level0 (op); 21 } 22 23 [MethodImpl (MethodImplOptions.NoInlining)] level0(int op)24 static void level0 (int op) { 25 switch (op) { 26 case 0: o = new T (); break; 27 case 1: throw new Exception (); break; 28 } 29 } 30 Main(string[] args)31 static void Main (string[] args) { 32 int count = 1010; 33 for (int i = 0; i < count; ++i) { 34 level3 (0); 35 } 36 for (int i = 0; i < count; ++i) { 37 try { 38 level3 (1); 39 } catch { 40 } 41 } 42 } 43 } 44 45