re PR objc/31281 (ICE on ObjC try-catch blocks with next runtime)
PR 31281 * objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl. * testsuite/objc/execute/exceptions/pr31281.m: New. From-SVN: r123501
This commit is contained in:
parent
59af43910d
commit
dd1af55f6a
@ -1,3 +1,8 @@
|
|||||||
|
2007-04-04 Stuart Hastings <stuart@apple.com>
|
||||||
|
|
||||||
|
PR 31281
|
||||||
|
* objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile from rethrow decl.
|
||||||
|
|
||||||
2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
|
2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
|
||||||
|
|
||||||
* Make-lang.in: Add dummy lang.install-pdf target.
|
* Make-lang.in: Add dummy lang.install-pdf target.
|
||||||
|
@ -3642,7 +3642,7 @@ next_sjlj_build_catch_list (void)
|
|||||||
|
|
||||||
{
|
{
|
||||||
struct _objc_exception_data _stack;
|
struct _objc_exception_data _stack;
|
||||||
id volatile _rethrow = 0;
|
id _rethrow = 0;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
objc_exception_try_enter (&_stack);
|
objc_exception_try_enter (&_stack);
|
||||||
@ -3686,7 +3686,6 @@ next_sjlj_build_try_catch_finally (void)
|
|||||||
|
|
||||||
rethrow_decl = objc_create_temporary_var (objc_object_type);
|
rethrow_decl = objc_create_temporary_var (objc_object_type);
|
||||||
cur_try_context->rethrow_decl = rethrow_decl;
|
cur_try_context->rethrow_decl = rethrow_decl;
|
||||||
TREE_THIS_VOLATILE (rethrow_decl) = 1;
|
|
||||||
TREE_CHAIN (rethrow_decl) = stack_decl;
|
TREE_CHAIN (rethrow_decl) = stack_decl;
|
||||||
|
|
||||||
/* Build the outermost variable binding level. */
|
/* Build the outermost variable binding level. */
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2007-04-04 Stuart Hastings <stuart@apple.com>
|
||||||
|
|
||||||
|
PR 31281
|
||||||
|
* testsuite/objc/execute/exceptions/pr31281.m: New.
|
||||||
|
|
||||||
2007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
|
2007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
|
||||||
|
|
||||||
* g++.dg/ext/dllimport12.C: Update comments.
|
* g++.dg/ext/dllimport12.C: Update comments.
|
||||||
|
27
gcc/testsuite/objc/execute/exceptions/pr31281.m
Normal file
27
gcc/testsuite/objc/execute/exceptions/pr31281.m
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/* From PR31281. */
|
||||||
|
extern void abort (void);
|
||||||
|
int __attribute__((noinline))
|
||||||
|
f(unsigned int i)
|
||||||
|
{
|
||||||
|
int j, k;
|
||||||
|
@try { } @catch(id) { return 13; }
|
||||||
|
for (j=0; j<i; j++)
|
||||||
|
for (k=0; k<i; k++)
|
||||||
|
{
|
||||||
|
@try {
|
||||||
|
if (i)
|
||||||
|
break;
|
||||||
|
} @catch(id) { }
|
||||||
|
return 9;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
if (f(1))
|
||||||
|
abort ();
|
||||||
|
return 0 ;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user