GNU bug report logs - #18995
Error: Could not reserve dynamic heap area.

Previous Next

Package: emacs;

Reported by: Alexander Shukaev <haroogan <at> gmail.com>

Date: Sat, 8 Nov 2014 15:24:01 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Andreas Schwab <schwab <at> linux-m68k.org>
Cc: 18995 <at> debbugs.gnu.org, haroogan <at> gmail.com
Subject: Re: bug#18995: Error: Could not reserve dynamic heap area.
Date: Sun, 09 Nov 2014 19:14:58 +0200
> From: Andreas Schwab <schwab <at> linux-m68k.org>
> Cc: eliz <at> gnu.org,  haroogan <at> gmail.com
> Date: Sun, 09 Nov 2014 17:35:30 +0100
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > It looked like a GCC bug at first, but as I tried to modify the source
> > and look at the effect of that on the generated code, it finally
> > dawned on me: GCC's loop-unrolling code simply correctly calculated
> > that with the initial value of 0x68000000 and decrement of 0x00800000,
> > the value of 'size' in the loop will never be less than 0x00100000,
> > due to wraparound in the subtraction of unsigned values.
> 
> Before wraping around, size will become zero, which is definitely less
> than 0x00100000.

Right, so it could be pure GCC bug after all.

For the record, the problem also goes away if 'size' is declared
ptrdiff_t, and nothing else is changed.  So whatever the reason, it
definitely is somehow related to unsigned arithmetics.




This bug report was last modified 10 years and 196 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.