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-c.il')
-rw-r--r--mcs/ilasm/tests/test-seh-c.il76
1 files changed, 76 insertions, 0 deletions
diff --git a/mcs/ilasm/tests/test-seh-c.il b/mcs/ilasm/tests/test-seh-c.il
new file mode 100644
index 00000000000..aeb7262ff31
--- /dev/null
+++ b/mcs/ilasm/tests/test-seh-c.il
@@ -0,0 +1,76 @@
+//
+// Test catch and filter blocks
+//
+// Author(s):
+// Jackson Harper (Jackson@LatitudeGeo.com)
+//
+// (C) 2003 Jackson Harper, All rights reserved
+//
+
+.assembly extern mscorlib { }
+.assembly 'test-seh-b' { }
+
+
+.class public T {
+
+ .field private static int32 exc_not_thrown
+ .field private static int32 flt_caught
+
+ .method public static specialname void .cctor ()
+ {
+ ldc.i4.0
+ stsfld int32 T::exc_not_thrown
+
+ ldc.i4.0
+ stsfld int32 T::flt_caught
+
+ ret
+ }
+
+ .method public static int32 Main ()
+ {
+ .entrypoint
+
+ .try {
+ ldc.i4.0
+ ldc.i4.0
+ div
+
+ ldc.i4.1
+ stsfld int32 T::exc_not_thrown
+
+ leave outer
+ } filter {
+ pop
+ ldc.i4.1
+ endfilter
+ } {
+ ldc.i4.1
+ stsfld int32 T::flt_caught
+ leave outer
+ }
+
+ outer:
+ ldsfld int32 T::exc_not_thrown
+ brtrue fail
+
+ ldsfld int32 T::flt_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
+
+ }
+
+}
+
+