Update 'compat/obstack.{c,h}' from upstream, because they already use 'size_t' instead of 'long' in places that might eventually end up as an argument to malloc(), which might solve build errors with GCC 8 on Windows. The first patch just imports from upstream and doesn't modify anything at all, and, consequently, it can't be compiled because of a screenful or two of errors. This is bad for future bisects, of course. OTOH, adding all the necessary build fixes right away makes review harder... I'm not sure how to deal with this situation, so here is a series with the fixes in separate patches for review, for now. If there's an agreement that this is the direction to take, then I'll squash in the fixes in the first patch and touch up the resulting commit message. Ramsay, could you please run sparse on top of these patch series to make sure that I caught and converted all "0 instead of NULL" usages in the last patch? Thanks. And here is an all-green build of these patches on Travis CI: https://travis-ci.org/szeder/git/builds/545645247 (and one bonus patch on top to deal with some Homebrew nonsense) SZEDER Gábor (4): compat/obstack: update from upstream SQUASH??? compat/obstack: fix portability issues SQUASH??? compat/obstack: fix build errors with Clang compat/obstack: fix some sparse warnings compat/obstack.c | 356 ++++++++------------ compat/obstack.h | 832 ++++++++++++++++++++++++----------------------- 2 files changed, 572 insertions(+), 616 deletions(-) -- 2.22.0.589.g5bd7971b91