[Bug gcov-profile/90380] gcov issue: gets stuck (infinite loop?) while analyzing coverage on Fortran project

Melven.Roehrig-Zoellner at DLR dot de gcc-bugzilla@gcc.gnu.org
Wed May 8 18:02:00 GMT 2019


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

Melven.Roehrig-Zoellner at DLR dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |Melven.Roehrig-Zoellner@DLR
                   |                            |.de

--- Comment #4 from Melven.Roehrig-Zoellner at DLR dot de ---
Hi

I have a similar problem with GCC 9.1.0, GCC 7.2.0 works fine.
(I also had problems with GCC 8.1.0 but I did not check that this is actually
the same problem).

Backtrace obtained with gdb:

zoel_ml@SC-030083L:/home_local/zoel_ml/VAST_playground_clean (gcc9_fixes)> gdb
--args gcov
/localdata2/zoel_ml/VAST_playground_clean/build/extras/Freewake-prefix/src/Freewake-build/CMakeFiles/objpostproc.dir/source/postproc/fw_postproc_module.f90.gcda
--branch-counts --branch-probabilities --preserve-paths --object-directory
/localdata2/zoel_ml/VAST_playground_clean/build/extras/Freewake-prefix/src/Freewake-build/CMakeFiles/objpostproc.dir/source/postproc
GNU gdb (GDB) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from gcov...done.
(gdb) run
Starting program:
/tools/modulesystem/tools/gcc/gcc-9.1.0/install/sled12.x86_64.gcc-4.8.5.release.combinedTree/bin/gcov
/localdata2/zoel_ml/VAST_playground_clean/build/extras/Freewake-prefix/src/Freewake-build/CMakeFiles/objpostproc.dir/source/postproc/fw_postproc_module.f90.gcda
--branch-counts --branch-probabilities --preserve-paths --object-directory
/localdata2/zoel_ml/VAST_playground_clean/build/extras/Freewake-prefix/src/Freewake-build/CMakeFiles/objpostproc.dir/source/postproc
^C
Program received signal SIGINT, Interrupt.
std::__find_if<__gnu_cxx::__normal_iterator<block_info const**,
std::vector<block_info const*, std::allocator<block_info const*> > >,
__gnu_cxx::__ops::_Iter_equals_val<block_info const* const> > (__pred=...,
    __last=..., __first=...) at
/tools/modulesystem/tools/gcc/gcc-9.1.0/build/sled12.x86_64.gcc-4.8.5.release.combinedTree/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/bits/predefined_ops.h:240
240             operator()(_Iterator __it)
(gdb) bt
#0  std::__find_if<__gnu_cxx::__normal_iterator<block_info const**,
std::vector<block_info const*, std::allocator<block_info const*> > >,
__gnu_cxx::__ops::_Iter_equals_val<block_info const* const> > (
    __pred=..., __last=..., __first=...) at
/tools/modulesystem/tools/gcc/gcc-9.1.0/build/sled12.x86_64.gcc-4.8.5.release.combinedTree/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/bits/predefined_ops.h:240
#1  std::__find_if<__gnu_cxx::__normal_iterator<block_info const**,
std::vector<block_info const*, std::allocator<block_info const*> > >,
__gnu_cxx::__ops::_Iter_equals_val<block_info const* const> > (
    __pred=..., __last=..., __first=...) at
/tools/modulesystem/tools/gcc/gcc-9.1.0/build/sled12.x86_64.gcc-4.8.5.release.combinedTree/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_algo.h:161
#2  std::find<__gnu_cxx::__normal_iterator<block_info const**,
std::vector<block_info const*, std::allocator<block_info const*> > >,
block_info const*> (__val=<synthetic pointer>: 0x4d3a48, __last=...,
    __first=...) at
/tools/modulesystem/tools/gcc/gcc-9.1.0/build/sled12.x86_64.gcc-4.8.5.release.combinedTree/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_algo.h:3889
#3  unblock (u=0x4d3a48, blocked=..., block_lists=...) at
/tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:725
#4  0x0000000000405dc7 in circuit (v=<optimized out>, path=...,
start=start@entry=0x4cfe28, blocked=..., block_lists=..., linfo=...,
count=@0x7fffffffb088: 0)
    at /tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:775
#5  0x0000000000405d94 in circuit (v=<optimized out>, path=...,
start=start@entry=0x4cfe28, blocked=..., block_lists=..., linfo=...,
count=@0x7fffffffb088: 0)
    at /tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:769
#6  0x0000000000405d94 in circuit (v=<optimized out>, path=...,
start=start@entry=0x4cfe28, blocked=..., block_lists=..., linfo=...,
count=@0x7fffffffb088: 0)

... same line repeated ...

    at /tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:769
#94 0x0000000000405d94 in circuit (v=<optimized out>, path=...,
start=start@entry=0x4cfe28, blocked=..., block_lists=..., linfo=...,
count=@0x7fffffffb088: 0)
    at /tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:769
#95 0x0000000000405d94 in circuit (v=<optimized out>, path=...,
start=start@entry=0x4cfe28, blocked=..., block_lists=..., linfo=...,
count=@0x7fffffffb088: 0)
    at /tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:769
#96 0x0000000000405d94 in circuit (v=<optimized out>, path=..., start=0x4cfe28,
blocked=..., block_lists=..., linfo=..., count=@0x7fffffffb088: 0) at
/tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:769
#97 0x0000000000405f90 in get_cycles_count (linfo=...,
handle_negative_cycles=handle_negative_cycles@entry=true) at
/tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:814
#98 0x00000000004060e2 in accumulate_line_info (line=line@entry=0x589c40,
src=src@entry=0x4c87f0, add_coverage=add_coverage@entry=true) at
/tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:2695
#99 0x0000000000409c8a in accumulate_line_counts (src=0x4c87f0) at
/tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:2735
#100 generate_results (file_name=<optimized out>) at
/tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:1447
#101 main (argc=<optimized out>, argv=<optimized out>) at
/tools/modulesystem/tools/gcc/gcc-9.1.0/src/gcc/gcov.c:868

This occurs for 6 Fortran files in our project (out of 200-300). We are also
using mixed Fortran, C / C++ code (with bind(C) interfaces between them).

Regards
Melven


More information about the Gcc-bugs mailing list