https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89179

Steve Ellcey <sje at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sje at gcc dot gnu.org

--- Comment #14 from Steve Ellcey <sje at gcc dot gnu.org> ---
I think I may be seeing this same bug on aarch64 when building the RAJA library
based on where I am dying in ggc_set_mark.  I have not been able to create a
preprocessed test case because when I compile the preprocessed sources the bug
does not happen.  Here is my segfault dump:

min.cpp:191:1: internal compiler error: Segmentation fault
  191 | } 
      | ^ 
0xf03b5f crash_signal
        ../../gcc/gcc/toplev.c:326
0x9cc86c lookup_page_table_entry
        ../../gcc/gcc/ggc-page.c:632
0x9cc86c ggc_set_mark(void const*)
        ../../gcc/gcc/ggc-page.c:1531
0xc6fe47 gt_ggc_mx_symtab_node(void*)
        /home/sellcey/gcc-raja/obj-gcc/gcc/gtype-desc.c:1302
0xe17503 gt_ggc_ma_order
        ./gt-passes.h:31
0xbe44f3 ggc_mark_root_tab
        ../../gcc/gcc/ggc-common.c:77
0xbe4813 ggc_mark_roots()
        ../../gcc/gcc/ggc-common.c:94
0x9cd1fb ggc_collect()
        ../../gcc/gcc/ggc-page.c:2201
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

When I look at gt_ggc_mx_symtab_node, the initial x_p pointer
that comes in is reasonable (0xffffa020c210) but after

xlimit = ((*xlimit).next);

The value of xlimit becomes 0xa5a5a5a5a5a5a5a5.  That looks
like a bogus value something might have put into memory
to poison it but I didn't see that specific string in
the GCC source tree anywhere.

Reply via email to