+2001-12-29 Richard Henderson <rth@redhat.com>
+
+ * g++.dg/eh/loop1.C: New.
+
2001-12-29 Nathan Sidwell <nathan@codesourcery.com>
* g++.dg/template/crash1.C: New test.
--- /dev/null
+// Verify that loop optimization takes into account the exception edge
+// and does not increment I before the call.
+// { dg-do run }
+// { dg-options "-O2" }
+
+extern "C" void abort();
+static void bar(char *);
+
+static void foo(unsigned long element_count, char *ptr)
+{
+ unsigned long i;
+ try {
+ for (i = 0; i != element_count; i++, ptr += 8)
+ bar (ptr);
+ }
+ catch (...) {
+ if (i)
+ abort ();
+ }
+}
+
+static void bar(char *)
+{
+ throw 1;
+}
+
+int main()
+{
+ foo(2, 0);
+}