https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102440
--- Comment #6 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Martin Liška from comment #5) > All right, so the meaning of the UInteger type is actually that users can't > set the flag/param to a negative value: > > $ gcc -fabi-version=-3 a.c > gcc: error: argument to '-fabi-version=' should be a non-negative integer That doesn't contradict using it with an "unsigned int". > Plus there are very many flags that are initialized to -1 with Init(-1). The > special value is used for distinguishing between a set value and the default > one. That doesn't contradict using it with an "unsigned int". > So the name is unfortunate, but I don't see what can we do about it? We could make the "UInteger" type mean it is implemented with an "unsigned int" C type (or some other unsigned integer type).