https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106469
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Henry from comment #3) > I agree that technically it is not UB. However I still think it is bad > practice. The only bad practice is the option -fsanitize=unsigned-integer-overflow. Look at the other bug reports I linked here and you will see there are other areas of libstdc++ where the bad option will cause issues.