GNU bug report logs - #9713
emacs 24.0.90 alloc.c assertion failure

Previous Next

Package: emacs;

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


Message #17 received at 9713 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: karl <at> freefriends.org (Karl Berry)
Cc: rgm <at> gnu.org, 9713 <at> debbugs.gnu.org
Subject: Re: bug#9713: emacs 24.0.90 alloc.c assertion failure
Date: Tue, 11 Oct 2011 21:29:06 +0200
> 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.