Reverts llvm/llvm-project#120859 This change breaks formatting of `0` with `std::showbase` + `std::hex` or `std::oct`, as well as `+0` with `std::showpos`. I believe the new behavior is violating the standard. See https://github.com/llvm/llvm-project/pull/120859#issuecomment-2723970242 and later comments for details and explanation.