/* PR c/102989 */ /* { dg-do compile { target { bitint && exceptions } } } */ /* { dg-options "-O2 -std=gnu23 -fnon-call-exceptions -fexceptions" } */ __attribute__((noipa)) void baz (int *p) { } #if __BITINT_MAXWIDTH__ >= 575 void foo (volatile _BitInt(575) *p, _BitInt(575) q) { int a __attribute__((cleanup (baz))) = 1; *p = q; } _BitInt(575) bar (volatile _BitInt(575) *p) { int a __attribute__((cleanup (baz))) = 1; return *p; } _BitInt(575) qux (long double l) { int a __attribute__((cleanup (baz))) = 1; return l; } long double corge (_BitInt(575) b) { int a __attribute__((cleanup (baz))) = 1; return b; } _BitInt(575) garply (_BitInt(575) x, _BitInt(575) y) { int a __attribute__((cleanup (baz))) = 1; return x / y; } _BitInt(575) waldo (_BitInt(575) x, _BitInt(575) y) { int a __attribute__((cleanup (baz))) = 1; return x % y; } #endif