https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118027
Arnaud Charlet <charlet at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |charlet at gcc dot gnu.org Resolution|--- |INVALID --- Comment #1 from Arnaud Charlet <charlet at gcc dot gnu.org> --- This is actually as intended and defined in the Ada RM: -1 actually corresponds to "-" (the unary operator) and the literal 1, and not the literal -1, so you also need to define a "-" and "+" unary operator for your type T for your code to be valid.