| /* PR c/102989 */ |
| /* { dg-do compile { target bitint } } */ |
| /* { dg-options "-std=c23 -pedantic-errors" } */ |
| |
| _Atomic _BitInt(15) a; |
| _Atomic(_BitInt(15)) b; |
| _Atomic _BitInt(115) c; |
| _Atomic _BitInt(192) d; |
| _Atomic _BitInt(575) e; |
| unsigned _BitInt(575) f; |
| |
| __attribute__((noipa)) _BitInt(575) |
| foo (_BitInt(575) x) |
| { |
| return x; |
| } |
| |
| __attribute__((noipa)) int |
| bar (int x) |
| { |
| return x; |
| } |
| |
| __attribute__((noipa)) _Atomic _BitInt(575) * |
| baz (_Atomic _BitInt(575) *x) |
| { |
| return x; |
| } |
| |
| int |
| main () |
| { |
| a += 1wb; |
| b -= 2wb; |
| c *= 3wb; |
| d /= 4wb; |
| e -= 5wb; |
| f = __atomic_fetch_add (&e, 54342985743985743985743895743834298574985734895743895734895wb, __ATOMIC_SEQ_CST); |
| f += __atomic_sub_fetch (&e, 13110356772307144130089534440127211568864891923061809853784155727841516341877716905506658630804426134644404380556711020290072702485839594283061059349912463486203837251238365wb, __ATOMIC_SEQ_CST); |
| f += __atomic_fetch_and (&e, -33740418462630594385361724744395454079240140931656245750192534103967695265126850678980088699287669565365078793986191778469857714756111026776864987769580622009237241167211461wb, __ATOMIC_RELAXED); |
| f += __atomic_xor_fetch (&e, 30799001892772360282132495459823194445423296347702377756575214695893559890977912003055702776548378201752339680602420936304294728688029412276600086349055079523071860836114234wb, __ATOMIC_SEQ_CST); |
| f += __atomic_fetch_or (baz (&e), foo (-6581969867283727911005990155704642154324773504588160884865628865547696324844988049982401783508268917375066790729408659617189350524019843499435572226770089390885472550659255wb), bar (__ATOMIC_RELAXED)); |
| f += __atomic_nand_fetch (&e, 55047840194947228224723671648125013926111290688378416557548660662319034233151051252215595447712248992759177463741832904590457754423713378627482465906620631734790561114905369wb, __ATOMIC_ACQ_REL); |
| } |