As a temporary measure, I have applied the following patch to my copy
of genhtml.

This turns

% genhtml --legend --demangle-cpp --output-directory html foo.info
Reading data file foo.info
Found 4 entries.
Demangling 5 function names
genhtml: ERROR: Demangled function name _ZN3subD2Ev  maps to different
lines (5 vs 4)

into

% genhtml --legend --demangle-cpp --output-directory html foo.info
Reading data file foo.info
Found 4 entries.
Demangling 5 function names
genhtml: WARNING: Demangled function name sub::~sub() maps to
different lines (5 vs 4) in /home/adl/t/foo.cc
Found common filename prefix "/home/adl"
Writing .css and .png files.
Generating output.
Processing file t/foo.h
Processing file t/foo.cc
Processing file t/main.cc
Processing file /usr/include/c++/4.9/iostream
Writing directory view page.
Overall coverage rate:
  lines......: 100.0% (8 of 8 lines)
  functions..: 80.0% (4 of 5 functions)

even if the handling of destructors might not be correct, at least it
lets us use genhtml to cover the rest of the functions.
--- /usr/bin/genhtml	2014-05-23 11:03:45.000000000 +0200
+++ genhtml	2014-06-24 10:13:39.158691632 +0200
@@ -736,10 +736,10 @@
 			# same demangled name.
 			if (defined($newfuncdata{$cn}) &&
 			    $newfuncdata{$cn} != $funcdata->{$fn}) {
-				die("ERROR: Demangled function name $fn ".
+				warn("WARNING: Demangled function name $cn ".
 				    " maps to different lines (".
 				    $newfuncdata{$cn}." vs ".
-				    $funcdata->{$fn}.")\n");
+				     $funcdata->{$fn}.") in $filename\n");
 			}
 			$newfuncdata{$cn} = $funcdata->{$fn};
 		}

Reply via email to