https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87247
--- Comment #4 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- The standard branch cut for acosh (not just a C standard, but as at https://dlmf.nist.gov/4.37 for example) follows from the principles that (a) acosh(conj(x)) = conj(acosh(x)) and (b) complex acosh should take the same value as real acosh for those real arguments for which acosh has a real value. Fixing the sign of the imaginary part of the result is inconsistent with (a) (which is a general principle for complex libm functions, not just acosh).