[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-smalltalk] Fun/Crashes with newer GCC on Debian
From: |
Holger Hans Peter Freyther |
Subject: |
Re: [Help-smalltalk] Fun/Crashes with newer GCC on Debian |
Date: |
Sat, 12 Oct 2013 19:11:04 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Sat, Oct 12, 2013 at 06:45:05PM +0200, Paolo Bonzini wrote:
> Il 11/10/2013 08:08, Holger Hans Peter Freyther ha scritto:
> > C-code:
> >
> > I get asan reports in _gst_grey_oop_range *page = *page;. With
> > generations off and NO_INCREMENTAL_GC set. Can't this be a NO-OP?
>
> This is done to generate a segfault, but only if the page is still
> unwritable. It is definitely a false positive.
Okay, but with NO_SIGSEGV_HANDLING defined we could avoid this. The
pages are readable/writable anyway so will not generate a segfault
while read/written?
diff --git a/libgst/oop.c b/libgst/oop.c
index c8af8c6..71e837a 100644
--- a/libgst/oop.c
+++ b/libgst/oop.c
@@ -1630,6 +1630,7 @@ tenure_one_object ()
void
_gst_grey_oop_range (PTR from, size_t size)
{
+#ifndef NO_SIGSEGV_HANDLING
volatile char *last, *page;
for (last = ((char *)from) + size,
@@ -1637,6 +1638,7 @@ _gst_grey_oop_range (PTR from, size_t size)
page < last;
page += getpagesize())
*page = *page;
+#endif
}
holger
Re: [Help-smalltalk] Fun/Crashes with newer GCC on Debian, Paolo Bonzini, 2013/10/12
- Re: [Help-smalltalk] Fun/Crashes with newer GCC on Debian,
Holger Hans Peter Freyther <=