[Bug gcov-profile/110395] New: GCOV stuck in an infinite loop with large std::array
carlosgalvezp at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Jun 24 16:09:37 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110395
Bug ID: 110395
Summary: GCOV stuck in an infinite loop with large std::array
Product: gcc
Version: 9.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: gcov-profile
Assignee: unassigned at gcc dot gnu.org
Reporter: carlosgalvezp at gmail dot com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Hi!
We are bumping from GCC 7.5.0 to GCC 9.4.0 (Ubuntu 20.04) and observe that GCOV
is stuck when analyzing the following minimal repro code:
#include <vector>
#include <array>
template <typename T, std::size_t n>
class StaticVector
{
public:
StaticVector() = default;
void foo(){}
private:
std::array<T, n> data{};
};
class Foo
{
StaticVector<std::vector<std::size_t>, 40000> data_{};
};
int main()
{
Foo f;
return 0;
}
$ g++ --coverage main.cpp
$ ./a.out
$ gcov main.cpp
The problem goes away if I remove the value initialization for std::array in
the StaticVector class (i.e. I leave the member "data" uninitialized).
The same problem happens also on GCC 11
What might be the reason for this?
Thanks!
More information about the Gcc-bugs
mailing list