[Bug gcov-profile/96919] New: [GCOV] uncovered line of stack allocation while using virutal destructor
youngseok.roh.de at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Sep 3 13:18:09 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96919
Bug ID: 96919
Summary: [GCOV] uncovered line of stack allocation while using
virutal destructor
Product: gcc
Version: 8.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: gcov-profile
Assignee: unassigned at gcc dot gnu.org
Reporter: youngseok.roh.de at gmail dot com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
I have different result since GCC8. It looks like connecting to the virtual
destructor.
<~ GCC 7.4.0>
$ cat main.cpp.gcov
-: 0:Source:main.cpp
-: 0:Graph:main.gcno
-: 0:Data:main.gcda
-: 0:Runs:1
-: 0:Programs:1
-: 1:#include "hello.h"
-: 2:
1: 3:int main(int argc, char* argv[]) {
2: 4: Hello hello;
1: 5: hello.foo();
1: 6: return 0;
-: 7:}
-: 8:
<GCC 8.2.0 ~>
$ cat main.cpp.gcov
-: 0:Source:main.cpp
-: 0:Graph:main.gcno
-: 0:Data:main.gcda
-: 0:Runs:1
-: 0:Programs:1
-: 1:#include "hello.h"
-: 2:
1: 3:int main(int argc, char* argv[]) {
#####: 4: Hello hello;
1: 5: hello.foo();
1: 6: return 0;
-: 7:}
-: 8:
Example code is here, and commands as well.
$ cat hello.h
class Base {
public:
Base() = default;
virtual ~Base() = default;
virtual void foo() = 0;
};
class Hello : public Base {
public:
Hello() = default;
~Hello() = default;
void foo() override;
};
$ cat hello.cpp
#include "hello.h"
#include <iostream>
using namespace std;
void Hello::foo() {
cout << "hello" << endl;
}
$ cat main.cpp
#include "hello.h"
int main(int argc, char* argv[]) {
Hello hello;
hello.foo();
return 0;
}
g++ -g -c --coverage -O0 -std=c++11 hello.cpp
g++ -g -c --coverage -O0 -std=c++11 main.cpp
g++ -o test hello.o main.o --coverage -O0
More information about the Gcc-bugs
mailing list