Hi René, On Thu, 2 May 2019, René Scharfe wrote: > Am 27.04.19 um 01:27 schrieb Johannes Schindelin via GitGitGadget: > > From: Johannes Schindelin > > > > They really are unsigned, and we are using e.g. BLOCKSIZE as `size_t` > > parameter to pass to `write_or_die()`. > > True, but the compiler converts that value correctly to size_t without > complaint already, doesn't it? What am I missing? Are you talking about a specific compiler? It sure sounds as if you did. I really do not want to fall into the "you can build Git with *any* compiler, as long as that compiler happens to be GCC, oh, and as long it is version X" trap. We *already* rely on GCC's optimization in way too many places for my liking, e.g. when we adapted the `hasheq()` code *specifically* to make GCC's particular optimization strategies to kick in. Or the way we defined the `SWAP()` macro: it depends on GCC's ability to see through the veil and out-guess the code, deducing its intent rather than what it *says* ("Do As I Want, Not As I Say", anyone?). We *do* want to swap registers when possible (instead of forcing register variables to be written to memory just for the sake of being swapped, as our code says rather explicitly). Essentially, we build a cruise ship of a dependency on GCC here. Which should not make anybody happy (except maybe the GCC folks). Let's not make things worse. Ciao, Dscho