Breaking posix_memalign precondition is not UB The `size==0` test here might be overtesting, but I figured might as well test it and leave a comment saying it is fine to remove it if the implementation changes. Fixes #2099
as