logic triggers a super-linear memory use path in Clang and is generally overcomplicated. Bump revision because it is still a code change.