/* PR middle-end/114313 */ /* { dg-do run { target bitint } } */ /* { dg-options "-std=c23" } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O0" "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ #if __BITINT_MAXWIDTH__ >= 256 struct S { _BitInt(257) : 257; _BitInt(256) b : 182; } s; __attribute__((noipa)) _BitInt(256) foo (void) { return s.b; } #endif int main () { #if __BITINT_MAXWIDTH__ >= 256 s.b = 1414262180967678524960294186228886540125217087586381431wb; if (foo () != 1414262180967678524960294186228886540125217087586381431wb) __builtin_abort (); s.b = -581849792837428541666755934071828568425158644418477999wb; if (foo () != -581849792837428541666755934071828568425158644418477999wb) __builtin_abort (); #endif }