[PATCH] Try to fix recently introduced crashes in ggc_collect

Bernd Edlinger bernd.edlinger@hotmail.de
Thu May 18 15:22:00 GMT 2017


Hi,


this attempts to fix occasional segmentation faults that are present in
the current snapshot, while previous snapshot was stable.

I observed numerous crashes but all were non-reproducible,
like the following example:

In file included from 
/home/ed/gnu/gcc-build-1/x86_64-pc-linux-gnu/libstdc++-v3/include/string:52:0,
                  from 
/home/ed/gnu/gcc-8-20170514-1/gcc/testsuite/g++.dg/asan/asan_test_config.h:19,
                  from 
/home/ed/gnu/gcc-8-20170514-1/gcc/testsuite/g++.dg/asan/asan_test_utils.h:17,
                  from 
/home/ed/gnu/gcc-8-20170514-1/gcc/testsuite/g++.dg/asan/asan_globals_test.cc:12,
                  from 
/home/ed/gnu/gcc-8-20170514-1/gcc/testsuite/g++.dg/asan/asan_globals_test-wrapper.cc:2:
/home/ed/gnu/gcc-build-1/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.h:6277:22: 
internal compiler error: Segmentation fault
0xd7e17f crash_signal
         ../../gcc-8-20170514-1/gcc/toplev.c:337
0x8f23fe ggc_set_mark(void const*)
         ../../gcc-8-20170514-1/gcc/ggc-page.c:1546
0x7e6a5f gt_ggc_mx_lang_tree_node(void*)
         ./gt-cp-tree.h:133
0x7e8c7a gt_ggc_mx_lang_tree_node(void*)
         ./gt-cp-tree.h:235
0x7e8882 gt_ggc_mx_lang_tree_node(void*)
         ./gt-cp-tree.h:365
0x81b26d gt_ggc_mx_cp_binding_level(void*)
         ./gt-cp-name-lookup.h:72
0x7e6d85 gt_ggc_mx_lang_tree_node(void*)
         ./gt-cp-tree.h:648
0x7e8ad2 gt_ggc_mx_lang_tree_node(void*)
         ./gt-cp-tree.h:221
0x7e8eeb gt_ggc_mx_lang_tree_node(void*)
         ./gt-cp-tree.h:337
0x7e8a3c gt_ggc_mx_lang_tree_node(void*)
         ./gt-cp-tree.h:441
0x7e7304 gt_ggc_mx_lang_tree_node(void*)
         ./gt-cp-tree.h:606
0x81b352 gt_ggc_mx_cxx_binding(void*)
         ./gt-cp-name-lookup.h:60
0x7e6d85 gt_ggc_mx_lang_tree_node(void*)
         ./gt-cp-tree.h:648
0x7e8ef5 gt_ggc_mx_lang_tree_node(void*)
         ./gt-cp-tree.h:336
0x7e8a3c gt_ggc_mx_lang_tree_node(void*)
         ./gt-cp-tree.h:441
0xb2edbe void gt_ggc_mx<tree_node*>(vec<tree_node*, va_gc, vl_embed>*)
         ../../gcc-8-20170514-1/gcc/vec.h:1110
0xb2edbe gt_ggc_mx_vec_tree_va_gc_(void*)
         /home/ed/gnu/gcc-build-1/gcc/gtype-desc.c:1737
0xac59f5 ggc_mark_root_tab
         ../../gcc-8-20170514-1/gcc/ggc-common.c:77
0xac5c50 ggc_mark_roots()
         ../../gcc-8-20170514-1/gcc/ggc-common.c:94
0x8f2de7 ggc_collect()
         ../../gcc-8-20170514-1/gcc/ggc-page.c:2206
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.


The following patch fixes one rather suspicious static tree
object that did not have the GTY attribute, and was therefore
apparently not in the GC root set.


Bootstrapped and reg-tested on x86_64-pc-linux-gnu.
Is it OK for trunk?


Thanks
Bernd.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-ggc-crash.diff
Type: text/x-patch
Size: 1714 bytes
Desc: patch-ggc-crash.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20170518/e4f2adfb/attachment.bin>


More information about the Gcc-patches mailing list