Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/ilasm/tests/test-seh-a.il')
-rw-r--r--mcs/ilasm/tests/test-seh-a.il76
1 files changed, 76 insertions, 0 deletions
diff --git a/mcs/ilasm/tests/test-seh-a.il b/mcs/ilasm/tests/test-seh-a.il
new file mode 100644
index 00000000000..63f69178672
--- /dev/null
+++ b/mcs/ilasm/tests/test-seh-a.il
@@ -0,0 +1,76 @@
+//
+// Test catch and finally blocks
+//
+// Author(s):
+// Jackson Harper (Jackson@LatitudeGeo.com)
+//
+// (C) 2003 Jackson Harper, All rights reserved
+//
+
+.assembly extern mscorlib { }
+.assembly extern System { }
+.assembly 'test-seh-a' { }
+
+
+.class public T {
+
+ .field private static int32 exc_caught
+ .field private static int32 fin_caught
+
+ .method public static specialname void .cctor ()
+ {
+ ldc.i4.0
+ stsfld int32 T::exc_caught
+
+ ldc.i4.0
+ stsfld int32 T::fin_caught
+
+ ret
+ }
+
+ .method public static int32 Main ()
+ {
+ .entrypoint
+
+ .try {
+ .try {
+ ldstr "#jibba!!jabba"
+ newobj void [System]System.Uri::.ctor (string)
+ leave outer
+ } catch [mscorlib]System.Exception {
+ ldc.i4.1
+ stsfld int32 T::exc_caught
+ leave outer
+ }
+ leave outer
+ } finally {
+ ldc.i4.1
+ stsfld int32 T::fin_caught
+ endfinally
+ }
+
+
+ outer:
+ ldsfld int32 T::exc_caught
+ brfalse fail
+
+ ldsfld int32 T::fin_caught
+ brfalse fail
+
+ pass:
+ ldstr "PASS"
+ call void [mscorlib]System.Console::WriteLine (string)
+ ldc.i4.0
+ ret
+
+ fail:
+ ldstr "FAIL"
+ call void [mscorlib]System.Console::WriteLine (string)
+ ldc.i4.1
+ ret
+
+ }
+
+}
+
+