On Wed, 19 Nov 2025, Alejandro Colomar wrote:
> + type_name = c_parser_type_name (parser, true);
> + // Can return NULL? Why?
I don't think that's mysterious, it's simply the error return value.
> +void
> +bitint (void)
> +{
> + _Static_assert (_Maxof (_BitInt (5)) == 15);
> + _Static_assert (_Minof (_BitInt (5)) == -16);
> + _Static_assert (_Maxof (unsigned _BitInt (5)) == 31);
> + _Static_assert (_Minof (unsigned _BitInt (5)) == 0);
These (and all other _BitInt tests for _Maxof and _Minof) need to go in a
separate file with
/* { dg-do compile { target bitint } } */
since not all targets have _BitInt support (we ought to chase up
maintainers who still haven't added it to their ports).
Once you have a separate file, it probably makes sense to have another
separate file that tests _Maxof and _Minof for larger _BitInt (and uses an
appropriate effective-target for it such as { target bitint575 }).
--
Joseph S. Myers
[email protected]