By the current definition, gcd((int64_t)1234, (int32_t)-2147483648) is
ill-formed (because 2147483648 is not representable as a value of int32_t.)
We want to change this case to be well-formed. As long as both |m| and |n|
are representable as values of the common type, absolute values can
be calculate d without causing unspecified behavior, by converting m and n
to the common type before taking the negation.

Suggested resolution:

|m| shall be representable as a value of type M and |n| shall
be representable as a value of type N|m| and |n| shall be
representable as a value of common_type_t<M, N>.

-2- Requires:|m| shall be representable as a value of type M and |n| shall
be representable as a value of type N|m| and |n| shall be representable as
a value of common_type_t<M, N>. [Note: These requirements ensure, for example, that
gcd(m, m) = |m| is representable as a value of type M. — end note]

-2- Requires:|m| shall be representable as a value of type M and |n| shall
be representable as a value of type N|m| and |n| shall be representable as
a value of common_type_t<M, N>. The least common multiple of |m| and |n| shall
be representable as a value of type common_type_t<M, N>.