diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cc45585659f8e9f74018d46eabebf65f353f1234..65f56b9ee0496c8ffa28ad721602b01ae969ac63 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-08-14 Andrew Pinski <pinskia@physics.uc.edu> + + * execute/exceptions/finally-1.m: Check that the catch and finally are + being called. Also add a "return 0;" at the end of main. + 2005-08-14 Paul Thomas <pault@gcc.gnu.org> PR fortran/21432. diff --git a/gcc/testsuite/objc/execute/exceptions/finally-1.m b/gcc/testsuite/objc/execute/exceptions/finally-1.m index 9d4c396393e5efef162921103e193877c6159354..5f32de2b4e17e93cd427d18b220d8cbe29ee5510 100644 --- a/gcc/testsuite/objc/execute/exceptions/finally-1.m +++ b/gcc/testsuite/objc/execute/exceptions/finally-1.m @@ -1,45 +1,59 @@ #include <objc/Object.h> +#include <stdio.h> +#include <stdlib.h> + +static int made_try = 0; int thrower_try_body() { - printf("Thrower try body\n"); - return (0); + made_try++; + return (0); } +static int made_finally = 0; + int finally_body() { - printf("Finally body\n"); - return (0); + made_finally++; + return (0); } int thrower() { - @try - { - thrower_try_body(); - @throw [Object new]; - } - @finally - { - finally_body(); - } // <----- program aborts here. - return 0; + @try + { + thrower_try_body(); + @throw [Object new]; + } + @finally + { + finally_body(); + } + return 0; } +static int made_catch = 0; int main(int ac, char *av[]) { - @try - { - thrower(); - } - @catch (id exc) - { - printf("Got exception of class %s\n", [[exc class] name]); - [exc free]; - } + @try + { + thrower(); + } + @catch (id exc) + { + made_catch++; + [exc free]; + } + if (made_try != 1) + abort (); + if (made_finally != 1) + abort (); + if (made_catch != 1) + abort (); + return 0; }