https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110827
--- Comment #11 from Iain Sandoe ---
(In reply to Michael Duggan from comment #9)
> More data:
> The coroutine actor is marked as artificial in
> coro_build_actor_or_destroy_function. As a result, it is completely ignored
> by gcov. In gcov's
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110827
--- Comment #10 from Michael Duggan ---
To sum up what I have figured out, C++ transforms the coroutine "function" into
a trio of functions: a ramp function, an actor function, and a destruction
function. The ramp function acts as the actual
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110827
--- Comment #9 from Michael Duggan ---
More data:
The coroutine actor is marked as artificial in
coro_build_actor_or_destroy_function. As a result, it is completely ignored by
gcov. In gcov's process_all_functions function, artificial
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110827
--- Comment #8 from Michael Duggan ---
Using the better test case, I have determined that the coroutine _is_ being
instrumented with gcov counters. When disassembled, the output contains the
following in the bar() actor function:
Dump of
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110827
Michael Duggan changed:
What|Removed |Added
Attachment #55648|0 |1
is obsolete|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110827
--- Comment #6 from Iain Sandoe ---
(In reply to Richard Biener from comment #5)
> (In reply to Iain Sandoe from comment #2)
> > (In reply to Richard Biener from comment #1)
> > > I'm seeing all code properly instrumented. The coverage I see
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110827
--- Comment #5 from Richard Biener ---
(In reply to Iain Sandoe from comment #2)
> (In reply to Richard Biener from comment #1)
> > I'm seeing all code properly instrumented. The coverage I see is
>
> > 1: 27:task foo() {
> >
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110827
--- Comment #4 from Michael Duggan ---
I should be more explicit. The `std::cout` line in the example is just a
placeholder for "does some work here," and this example is specifically the
simplest version of a coroutine I could come up with
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110827
--- Comment #3 from Michael Duggan ---
(In reply to Richard Biener from comment #1)
> I'm seeing all code properly instrumented. The coverage I see is
>
> -:1:#include
> -:2:#include
> -:3:
> -:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110827
--- Comment #2 from Iain Sandoe ---
(In reply to Richard Biener from comment #1)
> I'm seeing all code properly instrumented. The coverage I see is
> 1: 27:task foo() {
> -: 28: std::cout << "Running..." << std::endl;
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110827
Richard Biener changed:
What|Removed |Added
Last reconfirmed||2023-07-27
11 matches
Mail list logo