* src/marker.c (set_marker_internal): Handle the case where
POSITION is beyond PTRDIFF_MAX, which can happen if Emacs was
built --with-wide-int. Bug uncovered by the recently added
overlay tests.
don't want to call buf_charpos_to_bytepos if POSITION
is a marker and so we know the bytepos already. */
if (FIXNUMP (position))
- charpos = XFIXNUM (position), bytepos = -1;
+ {
+#if EMACS_INT_MAX > PTRDIFF_MAX
+ /* A --with-wide-int build. */
+ EMACS_INT cpos = XFIXNUM (position);
+ if (cpos > PTRDIFF_MAX)
+ cpos = PTRDIFF_MAX;
+ charpos = cpos;
+ bytepos = -1;
+#else
+ charpos = XFIXNUM (position), bytepos = -1;
+#endif
+ }
else if (MARKERP (position))
{
charpos = XMARKER (position)->charpos;