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

Reply via email to