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

--- Comment #151 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
(In reply to Peter Bisroev from comment #139)

[...]

> I am not sure how these selftests work yet but will take a look into them to
> see if we can reproduce a reliable minimal test case.

FWIW, I added the selftest framework to gcc, in the hopes that failing early in
a minimal reproducer is better than having lots of DejaGnu failures later on.

"make selftest-gdb" is a precanned way to debug things, though I don't know how
well it will work for your configuration.

 However this is what I
> see in GDB for now:
> ----------------------------------------
> (gdb) r
> Starting program: /home/pbisroev/src/build/./gcc/cc1 -quiet -nostdinc
> -iprefix /home/pbisroev/src/build/gcc/../lib/gcc/ia64-hp-hpux11.31/8.3.0/
> -isystem /home/pbisroev/src/build/./gcc/include -isystem
> /home/pbisroev/src/build/./gcc/include-fixed /dev/null -quiet -dumpbase null
> -auxbase-strip /dev/null -version
> -fself-test=/home/pbisroev/src/gcc-8.3.0/gcc/testsuite/selftests
> GNU C17 (GCC) version 8.3.0 (ia64-hp-hpux11.31)
>         compiled by GNU C version 4.7.4, GMP version 6.1.0, MPFR version
> 3.1.4, MPC version 1.0.3, isl version none
> GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
> GNU C17 (GCC) version 8.3.0 (ia64-hp-hpux11.31)
>         compiled by GNU C version 4.7.4, GMP version 6.1.0, MPFR version
> 3.1.4, MPC version 1.0.3, isl version none
> GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
> Compiler executable checksum: 6adcccc5ed57899a8ef4c993d4479438
> 
> Program received signal SIGSEGV, Segmentation fault
>   si_code: 1 - SEGV_MAPERR - Address not mapped to object.
> 0x79e7a40 in <unknown_procedure> ()
> (gdb) bt
> #0  0x79e7a40 in <unknown_procedure> ()
> warning: Attempting to unwind past bad PC 0x79e7a40 
> #1  0x6c81c20 in
> vector_builder<tree_node*,tree_vector_builder>::try_npatterns(unsigned
> int)+0x2a0 ()
> #2  0x6c821d0 in vector_builder<tree_node*,tree_vector_builder>::finalize()
>    +0x390 ()
> #3  0x59e9b70:0 in tree_vector_builder::build()+0x30 ()
> #4  0x5a69240:0 in <unknown_procedure> ()
> #5  0x5a8b6b0:0 in selftest::tree_c_tests()+0x7b0 ()
> #6  0x642a510:0 in selftest::run_tests()+0x190 ()
> #7  0x52e68e0:0 in toplev::run_self_tests()+0x60 ()
> #8  0x52e8760:0 in toplev::main(int,char**)+0x1be0 ()
> #9  0x64d4eb0:0 in main+0x70 ()
> (gdb)

Probably frame 4 is "test_vector_cst_patterns", judging by frames 1 and 2;
frame 1 is an instantiation of a template.

If a particular selftest is failing, there's always the option of disabling it
with #if 0 (or putting a "return;" at the top of it).  Though obviously that
may be merely postponing dealing with a bug until a later point.

Hope this is helpful

Reply via email to