For your first question, you can pipe this output through the c++filt
command to demangle the identifiers.
For your second question, apparently gcov
doesn't care if the false gets short circuited, it still counts three ways to get to false, and only one way to get to true.
- true =>
n==0 && this->stored_count==0
- false =>
n!=0 && this->stored_count==0
- false =>
n!=0 && this->stored_count!=0
- false =>
n==0 && this->stored_count!=0
Since you expand your template function 4 ways, that makes sixteen.