GNU bug report logs -
#49261
28.0.50; File Locking Breaks Presumptuous Toolchains
Previous Next
Reported by: Mallchad Skeghyeph <ncaprisunfan <at> gmail.com>
Date: Mon, 28 Jun 2021 18:28:02 UTC
Severity: normal
Found in version 28.0.50
Fixed in version 28.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> Cc: 49261 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>
> From: Paul Eggert <eggert <at> cs.ucla.edu>
> Date: Sun, 11 Jul 2021 01:36:21 -0700
>
> I worked around this particular problem changing mark_maybe_pointer so
> that pdumper roots can also be tagged (see first attached patch).
> However, I suspect this is not a complete fix, as it doesn't cover the
> case where a root points to some part of a pdumper object that is not at
> the object's start. I added a FIXME about this. Perhaps Daniel can take
> a look at it sometime. I think the remaining bug will be hit only rarely
> (if ever).
>
> The second attached patch is in the same area, but is not part of the
> fix. It causes the GC to be a bit more accurate (i.e., less
> conservative) for roots, which can help avoid some leaks.
Thanks, but these changes don't cater to 32-bit builds --with-wide-int:
CC alloc.o
In file included from alloc.c:33:
alloc.c: In function 'mark_maybe_pointer':
lisp.h:251:18: warning: unsigned conversion from 'long long int' to 'uintptr_t' {aka 'unsigned int'} changes value from '2305843009213693951' to '4294967295' [-Woverflow]
251 | # define VALMASK (USE_LSB_TAG ? - (1 << GCTYPEBITS) : VAL_MAX)
| ^
alloc.c:4767:24: note: in expansion of macro 'VALMASK'
4767 | uintptr_t mask = VALMASK;
| ^~~~~~~
This bug report was last modified 3 years and 305 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.