except.c (add_new_handler): fix bug in finding last region handler.
authorAndrew MacLeod <amacleod@cygnus.com>
Wed, 17 Jun 1998 13:29:22 +0000 (13:29 +0000)
committerAndrew Macleod <amacleod@gcc.gnu.org>
Wed, 17 Jun 1998 13:29:22 +0000 (13:29 +0000)
Wed Jun 17 16:25:38 EDT 1998  Andrew MacLeod  (amacleod@cygnus.com)
      * except.c (add_new_handler): fix bug in finding last region handler.
      * libgcc2.c (find_exception_handler): Pass exception table pointer
      to runtime type matcher, not the match info field.

From-SVN: r20541

gcc/ChangeLog
gcc/except.c
gcc/libgcc2.c

index 18888da..b6f2d3d 100644 (file)
@@ -1,3 +1,9 @@
+Wed Jun 17 16:25:38 EDT 1998  Andrew MacLeod  (amacleod@cygnus.com)
+
+       * except.c (add_new_handler): fix bug in finding last region handler.
+       * libgcc2.c (find_exception_handler): Pass exception table pointer
+       to runtime type matcher, not the match info field.
+
 Wed Jun 17 15:57:48 EDT 1998  Andrew MacLeod  (amacleod@cygnus.com)
 
        * eh-common.h (struct eh_context): Add comment for hidden use of
index c5c7259..d707a0e 100644 (file)
@@ -750,7 +750,8 @@ add_new_handler (region, newhandler)
   else 
     {
       for ( ; last->next != NULL; last = last->next)
-        last->next = newhandler;
+        ;
+      last->next = newhandler;
     }
 }
 
index 379586b..1fc703e 100644 (file)
@@ -3424,7 +3424,7 @@ find_exception_handler (void *pc, exception_descriptor *table, void *eh_info)
                   /* match info but no matcher is NOT a match */
                   if (matcher) 
                     {
-                      ret = (*matcher)(eh_info, tab[pos].match_info, table);
+                      ret = (*matcher)(eh_info, &tab[pos], table);
                       if (ret)
                         {
                           ((__eh_info *)eh_info)->coerced_value = ret;