But... I think that the unflexible original code has a bug, one that makes it
not work when using gcc6 :-\
So I think we should make it build in gcc6, using that patch (or does it
have some other problem?) so that at least doing what we can do now can
be done for those using gcc6.
Then fix these shortcomings you detected.