GNU bug report logs -
#9713
emacs 24.0.90 alloc.c assertion failure
Previous Next
Reported by: karl <at> freefriends.org (Karl Berry)
Date: Mon, 10 Oct 2011 00:22:02 UTC
Severity: normal
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> Date: Tue, 11 Oct 2011 17:55:11 GMT
> From: karl <at> freefriends.org (Karl Berry)
> Cc: eliz <at> gnu.org, 9713 <at> debbugs.gnu.org
>
> I have exactly those same values in the same headers. However, running
> gcc -dD -E on alloc.c (after configuration, with all the same args as
> used for compilation) shows that those values are not being used.
>
> Instead, Emacs's (gnulib's) lib/stdint.h is being used (why?), which
> unconditionally redefines PTRDIFF_MAX as _STDINT_MAX, which is defined
> in that same file as the RHS here (the LHS is the recognizable value of
> INT_MAX):
>
> _Static_assert (2147483647 <= ((1) ? ~ ((1) ? (- ((0) + 1) << ((0) ? (0) - 1 : 0)) : (0)) : ((((0) + 1) << ((0) ? (0) - 1 - (1) : 0)) - 1) * 2 + 1), "verify (" "INT_MAX <= PTRDIFF_MAX" ")");
>
>
> FWIW, if I reduce the input file to these four lines:
> #include <config.h>
> #include "lisp.h"
> #include <verify.h>
> verify (INT_MAX <= PTRDIFF_MAX);
>
> And compile with all the same options, I get the same error from verify
> (along with a spurious error about jmp_buf). Without "lisp.h",
> PTRDIFF_MAX is not defined.
So I think this is the culprit. Glenn, I guess your system also uses
lib/stdint.h, right? So what is different?
This bug report was last modified 13 years and 218 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.