Author: Armin Rigo <[email protected]>
Branch: use-gcc
Changeset: r1889:69f1abc8e3fe
Date: 2015-07-02 15:24 +0100
http://bitbucket.org/pypy/stmgc/changeset/69f1abc8e3fe/
Log: Avoid referencing arrays from within the struct stm_priv_segment_s,
as a workaround for a gcc issue
diff --git a/c8/stm/core.h b/c8/stm/core.h
--- a/c8/stm/core.h
+++ b/c8/stm/core.h
@@ -151,8 +151,10 @@
/* The sync queue used to synchronize newly allocated objs to
other segments */
- stm_char *sq_fragments[SYNC_QUEUE_SIZE];
- int sq_fragsizes[SYNC_QUEUE_SIZE];
+ stm_char *_sq_fragments[SYNC_QUEUE_SIZE];
+ int _sq_fragsizes[SYNC_QUEUE_SIZE];
+ stm_char **sq_fragments; /* indirection to work around a gcc issue */
+ int *sq_fragsizes;
int sq_len;
/* For nursery_mark */
diff --git a/c8/stm/setup.c b/c8/stm/setup.c
--- a/c8/stm/setup.c
+++ b/c8/stm/setup.c
@@ -116,6 +116,9 @@
pr->overflow_number = GCFLAG_OVERFLOW_NUMBER_bit0 * i;
highest_overflow_number = pr->overflow_number;
pr->pub.transaction_read_version = 0xff;
+
+ pr->sq_fragments = pr->_sq_fragments;
+ pr->sq_fragsizes = pr->_sq_fragsizes;
}
/* The pages are shared lazily, as remap_file_pages() takes a relatively
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit