1 /* { dg-do compile } */
2 /* { dg-require-effective-target ia32 } */
3 /* { dg-options "-O2 -fpic -fexceptions -fasynchronous-unwind-tables" } */
4 /* { dg-final { scan-assembler "movl\[ \\t\].+, %ebx" } } */
6 extern void exit (int __status
) __attribute__ ((__nothrow__
)) __attribute__ ((__noreturn__
));
7 struct __pthread_cleanup_frame
9 void (*__cancel_routine
) (void *);
15 __pthread_cleanup_routine (struct __pthread_cleanup_frame
*__frame
)
18 __frame
->__cancel_routine (__frame
->__cancel_arg
);
33 do { struct __pthread_cleanup_frame __clframe
__attribute__ ((__cleanup__ (__pthread_cleanup_routine
))) = { .__cancel_routine
= (cl
), .__cancel_arg
= (
34 ((void *)0)), .__do_it
= 1 };;
36 foo (arg
== ((void *)0) ? (0x7fffffffL
* 2UL + 1UL) : 0);
38 __clframe
.__do_it
= (0); } while (0);